達夢備份還原

1. 徹底備和增量備

  1. 當用戶選擇在數據庫或表空間上進行增量備份時,系統會自動將該數據庫或表空間最近的一個備份做爲其基礎備份
    手冊說基礎備份能夠是徹底備份也能夠是一個增量備份
    實際測試,基礎備份都是以徹底備份
  2. 若是該數據庫或表空間自建立以來尚未進行過備份,則增量備份沒法進行
  3. 最近那一次的還原會使之前的備份對於當前系統都失效。系統管理員在每次系統還原後就當即做一次徹底備份是一個很好的習慣
  4. 增量備份所依賴的基礎備份有且僅有一個徹底備份

2. 聯機備和脫機備

聯機方式支持數據庫備份、用戶表空間備份和用戶表備份,而脫機方式只支持數據庫備份
拷貝文件不是簡單地將數據文件和日誌文件的全部內容拷貝到備份文件,而是僅僅拷貝使用過的數據頁sql

聯機

BACKUP DATABASE [FULL |INCREMENT WITH BACKUPDIR '<備份目錄>'{,'<備份目錄>'}] TO <備份名>
[BAKFILE '<備份路徑>'] [BACKUPINFO '<備份描述>'] [MAXSIZE <限制大小>] [IDENTIFIED BY <密鑰>
[WITH ENCRYPTION<TYPE>]][COMPRESSED][WITHOUT LOG][PARALLEL '<並行映射文件路徑>']

參數說明:
(1) FULL|INCREMENT 備份類型,FULL 表示徹底備份,INCREMENT 表示增量備份;
(2) <備份目錄> 基礎備份所在的目錄,最大長度爲 256 個字節;
(3) <備份名> 備份的名稱,在 DMDBMS 中以此標識不一樣的備份;
(4) <備份路徑> 備份文件存放的完整路徑;
(5) <備份描述> 備份的描述信息;
(6) <限制大小> 最大備份文件大小,最小值爲 16M,最大值 2G;
(7) <密鑰> 備份加密經過使用 IDENTIFIED BY 來指定密碼;
(8) WITH ENCRYPTION 用來指定加密類型, 0 表示不加密, 1 表示簡單加密,2 表示複雜加密;
(9) COMPRESSED 用來指定是否壓縮。若是使用,則表示壓縮,不然表示不壓縮;
(10) WITHOUT LOG 聯機數據庫備份是否備份日誌。若是使用,則表示不備份,不然表示備份;
(11) PARALLEL 用來指定並行映射文件的完整路徑;
(12) <並行映射文件路徑> 並行映射文件的完整路徑,最大長度爲 256 個字節;數據庫

例子:
BACKUP DATABASE FULL TO full_bak BAKFILE ‘/home/dm/datafull_bak.bak’; (默認BAKFILE在dm.ini中BAK_PATH; 且備份名不能夠重複,無論是在哪一個路徑下。下同)
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm/’ TO incr_bak BAKFILE ‘/home/dm/dataincr_bak.bak’;markdown

脫機

./dmbackup TYPE=FULL INI_PATH=../data/DAMENG/dm.ini NAME=test
詳見手冊ide

備份用戶表空間

BACKUP TABLESPACE <表空間名> [FULL| INCREMENT WITH BACKUPDIR '<備份目錄>'{,'<備份目錄>'}] TO 
<備份名> [BAKFILE '<備份路徑>'] [BACKUPINFO '<備份描述>'] [MAXSIZE <限制大小>][IDENTIFIED BY 
<密鑰>[WITH ENCRYPTION <TYPE>]] [COMPRESSED];

例子:
BACKUP TABLESPACE main FULL TO TS_BAK BAKFILE ‘/home/dm/tablespace_bak.bak’ ;工具

3. 邏輯備

邏輯備份的命令行工具 dexp.exe
dexp 工具能夠對本地或者遠程數據庫進行數據庫級、模式級和表級的邏輯備份。備份的內容很是靈活,能夠選擇是否備份索引、數據行和權限,是否忽略各類約束(外鍵約束、非空約束、惟一約束等) ,在備份前能夠選擇生成日誌文件,記錄備份的過程以供查看
詳見手冊性能

4. B樹備份

B 樹備份提供表級備份的功能測試

BACKUP TABLE <表名> TO <備份名> [BAKFILE '<備份路徑>'] [BACKUPINFO '<備份描述>'][MAXSIZE 
<限制大小>] [IDENTIFIED BY <密鑰>[WITH ENCRYPTION <TYPE>]] [COMPRESSED];

例子:
BACKUP TABLE t TO table_bak BAKFILE ‘/home/dm/table_bak.bak’;ui

注:表名最好加雙引號,不然若是表名爲全數字,備份失敗加密

5. 並行備份

系統在執行備份時,充分利用了 CPU 資源和磁盤組資源,達到提高備份性能的目的spa

6. 還原

