主頁 > 資料庫 > rman備份恢復操作手冊-從零到無

rman備份恢復操作手冊-從零到無

2020-09-10 06:35:28 資料庫

--時間:2020年9月2日

--作者:飛翔的小胖豬

1 備份

1.1 備份說明

rman可進行熱備和冷備,一般情況下都是進行熱備即不資料庫備份,執行的熱備需要資料庫處于歸檔模式下,

 

1.2 設定歸檔模式

 歸檔模式開啟過后,當一個在線重做日志寫滿了過后,會切換到下一個在線重做日志中進行日志寫入,之前的在線重做日志會形成歸檔日志存放于歸檔日志目錄中,如果歸檔日志目錄空間使用率100%,那么整個資料庫會無法寫入新資料而導致資料庫GG,所以在開啟設定資料庫為歸檔模式后需要定時的檢查歸檔日志目錄剩余空間大小,及時清理過期的資料或擴容目錄空間,

 設定歸檔日志路徑

 SQL> alter system  set log_archive_dest_1='location=/u01/arch'  #設定為本地目錄作為歸檔日志目錄,紅色字體根據自己定義的目錄填寫
 SQL> alter system set log_archive_dest_1='location=+DATA/RACDB/ARCH' scope=spfile sid='*';   #使用ASM的環境下使用此命令
 SQL> show parameter log_archive_dest_1;     #查看確認設定的歸檔日志路徑

開啟歸檔

歸檔模式的切換必須處于mount狀態下,其他狀態下不行喲,

 SQL> shutdown immediate;     #先正常關閉在用資料庫,如果你的資料庫正在運行
 SQL> startup mount;                #啟動資料庫到mount階段
 SQL> alter database archivelog;     #設定資料庫為歸檔模式
 SQL> alter database open;              #啟動資料庫到open狀態
 SQL> archive log list;           #查看資料庫當前是否處于歸檔模式下
SQL> alter system switch logfile; #嘗試切換一下在線重做日志檔案,此時可以到之前設定的歸檔日志目錄中查看是否有新檔案,如果有新檔案則表示歸檔正常,

關閉歸檔模式

 關閉歸檔模式和開啟的操作一樣,只能在mount狀態下執行,

 SQL> shutdown immediate;     #先正常關閉在用資料庫,如果你的資料庫正在運行
 SQL> startup mount;                #啟動資料庫到mount階段
 SQL> alter database noarchivelog;     #設定資料庫為歸檔模式
 SQL> alter database open;              #啟動資料庫到open狀態
 SQL> archive log list;           #查看資料庫當前是否處于歸檔模式下

 

1.3 備份腳本

腳本中的ORACLE_SID、ORACLE_BASE、ORACLE_HOME、PATH這幾個環境變數請根據自己的實際情況填寫,

 1 #!/bin/bash
 2 export ORACLE_SID=orcl
 3 export ORACLE_BASE=/app/oracle
 4 export ORACLE_HOME=/app/oracle/product/11.2.0/dbhome_1
 5 export PATH=$DB_HOME/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin
 6 export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
 7 echo '------------------------------------' >> /tmp/rman_PRD04_full.log
 8 echo "Start FULL Backup at  `date +%Y-%m-%d:%H:%M:%S`  " >> /tmp/rman_PRD04_full.log
 9 echo '------------------------------------' >> /tmp/rman_PRD04_full.log
10 
11 rman target / log /tmp/rman_PRD04_full.log append <<EOF
12 run{
13 allocate channel c1 type disk;
14 allocate channel c2 type disk;
15 allocate channel c3 type disk;
16 backup database format '/app/archive_backup/full_%d_%T_%s_%p.bak';
17 SQL 'alter system archive log current';
18 SQL 'alter system archive log current';
19 backup archivelog all  format '/app/archive_backup/arch_%d_%T_%s_%p.bak';
20 backup current controlfile format '/app/archive_backup/ct1_%d_%T_%s_%p.ctl.bak';
21 backup spfile format '/app/archive_backup/%d_%T_%s_%p.spfile.bak';
22 }
23 EOF

釋義:

        13-15行:打開了三個通道介質都為disk,rman備份建議最多使用4個通道,

        16行:定義備份過后的資料檔案路徑及命名格式,

        17-18行:切換資料庫在線重做日志檔案,

        19行:定義備份的歸檔日志檔案路徑及命名格式,(順序必須在備份資料檔案之后),備份的是資料庫資料檔案備份期間產生的歸檔日志,

        20行:定義備份的控制檔案路徑及命令格式,

        21行:定義備份的spfile檔案路徑及命令格式,

 

1.4 RMAN基礎操作

$rman target /                 #以資料庫的sysdba用戶進入到rman中,當設定了ORACLE_SID同時對應實體的資料庫處于nomount以上的狀態時,該命令會自動連接到該實體中, 不然需要使用set dbid 'xxxxxx';設定連接到哪一個實體中
RMAN> show all;              #查看所有配置
釋義:    
    ①configure retention policy to redundancy 1: 
        是用來決定那些備份不再需要了,它一共有三種可選項,分別是
        復制代碼 代碼如下:
        CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
        CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
        CONFIGURE RETENTION POLICY TO NONE;
                第一種recover window是保持所有足夠的備份,可以將資料庫系統恢復到最近七天內的任意時刻,任何超過最近七天的資料庫備份將被標記為obsolete,
                第二種redundancy是為了保持可以恢復的最新的5份資料庫備份,任何超過最新5份的備份都將被標記為redundancy,它的默認值是1份,
                第三種不需要保持策略,clear將恢復回默認的保持策略,
                一般最安全的方法是采用第二種保持策略,
    ②CONFIGURE BACKUP OPTIMIZATION OFF
        默認值為關閉,如果打開,rman將對備份的資料檔案及歸檔等檔案進行一種優化的演算法,
    ③Configure default device type to disk:
        是指定所有I/O操作的設備型別是硬碟或者磁帶,默認值是硬碟
        磁帶的設定是CONFIGURE DEFAULT DEVICE TYPE TO SBT;
    ④CONFIGURE CONTROLFILE AUTOBACKUP OFF
        強制資料庫在備份檔案或者執行改變資料庫結構的命令之后將控制檔案自動備份,默認值為關閉,這樣可以避免控制檔案和catalog丟失后,控制檔案仍然可以恢復,
    ⑤CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'
        是配置控制檔案的備份路徑和備份格式
    ⑥CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
        是配置資料庫設備型別的并行度,并行的數目決定了開啟通道的個數,
    ⑦CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
         CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1
        是否啟動復合備份,向指定的i/o設備中指定的位置生成指定的份數,預設為1.這個配置僅用于資料檔案和歸檔檔案,并且,只有在自動分配通道時才會生效!
    ⑧CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA'
        是配置控制檔案的快照檔案的存放路徑和檔案名,這個快照檔案是在備份期間產生的,用于控制檔案的讀一致性,
    ⑨CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
        是配置備份檔案的備份路徑和備份格式
    ⑩CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];
        此命令用于將指定的表空間不備份到備份集中, 此命令對只讀表空間是非常有用的,

校驗備份資料

校驗的目的是檢測當前以存在rman備份資料是否有效等功能,

檢驗操作不會對以備份資料造成影響,可以放心大膽的使用,

RMAN> crosscheck backup;                         #校驗所有備份資料資訊
RMAN> crosscheck backup of database;             #校驗資料庫備份資料資訊
RMAN> crosscheck backup of tablespacesystem;     #校驗資料庫表空間備份資料資訊
RMAN> crosscheck backup of controlfile;          #校驗控制檔案備份資訊
RMAN> crosscheck backup of spfile;               #檢驗資料庫組態檔備份資訊
RMAN> crosscheck archivelog all;                 #檢驗歸檔日志檔案資料資訊
RMAN> crosscheck backup of archivelog all;       #檢驗歸檔日志檔案備份資訊

查看備份資料

查看rman中備份檔案資訊,為保證資料的準確性,在執行查看前請先使用crosscheck命令對備份資料進行一次檢驗,

查看命令是無害的隨意用,不會修改任何東西,

RMAN> list backup;                           #查看所有備份資料
RMAN> list backup of database;               #查看資料庫備份資料
RMAN> list backup of tablespacetable_name;   #查看表空間備份資料
RMAN> list backup of controlfile;            #查看控制檔案備份資料
RMAN> list backup of spfile;                 #查看資料庫組態檔備份資料
RMAN> list backupset id;                     #這里ID指的是備份集的ID號 比如2、3.

  RMAN> list archivelog all; #查看所有的歸檔日志檔案
  RMAN> list archivelog all COMPLETED BEFORE 'SYSDATE-7'; #查看7天前的資料歸檔日志檔案
  RMAN> list ARCHIVELOG FROM TIME 'SYSDATE-7'; #查看7天內的歸檔日志檔案

 洗掉歸檔及備份檔案

 為了避免備份檔案過多導致存盤壓力可以制定計劃定時清理備份資料,在rman中洗掉資料時請先使用crosscheck命令對備份資料進行一次檢驗,

