DM7使用DMRMAN執行資料庫還原和恢復
使用DMRMAN執行資料庫還原和恢復
下面介紹在資料檔案損壞後如何使用DMRMAN還原和恢復資料庫,主要內容包括:
1. 資料庫還原
2. 資料庫恢復
1. 資料庫還原
使用RESTORE命令完成離線還原操作,在還原語句中指定庫級備份集,可以是離線庫級備份集,或是聯機庫級備份集。資料庫的還原包括資料庫配置檔案還原和資料檔案還原,目前可能需要還原的資料庫配置檔案包括dm.ini、dm.ctl、伺服器秘鑰檔案(dm_service.private或者dm_external.config,若備份庫指定usbkey加密,則無秘鑰檔案)、聯機日誌檔案。語法如下:
RESTORE DATABASE <restore_type> FROM BACKUPSET '<備份集目錄>' [DEVICE TYPE DISK|TAPE[PARMS '<介質引數>']] [IDENTIFIED BY <密碼> [ENCRYPT WITH <加密演算法>]] [WITH BACKUPDIR '<基備份集搜尋目錄>'{,'<基備份集搜尋目錄>'}] [MAPPED FILE '<對映檔案>'][TASK THREAD <任務執行緒數>] [NOT PARALLEL] [RENAME TO '<資料庫名>']; <restore_type>::=<type1>|<type2> <type1>::='<INI檔案路徑>'[REUSE DMINI][OVERWRITE] <type2>::= TO '<system_dbf所在路徑>' [OVERWRITE]
DATABASE:指定還原庫目標的dm.ini檔案路徑。
BACKUPSET:指定用於還原目標資料庫的備份集目錄。若指定為相對路徑,會在預設備份目錄下搜尋備份集。
DEVICE TYPE:指儲存備份集的介質型別,支援DISK和TAPE,預設為DISK。DISK表示備份集儲存介質為磁碟,TAPE表示儲存介質為磁帶。
PARMS:介質引數,供第三方儲存介質(TAPE型別)管理使用。
IDENTIFIED BY:指定備份時使用的加密密碼,供還原過程解密使用。
ENCRYPT WITH:指定備份時使用的加密演算法,供還原過程解密使用,若未指定,則使用預設演算法。
WITH BACKUPDIR:指定備份集搜尋目錄。
MAPPED FILE:指定存放還原目標路徑的檔案,參見3.3.5.2.1 資料庫還原。當< 備份集目錄>和< 對映檔案>指定的路徑不一致時,以< 對映檔案>指定的路徑為主
TASK THREAD:指定還原過程中用於處理解壓縮和解密任務的執行緒個數。若未指定,則預設為4;若指定為0,則調整為1;若指定超過當前系統主機核數,則調整為主機核數。
NOT PARALLEL:指定並行備份集使用非並行方式還原。對於非並行備份集,不論是否指定該關鍵字,均採用非並行還原。
RENAME TO:指定還原資料庫後是否更改庫的名字,指定時將還原後的庫改為指定的資料庫名,預設使用備份集中的db_name作為還原後庫的名稱。
restore_type:
type1:
1>指定dm.ini還原,要求dm.ini中CTL_PATH必須配置正確,且內容有效;若配置CTL_PATH 檔案故障,且想利用dm.ini最佳化配置,則可選擇type2還原後,用指定dm.ini覆蓋還原後dm.ini,並修改CTL_PATH為當前控制檔案路徑即可;
2>除dm.ini檔案外,其他檔案均可不存在;但dm.ini引數配置必須正確,且配置的dm.ctl檔案必須是有效的控制檔案;
3>資料庫配置檔案中除已經存在的dm.ini外,先刪除控制檔案中的資料檔案,然後根據overwrite選項,若指定overwrite,其他檔案(這些檔案不在控制檔案中,所以未刪除)均採用刪除重建的處理,避免存在非法的檔案,否則如果這些檔案已經存在,則報錯;
4>若指定REUSE DMINI,則會將備份集中備份的dm.ini中除路徑相關的INI引數外,均複製到當前dm.ini上。
type2:
1>所有檔案均可不在,system_dbf所在路徑需為有效路徑,若不存在,restore過程中會自動建立;
2>所有前面提到到資料庫配置檔案均會在指定的system_dbf所在路徑還原,但非單機環境中相關其他檔案均不修改或者重建,如MPP中dmmpp.ini、dmmal.ini等;
3>若未指定OVERWRITE,若system_dbf所在路徑中存在待還原的庫配置檔案,則報錯;若指定,則將已經存在的檔案刪除重建;
4>由於RAC環境中dm.ini可能存在多個,且可能不在一個主庫上,或者即使在一個主庫上也可能不在system_dbf所在路徑中,故暫時不支援RAC環境的指定目錄還原。
聯機日誌
上述和中的還原後的聯機日誌檔案至少會有兩個,因為源庫中的日誌檔案可能大於等於兩個,如果小於兩個(被誤刪的情況)的則補齊為兩個。已經存在的聯機日誌配置,使用原路徑,若檔案大小非法,則使用預設大小256M重建;缺少的使用預設命名和預設大小256M重建。聯機日誌檔案的命名規則:
1>單機:db_name+(file_id+1).log,其中fil_id + 1,佔2個位置,如:db_name=DAMENG,則相應的名稱為DAMENG01.log,DAMENG02.log;
2>RAC: rac+(ep_no + 1)_+(file_id+1).log,其中ep_no + 1和file_id+1均佔2個位置,如0號節點日誌名稱為rac01_01.log,rac01_02.log。
使用說明:
透過RESTORE命令還原後的資料庫不可用,需進一步執行RECOVER命令,將資料庫恢復到備份結束時的狀態。資料庫備份集分為聯機和離線兩種型別。通常情況下,使用者會在聯機的情況下備份資料庫,因此下面以聯機資料庫備份為例說明使用DMRMAN如何執行資料庫還原操作。
1) 聯機備份資料庫,保證資料庫執行在歸檔模式及OPEN狀態。
SQL> backup database '/dm7/data/rac0_config/dm.ini' full to db_rac_full_bak_for_restore backupset '/dm7/backup/db_rac_full_bak_for_restore'; executed successfully used time: 00:00:01.233. Execute id is 4.
2) 準備目標庫。還原目標庫可以是已經存在的資料庫,也可使用dminit工具初始化一個新庫。如下所示:
./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE
如果還原目標庫與故障庫是同一個,建議先執行故障庫的歸檔修復操作。
3) 校驗備份,校驗待還原備份集的合法性。校驗備份有兩種方式,聯機和離線,此處使用離線校驗。
RMAN> check backupset '/dm7/backup/db_rac_full_bak_for_restore'; check backupset '/dm7/backup/db_rac_full_bak_for_restore'; CMD END.CODE:[0] check backupset successfully. time used: 12.182(ms) 也可以 SQL> select sf_bakset_check('disk','/dm7/backup/db_rac_full_bak_for_restore'); LINEID SF_BAKSET_CHECK('disk','/dm7/backup/db_rac_full_bak_for_restore') ---------- ----------------------------------------------------------------- 1 1 used time: 14.626(ms). Execute id is 6.
4) 還原資料庫。啟動DMRMAN,輸入以下命令:
RMAN> restore database '/dm7/data/rac0_config/dm.ini' from backupset '/dm7/backup/db_rac_full_bak_for_restore'; restore database '/dm7/data/rac0_config/dm.ini' from backupset '/dm7/backup/db_rac_full_bak_for_restore'; 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
需要停止例項
[dmdba@dmrac1 bin]$ dmrman dcr_ini=/dm7/data/dmdcr.ini dmrman V7.1.6.46-Build(2018.02.08-89107)ENT RMAN> restore database '/dm7/data/rac0_config/dm.ini' from backupset '/dm7/backup/db_rac_full_bak_for_restore'; restore database '/dm7/data/rac0_config/dm.ini' from backupset '/dm7/backup/db_rac_full_bak_for_restore'; 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.... EP [1] is checking.... RESTORE DATABASE CHECK...... RESTORE DATABASE , dbf collect...... RESTORE DATABASE , dbf refresh ...... RESTORE BACKUPSET [/dm7/backup/db_rac_full_bak_for_restore] START...... total 5 packages processed... RESTORE DATABASE , UPDATE ctl file...... RESTORE DATABASE , REBUILD key file...... RESTORE DATABASE , CHECK db info...... RESTORE DATABASE , UPDATE db info...... total 9 packages processed! CMD END.CODE:[0] restore successfully. time used: 12542.797(ms)
2. 資料庫恢復
RMAN> recover database '/dm7/data/rac0_config/dm.ini'; recover 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: 72473 EP[0] adjust cur_lsn from [72473] to [73980] EP 0's ckpt_lsn = 72474 min_ckpt_lsn = 72474 The RAC redo archive log 1 ptx The RAC redo archive log 2 ptx The RAC redo archive log 3 ptx The RAC redo archive log 4 ptx The RAC redo archive log 5 ptx The RAC redo archive log 6 ptx The RAC redo archive log 7 ptx The RAC redo archive log 8 ptx The RAC redo archive log 9 ptx The RAC redo archive log 10 ptx The RAC redo archive log 11 ptx The RAC redo archive log 12 ptx The RAC recover total redo 12 ptx EP(0) slot ctl page(1, 0, 16) trxid = 9882 EP(1) slot ctl page(1, 0, 17) trxid = 8457 EP[0] Recover LSN from 72474 to 73970. EP[1] Recover LSN from 73981 to 73980. Recover from archive log finished, time used:0.029s. recover successfully! time used: 3246.961(ms)
啟動例項
[root@dmrac1 backup]# service DmServicerac1 start Starting DmServicerac1: [ OK ] [root@dmrac2 init.d]# service DmServicerac2 start Starting DmServicerac2: [ OK ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2726768/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7使用DMRMAN執行RAC資料庫恢復資料庫
- DM7使用DMRMAN執行歸檔還原
- DM7使用DMRMAN對資料庫執行指定對映檔案還原資料庫
- DM7使用DMRMAN執行表空間還原
- DM7使用DMRMAN恢復資料庫到指定時間點/LSN資料庫
- DM7使用DMRMAN執行歸檔修復
- DM7使用離線工具DMRMAN執行資料庫備份資料庫
- DM7使用dmrestore工具還原資料庫REST資料庫
- DM7使用DMRMAN執行歸檔備份
- DM7使用Disql執行表還原SQL
- DM7使用DMRAMN執行歸檔恢復
- DM7使用DMRAMN執行備份集恢復
- DM7使用DMRAMN對多次故障恢復後使用不同資料庫的歸檔進行恢復資料庫
- SQLSERVER完整資料庫還原(完整恢復模式)SQLServer資料庫模式
- DM7 RAC資料庫恢復成單機資料庫資料庫
- DM7使用Disql執行表空間還原SQL
- DM7使用DMRAMN執行更新DB_MAGIC恢復
- DM7使用dmrestore工具利用不同資料庫的歸檔恢復資料庫REST資料庫
- (Les16 執行資料庫恢復)-表空間恢復資料庫
- DM7使用dmrestore執行並行對映檔案還原REST並行
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- DM7使用Disql執行表還原的複雜用法SQL
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- DM7使用dmrestore執行指定時間點或LSN還原REST
- DM7使用聯機執行SQL語句進行備份還原SQL
- DM7使用DMRMAN工具執行備份集對映檔案匯出
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- DM7使用DMRMAN工具執行加密備份與設定跟蹤日誌加密
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 北亞資料恢復-WINDOWS還原系統後原分割槽丟失的資料恢復方案資料恢復Windows
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 將 SQL Server 資料庫還原到某個時點(完整恢復模式)SQLServer資料庫模式
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 資料庫修復資料恢復資料庫資料恢復
- 3.5 掛起和恢復資料庫資料庫
- Oracle資料庫冷備和恢復Oracle資料庫
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle