1. 程式人生 > >人大金倉-邏輯備份、還原

人大金倉-邏輯備份、還原

1. 物理全系統備份

sys_backup -b

物理離線全系統備份

離線全系統備份需要伺服器處於停止狀態

//使用優化方式
# sys_backup -b -D /home/usr/KingbaseES/data -M 6
//指定備份集路徑"/home/db/" 指定備份名DATA
# sys_backup -b -D /home/KingbaseES/data -n DATA -P /home/db/

物理聯機全系統備份

使用SQL語句指定備份資訊來完成備份

# 開啟歸檔模式
# vi data/kingbase.conf
log_archive_start = on
log_archive_dest = '/home/test'
//簡單備份
BACKUP;
//快速備份(一次最多允許拷貝5個區。對於有空洞的資料檔案,此備份方式速度更快,更節省硬碟空間)
BACKUP NUM 5//指定備份路徑備份
BACKUP FILEPATH '/home/db/backup'//不備份READ ONLY的資料檔案
BACKUP WITHOUT READONLY;

2. 物理增量備份

sys_backup -b

物理聯機增量備份

//完全備份
BACKUP NAME base1 TYPE FULL;
//插入資料
CREATE TABLE tab(col1 INT, col2 TEXT);    INSERT INTO tab VALUES
(1,'one');
//增量備份 BACKUP NAME diff1 TYPE DIFFERENTIAL INCREMENT;

物理離線增量備份

# sys_backup –b  -D ./data -P ‘/home/db’
# sys_backup –b  -D ./data  -P ‘/home/db’ -t differential

3. 物理還原

系統會自動地判斷是完全備份還是增量備份
sys_backup –r

//恢復備份名為OFFLINE_B1的備份到新位置
# sys_backup -r -P /home/db/backup/OFFLINE_B1 -N /home/db/recover/OFFLINE_B1
//使用歸檔的日誌和尾日誌檔案,指定時間點 # sys_backup -r -P /home/db/backup/ONLINE_B3 –N /home/db/recover/ONLINE_B3 -A /home/db/archive -D /home/KingbaseES/data -t '2011-02-06 13:20:37'

4. 邏輯備份

邏輯備份將資料庫物件的定義和資料匯出到指定檔案中。邏輯備份檔案的格式有兩種:二進位制檔案(預設方式)和SQL指令碼
邏輯備份有三種備份模式,分別為:全庫備份、模式備份、表備份(全表備份和水平分割槽備份)。全庫備份是指備份單個數據庫中所有的使用者可備份的物件;模式備份是指備份使用者指定的模式和模式所包含的物件;表備份分為全表備份和水平子分割槽備份,將指定的表和表的資料進行備份

sys_dump 是 KingbaseES 專有的邏輯備份工具,而 exp 是相容 oracle 邏輯備份工具,exp 的使用依賴於配置的kingbase服務,所以需要在使用前配置 sys_service.conf 檔案

-w選項覆蓋原有備份檔案

//備份指定資料庫
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -f c:\dumpfile.dmp TEST    
//備份指定模式
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -n PUBLIC -f c:\dumpfile.dmp TEST    
//備份指定表
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -t PUBLIC.T1 -f c:\dumpfile.dmp TEST    
//備份指定水平子分割槽表
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -t PUBLIC.T1:PARTTAB_01 -f c:\dumpfile.dmp TEST    
//備份為SQL指令碼檔案
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -F p -f c:\dumpfile.sql TEST    
//備份為物件的定義到SQL指令碼檔案
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -s -Fp -f c:\dumpfile.sql TEST    
//使用加密方式進行備份
# sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -K 12345678 -f c:\dumpfile.dmp DB_DUMPTEST 

5. 邏輯還原

邏輯還原時,若不指定還原物件,則對備份檔案中的所有備份物件進行還原。邏輯還原方式可以有三種選擇:還原整個備份檔案,還原指定物件(表、索引、儲存過程、觸發器)

//還原備份檔案中的所有內容
# sys_restore -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -d TEST2 c:\dumpfile.dmp

注意,此時還原到資料庫”TEST2”的是備份檔案”c:\dumpfile.dmp”中的資料庫物件和資料。如果備份的是整個資料庫,則將還原整個資料庫在備份時刻的狀態;如果備份的是指定模式,則將還原指定模式在備份時刻的狀態;如果備份的是指定表,則將還原指定表在備份時刻的狀態

//邏輯還原指定物件
//還原時,可以只還原指定的物件(包括表、索引、儲存過程和觸發器),通過"-t"選項指定表,"-I"選項指定索引,"-P"選項指定儲存過程,"-T"選項指定觸發器,"-c"刪除已經存在的資料庫物件
# sys_restore -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -d TEST2 -t PUBLIC.TABLE1 -I SCHEMA1.TABLE1_ID1 c:\dumpfile.dmp
//指定還原時使用的5個執行緒來恢復表資料和大物件
# sys_restore -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -d TEST2 -J 5 c:\dumpfile.dmp    
//只還原指定表的水平分割槽資料
# sys_restore -USYSTEM -WMANAGER -p7788 -dTEST -A -t maintab:parttab_02 -tmaintab1:parttab_11 TEST_DUMP.DMP

恢復時可以採用兩種策略:

  1. 只使用增量備份的備份集進行恢復
  2. 使用增量備份的備份集+歸檔日誌+尾日誌進行恢復 (歸檔日誌和尾日誌必須同時指定)

尾日誌:
對全系統備份後,系統中被寫的REDO日誌部分沒有及時歸檔的,稱為尾日誌。尾日誌通常在KingbaseES系統執行的資料目錄中