洗掉命令威力還是很大的,一定要按照生產規范執行資料保留策略,在進行清理操作時請多次確認,在執行洗掉操作時請小心!小心!小心!不要誤操作了,

洗掉歸檔日志
RMAN> delete expired archivelog all;                        #洗掉過期的歸檔日志
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';   #洗掉7天前的歸檔日志
RMAN> DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';               #洗掉七天內的歸檔
RMAN> report obsolete;                                       #報告陳舊備份
RMAN> delete obsolete;                                       #洗掉陳舊備份
RMAN> delete expired backup;                                 #洗掉過期的資料,和rman的保留策略設定有關
RMAN> delete expired copy ;                                  #洗掉EXPIRED副本
RMAN> delete backupset 9;                                    #洗掉備份集編號9的
RMAN> delete backuppiece ¨F:\backup\DEMO_9.bak¨;             #洗掉特定備份片
RMAN> delete backup;                                         #洗掉所有備份
RMAN> RMAN> delete copy;                                     #洗掉映象副本
RMAN> delete datafilecopy ¨F:\backup\DEMO_9.bak¨             #洗掉特定映象副本

 

 

2 RMAN恢復資料

2.1 恢復說明

資料庫啟動需要經過: close 階段   ---->    nomount階段   ----->   mount階段    ----> open階段

close階段:

        狀態:資料庫程式未運行,

        恢復內容:可以進行物理檔案的移動拷貝,創建啟動前必要的檔案夾、物理拷貝spfile檔案到正確目錄,

nomount階段:

        狀態:oracle程式資料庫中必要的檔案夾存及特定檔案存在,該階段不會去檢測控制檔案和資料庫資料檔案是否存在,但是如spfile檔案丟失是無法啟動到nomount狀態,

        恢復內容:可以進行控制檔案的恢復,如從備份位置恢復控制檔案或使用命令重建控制檔案等操作,

mount階段:

        狀態:階段需要有控制檔案,能夠正常讀取讀取控制檔案中的資料庫資訊如資料檔案路徑,當前scn號等資訊,

        恢復內容:該階段組要可以對具體的資料檔案進行恢復及redo 日志檔案丟失重建等操作

open:

        狀態:資料庫的最終狀態,控制檔案中的所有檔案及scn號一致的情況下可以啟動成功,如果scn號不一致可能需要進行實體恢復,

 

2.2 恢復控制檔案(有備份)

 思路:

        強制關閉資料庫,手動啟動資料庫到mount階段,恢復丟失的控制檔案,然后在mount階段恢復同步一下資料庫最后打開資料庫,

步驟:

        1.強制關閉資料庫

        2.啟動資料庫到nomount狀態

        3.使用rman連接資料庫

        4.使用備份檔案恢復control檔案

        5.在rman管理器中啟動資料庫到mount階段

        6.執行恢復資料庫

        7.打開資料庫

#強制關閉資料庫
SQL> shutdown abort;

#啟動到nomount階段 SQL
> startup nomount;

#新開一個終端,進入到rman管理器中 $ rman target
/ RMAN> set dbid='xxxxxxxxxxx'; #dbid可以在資料庫正常時,通過select dbid from v$database;命令查看 RMAN> restore controlfile from '實際備份的檔案路徑'; RMAN> alter database mount; RMAN> recover database; #如果報資料檔案相關的錯誤,需進行資料檔案恢復,則執行如下三條命令, 如果有datafile檔案錯誤, RMAN> list failure; RMAN> advise failure; #運行自動修復功能,會生成一個文本,使用cat查看按照文本操作 RMAN> repair failure; #運行自動修復,成功的話會自動打開庫
RMAN> alter database open; #執行啟動資料庫到open狀態,如果該命令成功則不用執行下一條命令 RMAN
> alter database open resetlogs;

 

2.3 重建控制檔案(沒有備份)

在例外斷電可能導致控制檔案丟失或GG了,又沒有備份那么只有嘗試重建控制檔案,

