聯機方式支持數據庫備份、用戶表空間備份和用戶表備份,而脫機方式只支持數據庫備份
拷貝文件不是簡單地將數據文件和日誌文件的全部內容拷貝到備份文件,而是僅僅拷貝使用過的數據頁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’ ;工具
邏輯備份的命令行工具 dexp.exe
dexp 工具能夠對本地或者遠程數據庫進行數據庫級、模式級和表級的邏輯備份。備份的內容很是靈活,能夠選擇是否備份索引、數據行和權限,是否忽略各類約束(外鍵約束、非空約束、惟一約束等) ,在備份前能夠選擇生成日誌文件,記錄備份的過程以供查看
詳見手冊性能
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
注:表名最好加雙引號,不然若是表名爲全數字,備份失敗加密
系統在執行備份時,充分利用了 CPU 資源和磁盤組資源,達到提高備份性能的目的spa
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能夠寫表名,以前版本寫了會報錯