dmrestore 還原命令
參數:

INI_PATH        //配置文件路徑,最大長度爲 256 字節
FILE            //用於還原的備份文件完整路徑
BACKUP_DIR      //備份文件存放路徑,用於搜索備份文件(默認會搜索備份文件所在的目錄,以及庫的默認備份目錄)
ARCHIVE_DIR     //歸檔日誌存放的目錄,能夠指定 1~8 個。在還原聯機庫備份且不帶日誌的備份文件時,ARCHIVE_DIR 爲必選參數
DATAFIL_PATH    //指定還原後的新文件路徑([編號,路徑],……,[編號,路徑])。編號與路徑成對出現,最多能夠指定 16 個
SHOW_BAK_INFO   //可選值(0,1,2)0:表示利用備份還原;1:僅顯示備份信息,不進行還原;2:表示使用歸檔日誌進行還原
RES_TYPE        //可選值(0,1,2,3)0:表示利用備份還原;1:僅顯示備份信息,不進行還原;2:表示使用歸檔日誌進行還原;
                //3:僅還原單個徹底備份或者增量備份
LOG             //指定一個文件,還原時日誌會寫入該文件
HELP            //打印幫助信息

還原數據庫

利用備份文件還原:

# ./dmrestore INI_PATH=data/DAMENG/dm.ini FILE=data/DAMENG/bak/DB_DAMENG_20150506194312000009.bak
//查看歸檔是否打開
select arch_mode from v$database;
//查看歸檔日誌信息
select arch_name,arch_type,arch_dest from v$dm_arch_ini;

利用歸檔文件還原:
修改目標庫 db_magic 和源庫中歸檔文件的 db_magic 一致。而後就能夠執行還原操做了
修改 db_magic命令
DMMDF PATH TYPE
參數說明 :
path :文件全路徑。文件爲 SYSTEM.DBF 或 DAMENG01.LOG
type :1 或 0。1 表示 0 號數據文件,與 path 中 SYSTEM.DBF 對應;2 表示 0 號日誌文件,與 path 中 DAMENG01.LOG 對應

//查看源備份庫中system.dbf的db_magic
# ./dmmdf data1/DAMENG/SYSTEM.DBF 1
**********************************************************
1 db_magic=1430986615
2 next_trxid=1169
**********************************************************
查看到 db_magic

//修改目的備份庫中system.dbf的db_magic
# ./dmmdf data2/DAMENG/SYSTEM.DBF 1
Please input which parameter you want to change(1-2), q to quit: 
選擇1,修改爲1430986615

//修改目的備份庫中 DAMENG01.log的db_magic
# ./dmmdf data2/DAMENG/DAMENG01.log 2
**********************************************************
1 sig = DMRLOG
2 ver = 7001
3 chksum = 0
4 dbversion = 0x70009
5 sta = 0
6 n_magic = 21
7 db_magic = 1430986615
8 clsn_fil = 0
10 next_seq = 15556
11 arch_seq = 0
12 len = 67108864
13 free = 4096
14 clsn = 59219
15 clsn_off = 4096
16 arch_lsn = 0
**********************************************************
You can only reset sta(5) or db_magic (7) or clsn (14).
Please input the num which one you want to change, q to quit:
選擇7,修改爲1430986615

//還原數據庫
# ./dmrestore INI_PATH=data/DAMENG/dm.ini ARCHIVE_DIR=dmdata/arch SHOW_BAK_INFO=2

還原表空間

RESTORE TABLESPACE <表空間名> FROM '<備份路徑>' | BACKUP <備份文件名> [ INDENTIFIED BY <密碼>]
[ WITH BACKUPDIR '<備份目錄>'{,'<備份目錄>'}][WITH ARCHIVEDIR '歸檔目錄'{,'歸檔目錄'}][DBFILE 
<文件 ID> TO '<文件路徑>' {,DBFILE <文件 ID> TO '<文件路徑>'}] [MIRROR <文件 ID> TO '<文件路徑>'
{,MIRROR <文件 ID> TO '<文件路徑>'}];

對於表空間聯機還原,還原前須要將表空間置爲脫機狀態;還原後,爲了使用表空間,須要從新將表空間置爲聯機狀態

ALTER TABLESPACE main OFFLINE;
RESTORE TABLESPACE main FROM '/usr/local/tablespace_bak.bak' IDENTIFIED BY ABCDEF;
ALTER TABLESPACE main ONLINE;

還原用戶表

RESTORE TABLE FROM '<文件路徑>' | BACKUP <備份名> [IDENTIFIED BY <密鑰>]

例子: RESTORE TABLE FROM ‘/home/dm/table_bak.bak’ IDENTIFIED BY ABCDEF; RESTORE table t3 FROM ‘/usr/local/dmbackup/table_I[T1].bak’; //7.1.4.6能夠寫表名,以前版本寫了會報錯

相關文章
相關標籤/搜索