控制檔案丟失資料庫是無法啟動到mount狀態的,在rac環境中需要設定cluster_database為False,show parameter cluster_database

思路:

        備份現有資料庫組態檔,通過組態檔找到資料庫名和具體的資料存放路徑,在nomount階段下獲取字符集,使用獲取到的資料填充命令重建資料庫控制檔案,

步驟:

        1.強制關閉資料庫

        2.啟動資料庫到nomount狀態

        3.備份spfile檔案

        4.獲取資料檔案串列、資料庫實體名、字符集等資訊

        5.完善控制檔案重建命令

        6.打開資料庫

備份spfile檔案

備份spfile檔案,如果spfile不小心被你玩崩了那么你可以使用 startup pfile='pfile路徑'指定之前備份的,

使用服務器引數檔案spfile創建文本引數檔案pfile:
SQL> show parameter spfile; #查看spfile檔案存放路徑 (以下的spfile備份命令選擇一種即可) SQL> create pfile from spfile='/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora';#復制的pfile在同目錄下 SQL> create pfile from spfile; #復制當前的spfile檔案為pfile檔案,同目錄, SQL> create pfile="/app/oracle/product/11.2.0/dbhome_1/dbs/bakpfile.ora" from spfile="/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora"; SQL> create pfile="/app/oracle/product/11.2.0/dbhome_1/dbs/bakpfile.ora" from spfile;

  spfile丟失過后可以直接復制,也可以使用如下命令恢復spfile檔案,

  SQL> create spfile from pfile='/app/oracle/product/11.2.0/dbhome_1/dbs/bakpfile.ora';

 

獲取資料庫名,在spfile檔案中

在檔案中查看 db_name= 行內容并記錄下來,

[oracle@localhost dbs]$ cat spfileorcl.ora| more
b_cache_size=637534208
orcl.__java_pool_size=16777216
orcl.__large_pool_size=33554432
orcl.__oracle_base='/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=637534208
orcl.__sga_target=922746880
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=218103808
orcl.__streams_pool_size=0
*.audit_file_dest='/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/app/oracle/oradata/orcl/control01.ctl','/app/oracle/fast_recC
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_dest_1='location=/app/archive_data'
*.memory_target=1547698176
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

獲取字符集,很重要(在nomount狀態)

SQL> select userenv('language') from dual;

獲取資料檔案串列

一般在$ORACLE_BASE/oradata/實體名/下ASM除外,記錄下所有的檔案依次填寫在命令中,

$ ll $ORACLE_BASE/oradata/orcl/
-rw-r----- 1 oracle oinstall 9.3M Sep  1 11:58 control01.ctl.bak
-rw-r----- 1 oracle oinstall 331M Sep  1 11:57 example01.dbf
drwxr-x--- 3 oracle oinstall 4.0K Aug 20 06:25 ORCL
-rw-r----- 1 oracle oinstall 501M Sep  1 11:54 redo01.log
-rw-r----- 1 oracle oinstall 501M Sep  1 11:57 redo02.log
-rw-r----- 1 oracle oinstall 501M Sep  1 11:54 redo03.log-rw-r----- 1 oracle oinstall 541M Sep  1 11:57 sysaux01.dbf
-rw-r----- 1 oracle oinstall 751M Sep  1 11:57 system01.dbf
-rw-r----- 1 oracle oinstall  21M Sep  1 11:54 temp01.dbf
-rw-r----- 1 oracle oinstall 101M Sep  1 11:57 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5.1M Sep  1 11:57 users01.dbf

生成控制檔案

在nomount中執行命令,按照之前查看到的檔案填寫,控制檔案生成過后會自動啟動到mount狀態,

