DM7使用離線工具DMRMAN執行資料庫備份
離線工具DMRMAN執行資料庫備份
1. 概述
在DMRMAN工具中使用BACKUP命令你可以備份整個資料庫。使用DMRMAN備份資料庫不需要設定歸檔,關閉伺服器在DMRMAN中輸入以下命令即可備份資料庫:
C:\Users\Administrator>net stop DmServicejydm DmServicejydm 服務正在停止.. DmServicejydm 服務已成功停止。 RMAN> backup database 'E:\dmdbms\data\jydm\dm.ini'; backup database 'E:\dmdbms\data\jydm\dm.ini'; checking if the database under system path [E:\dmdbms\data\jydm] is running...[4]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[3]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[2]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[1]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[0]. checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info. EP[0] max_lsn: 898933 BACKUP DATABASE [jydm], execute...... CMD CHECK LSN...... BACKUP DATABASE [jydm], collect dbf...... CMD CHECK ...... DBF BACKUP SUBS...... total 1 packages processed... total 2 packages processed... total 3 packages processed... total 4 packages processed... total 5 packages processed... total 6 packages processed... total 7 packages processed... total 8 packages processed... DBF BACKUP MAIN...... BACKUPSET [E:\dmdbms\data\jydm\bak\DB_jydm_FULL_20200531_181250_000528] END, CODE [0]...... META GENERATING...... total 9 packages processed... total 9 packages processed! CMD END.CODE:[0] backup successfully! time used: 8302.098(ms)
命令執行完後會在預設的備份路徑下生成備份集目錄,預設的備份路徑為dm.ini中BAK_PATH的配置值,若未配置,則為SYSTEM_PATH下的bak目錄。這是最簡單的離線資料庫備份語句,如果要設定其他備份選項請參考下文的語法及使用說明。語法如下:
BACKUP DATABASE '<INI檔案路徑>' [[[FULL][DDL_CLONE]] |INCREMENT [CUMULATIVE][WITH BACKUPDIR '<基備份搜尋目錄>'{,'<基備份搜尋目錄>'}]|[BASE ON BACKUPSET '<基備份集目錄>']] [TO <備份名>] [BACKUPSET '<備份集目錄>'][DEVICE TYPE <介質型別>[PARMS '<介質引數>'] [BACKUPINFO '<備份描述>'] [MAXPIECESIZE <備份片限制大小>] [IDENTIFIED BY <加密密碼>[WITH ENCRYPTION][ENCRYPT WITH <加密演算法>]] [COMPRESSED [LEVEL <壓縮級別>]][WITHOUT LOG] [TASK THREAD <執行緒數>][PARALLEL [<並行數>]];
DATABASE:必選引數。指定還原目標庫的INI檔案路徑。
FULL:備份型別。FULL表示完全備份,可不指定,DMRMAN會預設為完全備份。
DDL_CLONE:資料庫克隆。該引數只能用於完全備份中,表示僅複製所有的後設資料不複製資料。如對於資料庫中的表來說,只備份表的定義不備份表中資料。
INCREMENT:備份型別。INCREMENT表示增量備份,若要執行增量備份必須指定該引數。
WITH BACKUPDIR:用於增量備份中,指定基備份的搜尋目錄,最大長度為256個位元組。若不指定,伺服器自動在預設備份目錄下搜尋基備份。如果基備份不在預設的備份目錄下,增量備份必須指定該引數。
CUMULATIVE:用於增量備份中,指明為累積增量備份型別,若不指定則預設為差異增量備份型別。
BASE ON BACKUPSET:用於增量備份中,為增量備份指定基備份集目錄。,如果沒有指定基備份集,則會自動搜尋一個最近可用的備份集作為基備份集
TO:指定生成備份名稱。若未指定,系統隨機生成,預設備份名格式為:DB_備份型別_資料庫名_備份時間。
BACKUPSET:指定當前備份集生成目錄。若指定為相對路徑,則在預設備份路徑中生成備份集。
DEVICE TYPE:指儲存備份集的介質型別,支援DISK和TAPE,預設DISK。DISK表示儲存備份集到磁碟,TAPE表示儲存到磁帶。
PARMS:只對介質型別為TAPE時有效。
BACKUPINFO:備份的描述資訊。最大不超過256個位元組。
MAXPIECESIZE:最大備份片檔案大小上限,以M為單位,最小128M,32位系統最大2G,64位系統最大128G。
IDENTIFIED BY:指定備份時的加密密碼。密碼應用雙引號括起來,這樣避免一些特殊字元通不過語法檢測。密碼的設定規則遵行ini引數pwd_policy指定的口令策略。
WITH ENCRYPTION:指定加密型別,0表示不加密,不對備份檔案進行加密處理;1表示簡單加密,對備份檔案設定口令,但檔案內容仍以明文存;2表示完全資料加密,對備份檔案進行完全的加密,備份檔案以密文方式儲存。
ENCRYPT WITH:加密演算法。預設情況下,演算法為AES256_CFB。具體可以使用的加密演算法參考聯機資料庫備份章節的引數說明。
COMPRESSED:取值範圍0~9。0表示不壓縮,1表示1級壓縮,9表示9級壓縮。壓縮級別越高,壓縮越慢,但壓縮比越高。若未指定,但指定COMPRESSED,則預設1;否則,預設0。
WITHOUT LOG:離線資料庫備份是否備份日誌。如果使用,則表示不備份,否則表示備份。如果使用了WITHOUT LOG引數,則使用DMRMAN工具還原時,必須指定WITH ARCHIVEDIR引數。
TASK THREAD:備份過程中資料處理過程執行緒的個數,取值範圍0~64,預設為4。若指定為0,則調整為1;若指定大於當前系統主機核數,則調整為當前主機核數。執行緒數(TASK THREAD)*並行數(PARALLEL)不得超過512。
PARALLEL:指定並行備份的並行數,取值範圍0~128。若不指定,則預設為4,指定0或者1均認為為非並行備份。若未指定關鍵PARALLEL,則認為非並行備份。並行備份不支援介質為TAPE的備份。執行緒數(TASK THREAD)*並行數(PARALLEL)不得超過512。
使用說明:
1. 備份成功後會在<備份集目錄>或者備份預設目錄下生成備份集。備份集中包括一個備份後設資料檔案,字尾.meta,一個或多個備份片檔案,字尾.bak。
2. 對於並行備份的備份集,備份集中還包括其他子備份集目錄,但每個子備份集目錄中也都包含一個meta檔案,0個或者多個備份片檔案。
3. DDL_CLONE庫備份集不能作為增量備份的基備份,僅能用於庫級還原。
4.離線備份的資料庫可以正常退出庫,也可以是故障退出的資料庫。若是故障退出的資料庫,則備份前,需先進行歸檔修復。
5. 在執行離線資料庫備份過程中,如果報錯歸檔不完整,則需要檢查庫是不是異常退出。如果庫是異常退出,則需要先進行歸檔修復。
2. 備份資料庫
本節主要描述使用DMRMAN如何執行基本的離線資料庫備份及實施一些備份策略,包括:
1. 設定備份選項
2. 建立完全備份
3. 建立增量備份
1.設定備份選項
備份命令如果僅指定了必選引數如“BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'”,那麼DMRMAN會根據配置的環境及內建的引數預設值自動指定備份介質型別、備份路徑、備份片大小等引數。使用者備份時也可以指定這些引數來覆蓋預設值,常見的備份選項有設定備份集路徑、指定備份名、限制備份片大小、新增描述資訊、並行備份等。DMRMAN離線備份資料庫的語法與使用DIsql聯機備份類似。
2.建立完全備份
執行資料庫備份要求資料庫處於離線狀態。與聯機備份資料庫不同的是,離線備份不需要配置歸檔。一個完整的建立離線資料庫備份的示例如下:
1) 啟動DMRMAN命令列工具。
2) 保證資料庫處於離線狀態。
3) DMRMAN中輸入以下命令:
RMAN> backup database 'E:\dmdbms\data\jydm\dm.ini' full backupset 'E:\dmdbms\backup\db_full_bak_01'; backup database 'E:\dmdbms\data\jydm\dm.ini' full backupset 'E:\dmdbms\backup\db_full_bak_01'; checking if the database under system path [E:\dmdbms\data\jydm] is running...[4]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[3]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[2]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[1]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[0]. checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info. EP[0] max_lsn: 898933 BACKUP DATABASE [jydm], execute...... CMD CHECK LSN...... BACKUP DATABASE [jydm], collect dbf...... CMD CHECK ...... DBF BACKUP SUBS...... total 1 packages processed... total 2 packages processed... total 3 packages processed... total 4 packages processed... total 5 packages processed... total 6 packages processed... total 7 packages processed... total 8 packages processed... DBF BACKUP MAIN...... BACKUPSET [E:\dmdbms\backup\db_full_bak_01] END, CODE [0]...... META GENERATING...... total 9 packages processed... total 9 packages processed! CMD END.CODE:[0] backup successfully! time used: 7256.870(ms)
RAC使用dmrman執行備份
[dmdba@dmrac1 bin]$ dmrman dmrman V7.1.6.46-Build(2018.02.08-89107)ENT RMAN> backup database '/dm7/data/rac0_config/dm.ini' backupset '/dm7/backup/bak/db_rac_full_bak_2020060801'; backup database '/dm7/data/rac0_config/dm.ini' backupset '/dm7/backup/bak/db_rac_full_bak_2020060801'; file dm.key not found, use default license! Read ini warning, default backup path [/dm7data/bak] does not exist. [-105]:Invalid control file
報錯是因為對於rac環境來說在啟動dmrman時需要指定dcr_ini引數
[dmdba@dmrac1 bin]$ dmrman dcr_ini=/dm7/data/dmdcr.ini dmrman V7.1.6.46-Build(2018.02.08-89107)ENT RMAN> backup database '/dm7/data/rac0_config/dm.ini'; backup database '/dm7/data/rac0_config/dm.ini'; file dm.key not found, use default license! checking if the RAC database under system path [+DMDATA/data/rac] is running.... EP [0] is checking.... [-12000]:The specified instance has been started
報錯是因為指定的資料庫例項已經啟動了,dmrman是用於離線備份,所以需要停止資料庫
RMAN> backup database '/dm7/data/rac0_config/dm.ini'; backup database '/dm7/data/rac0_config/dm.ini'; checking if the RAC database under system path [+DMDATA/data/rac] is running.... EP [0] is checking.... EP [1] is checking.... EP[0] max_lsn: 58852 EP[0] adjust cur_lsn from [58852] to [58867] BACKUP DATABASE [rac], execute...... CMD CHECK LSN...... BACKUP DATABASE [rac], collect dbf...... CMD CHECK ...... DBF BACKUP SUBS...... total 1 packages processed... total 2 packages processed... total 3 packages processed... total 4 packages processed... total 5 packages processed... DBF BACKUP MAIN...... BACKUPSET [+DMDATA/data/rac/bak/DB_rac_FULL_20200608_160009_000828] END, CODE [0]...... META GENERATING...... total 9 packages processed... total 9 packages processed! CMD END.CODE:[0] backup successfully! time used: 16303.415(ms)
命令中的FULL參數列示執行的備份為完全備份,也可以不指定該引數,DMRMAN預設執行的備份型別為完全備份。
3.建立增量備份
增量備份指基於指定的庫的某個備份(完全備份或者增量備份),備份自該備份以來所有發生修改了的資料頁。離線增量備份要求兩次備份之間資料庫必須有操作,否則備份會報錯。增量備份示例如下:
首先啟動資料庫執行一些操作
C:\Users\Administrator>net start DmServicejydm DmServicejydm 服務正在啟動 .... DmServicejydm 服務已經啟動成功。 SQL> create table t2(id int); 操作已執行 已用時間: 8.250(毫秒). 執行號:5. SQL> begin 2 for i in 1 .. 10 loop 3 insert into t2 values(i); 4 end loop; 5 commit; 6 end; 7 / DMSQL 過程已成功完成 已用時間: 2.845(毫秒). 執行號:6. SQL> exit
1) 啟動DMRMAN命令列工具。
2) 保證資料庫處於離線狀態。
C:\Users\Administrator>net stop DmServicejydm DmServicejydm 服務正在停止.. DmServicejydm 服務已成功停止。
3) DMRMAN中輸入以下命令:
RMAN> backup database 'E:\dmdbms\data\jydm\dm.ini' increment with backupdir 'E:\dmdbms\backup' backupset 'E:\dmdbms\backup\db_full_bak_02'; backup database 'E:\dmdbms\data\jydm\dm.ini' increment with backupdir 'E:\dmdbms\backup' backupset 'E:\dmdbms\backup\db_full_bak_02'; checking if the database under system path [E:\dmdbms\data\jydm] is running...[4]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[3]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[2]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[1]. checking if the database under system path [E:\dmdbms\data\jydm] is running...[0]. checking if the database under system path [E:\dmdbms\data\jydm] is running, write dmrman info. EP[0] max_lsn: 901685 BACKUP DATABASE [jydm], execute...... CMD CHECK LSN...... BACKUP DATABASE [jydm], collect dbf...... CMD CHECK ...... DBF BACKUP SUBS...... total 1 packages processed... total 2 packages processed... total 3 packages processed... total 4 packages processed... total 5 packages processed... total 6 packages processed... total 7 packages processed... total 8 packages processed... DBF BACKUP MAIN...... BACKUPSET [E:\dmdbms\backup\db_full_bak_02] END, CODE [0]...... META GENERATING...... total 9 packages processed... total 9 packages processed! CMD END.CODE:[0] backup successfully! time used: 8219.138(ms)
命令中的INCREMENT參數列示執行的備份為增量備份,增量備份該引數不可省略。如果增量備份的基備份不在預設備份目錄,必須指定WITH BACKUPDIR引數用於搜尋基備份集,或者使用CONFIGURE...BACKUPDIR命令配置預設的基備份集搜尋目錄
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2715203/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7使用DMRMAN執行歸檔備份
- 使用離線工具dmbackup進行資料庫備份資料庫
- DM7使用DMRMAN工具執行備份集對映檔案匯出
- DM7使用DMRMAN執行RAC資料庫恢復資料庫
- DM7使用DMRMAN工具刪除備份集
- DM7使用DMRMAN工具檢視備份集
- DM7使用DMRMAN工具匯入備份集
- DM7使用DMRMAN工具執行加密備份與設定跟蹤日誌加密
- DM7使用DMRMAN執行資料庫還原和恢復資料庫
- DM7使用DMRMAN對資料庫執行指定對映檔案還原資料庫
- DM7使用DMRMAN執行歸檔還原
- DM7使用DMRMAN執行歸檔修復
- DM7使用DMRMAN執行表空間還原
- python使用多執行緒備份資料庫Python執行緒資料庫
- DM7使用DMRAMN執行備份集恢復
- DM7使用DMRMAN恢復資料庫到指定時間點/LSN資料庫
- DM7 使用dminit工具建立資料庫資料庫
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- DM7使用聯機執行SQL語句進行備份還原SQL
- 11. shell多執行緒備份資料庫執行緒資料庫
- DM7使用dmrestore工具還原資料庫REST資料庫
- 使用RMAN備份資料庫資料庫
- DM7聯機執行SQL語句進行表備份SQL
- Shell多執行緒備份資料庫的指令碼執行緒資料庫指令碼
- DM7使用disql管理備份SQL
- DM聯機執行SQL語句進行資料庫備份SQL資料庫
- DM7聯機執行SQL語句進行歸檔備份SQL
- DM7聯機執行SQL語句進行表空間備份SQL
- 資料庫備份資料庫
- 達夢DMRMAN備份還原工具的介紹與配置
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS
- DM7使用dmrestore工具利用不同資料庫的歸檔恢復資料庫REST資料庫
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- 資料備份 reed-solomn 庫 的使用
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- mysql 資料庫 備份MySql資料庫