#紅色字體部分請按照自己實際環境填寫,
SQL> CREATE CONTROLFILE REUSE DATABASE 'orcl' NORESETLOGS ARCHIVELOG MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 '/app/oracle/oradata/orcl/redo01.log' SIZE 500M, GROUP 2 '/app/oracle/oradata/orcl/redo02.log' SIZE 500M, GROUP 3 '/app/oracle/oradata/orcl/redo03.log' SIZE 500M DATAFILE '/app/oracle/oradata/orcl/system01.dbf', '/app/oracle/oradata/orcl/sysaux01.dbf', '/app/oracle/oradata/orcl/undotbs01.dbf', '/app/oracle/oradata/orcl/users01.dbf', '/app/oracle/oradata/orcl/example01.dbf', '/app/oracle/oradata/orcl/temp01.dbf' CHARACTER SET US7ASCII ; 注:提示ORA-01110: data file : '/app/oracle/oradata/orcl/temp01.dbf\' 則洗掉temp01.dbf這一行,再執行, SQL> CREATE CONTROLFILE REUSE DATABASE 'orcl' NORESETLOGS ARCHIVELOG MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226 LOGFILE GROUP 1 '/app/oracle/oradata/orcl/redo01.log' SIZE 500M, GROUP 2 '/app/oracle/oradata/orcl/redo02.log' SIZE 500M, GROUP 3 '/app/oracle/oradata/orcl/redo03.log' SIZE 500M DATAFILE '/app/oracle/oradata/orcl/system01.dbf', '/app/oracle/oradata/orcl/sysaux01.dbf', '/app/oracle/oradata/orcl/undotbs01.dbf', '/app/oracle/oradata/orcl/users01.dbf', '/app/oracle/oradata/orcl/example01.dbf' CHARACTER SET US7ASCII ;

打開資料庫

在成功執行了控制檔案重建操作后,資料庫會自動啟動到mount狀態,此時可以嘗試open資料庫,如果無法直接open嘗試recover一下再open,

SQL> alter database open;
如果此處失敗,則先進行實體恢復,recover database; 然后再執行alter database open; ERROR at line
1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: '/app/oracle/oradata/orcl/system01.dbf'

 

2.4 恢復丟失的資料檔案

如果沒有備份至故障期間的歸檔重做日志,那么只能恢復到備份的時候,不能進行完全恢復,

思路:

        強制關閉資料庫,在rman中啟動資料庫到nomount狀態,恢復控制檔案(可選),啟動資料庫到mount階段,恢復相關資料檔案,recover一下資料,最后打開資料庫,

步驟:

        1.強制關閉資料庫

        2.啟動資料庫到nomount狀態

        3.恢復控制檔案(可選)

        4.切換資料庫到mount模式,restore資料檔案

        5.recover資料檔案

        6.打開資料庫


SQL> shutdown abort; #強制關閉資料庫用oracle賬戶 SQL> startup nomount; #啟動資料庫到nomount狀態,如果有控制檔案、pfile或者當前控制檔案、spfile不正確,則需要先進行組態檔恢復,
$ rman target
/ RMAN> restore controlfile from '實際備份的檔案路徑'; RMAN> alter database mount; RMAN> list failure; #查看系統中缺失的檔案資訊,必須先執行該命令后才能使用如下的advise命令 RMAN> advise failure; #運行自動修復功能,會生成一個文本,使用cat查看按照文本操作 RMAN> repair failure; #運行自動修復,成功的話會自動打開庫

 

2.5 恢復丟失的某個資料檔案

思路:

        離線丟失的資料檔案,在rman中恢復丟失的資料檔案,recover一下恢復的資料檔案,最后上線資料檔案,

步驟:

        1.離線丟失資料檔案

        2.使用備份資料恢復丟失檔案

        3.recover剛才恢復的檔案

        4.上線資料檔案

關閉資料庫

啟動到mount狀態,也可以嘗試啟動到open狀態(一般啟動open的程序中會提示檔案offline)

offline指定的資料庫檔案

SQL> alter database datafile '/app/oracle/oradata/orcl/example01.dbf' offline;

SQL> alter database open;

 

 從rman中恢復資料檔案

RMAN> restore datafile '/app/oracle/oradata/orcl/example01.dbf';

 

獲取實際的資料檔案路徑 

SQL> set linesize 200;
SQL> col file_name for a40;
SQL> select file_name,file_id,tablespace_name,status,online_status from dba_data_files

 

查看到offline的檔案實際路徑,為了保證scn號一致還需要獲取到檔案路徑在rman中執行恢復,

RMAN> recover datafile '/app/oracle/oradata/orcl/example01.dbf';

 

online資料檔案,重啟資料庫

SQL> alter database datafile '/app/oracle/oradata/orcl/example01.dbf' online;
SQL> shutdown immediate
SQL> startup

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1141.html

標籤:Oracle

上一篇:PL/SQL Developer使用Oracle免安裝客戶端

下一篇:Oracle基礎(二)之排序(order by)、限定查詢(where)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more