DM7使用DMRMAN執行表空間還原

eric0435發表於2021-02-08

使用DMRMAN執行表空間還原
介紹表空間的離線還原。表空間的離線還原除了支援聯機還原的所有功能外,也放開了SYSTEM和ROLL表空間還原操作。與聯機表空間還原不同的是,離線表空間還原不需要事先置目標表空間為OFFLINE狀態。語法如下:

RESTORE DATABASE '' TABLESPACE < 表空間名>
[DATAFILE< <檔案編號> {,< 檔案編號>} | '< 檔案路徑>' {,'< 檔案路徑>'}>]
FROM BACKUPSET '< 備份集目錄>'
[DEVICE TYPE DISK|TAPE[PARMS '< 介質引數>']]
[IDENTIFIED BY < 密碼> [ENCRYPT WITH < 加密演算法>]]
[WITH BACKUPDIR '< 基備份集搜尋目錄>'{,'< 基備份集搜尋目錄>'}]
[]
[MAPPED FILE '< 對映檔案>'][TASK THREAD < 任務執行緒數>] [NOT PARALLEL]
[UNTIL TIME '< 時間串>'] [UNTIL LSN ];
 ::=
WITH ARCHIVEDIR '< 歸檔日誌目錄>'{,'< 歸檔日誌目錄>'}

DATABASE:指定還原庫目標的dm.ini檔案路徑。
TABLESPACE:指定還原的表空間,可以是使用者表空間,也可以是SYSTEM系統表空間和ROLL回滾表空間。
DATAFILE:還原指定的資料檔案。可以指定資料檔案編號或資料檔案路徑。檔案編號,對應動態檢視V$DATAFILE中ID列的值;檔案路徑,對應動態檢視V$DATAFILE中PATH或者MIRROR_PATH列的值,也可以僅指定資料檔名稱(相對路徑),與表空間中資料檔案匹配時,會使用SYSTEM目錄補齊。
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:指定並行備份集使用非並行方式還原。對於非並行備份集,不論是否指定該關鍵字,均採用非並行還原。
WITH ARCHIVEDIR:本地歸檔日誌搜尋目錄,若未指定,則僅使用目標庫配置的第一個本地歸檔。
UNTIL TIME:恢復資料庫到指定的時間點。
UNTIL LSN:恢復資料庫到指定的LSN。

使用說明:
1. 表空間還原不能是TEMP表空間,指定檔案還原也不能為TEMP表空間中檔案。
2. 表空間還原要求還原目標庫與備份庫為同一個庫,且若還原目標庫中SYSTEM表空間沒有故障且還原目標表空間不是SYSTEM表空間的話,則要求目標庫校驗透過,比如加密校驗和日誌校驗等;否則將使用備份集中資訊與當前的進行校驗。
3. 還原目標庫不能為已經執行過restore,但是未指定過recover的庫。
4. SYSTEM表空間和ROLL表空間不允許指定UNTIL LSN或者UNTIL TIME還原;其他使用者表空間可以。若未指定UNTIL TIME或者UNTIL LSN,則均還原到最新狀態。使用UNTIL TIME(或者UNTIL LSN)的同時不能指定DATAFILE還原,否則報語法錯誤。
5. 處於RES_OFFLINE或CORRUPT狀態的表空間不允許指定表空間中資料檔案還原。
6. 整個還原過程中不會修改資料庫本身狀態或者調整CKPT_LSN。
7. 不管是RAC環境,還是單機環境,若異常退出,需手動指定各節點歸檔修復後,使用各節點完整的歸檔日誌執行還原恢復;否則,將可能無法恢復到最新。
8. 異常退出庫指定UNTIL TIME或者UNTIL LSN還原失效,因為庫故障重啟時會執行故障修復,UNTIL失效,表空間仍會恢復到最新狀態。
9. 若目標庫中SYSTEM表空間故障,則必須優先還原SYSTEM表空間。在DMRAC環境中進行表空間還原,需要先確保所有節點例項都已退出,此時在任一節點上使用該節點的備份集均可進行表空間還原操作,且只要在一個節點上執行目標表空間還原即可。對於兩節點RAC01、RAC02,表空間的還原操作如下:

RMAN>backup database '/home/DMDBMS/rac/dm01.ini' backupset '/home/DMDBMS/bak/rman_dm01_01';
RMAN>restore database'/home/DMDBMS/rac/dm01.ini' tablespace main from backupset '/home/DMDBMS/bak/rman_dm01_01'
 with archivedir'/home/DMDBMS/rac/arch_dest1';

10. 如果SYSTEM表空間處於ONLINE/OFFLINE狀態且檔案丟失,則必須要透過庫還原修復,不支援對其執行表空間還原。

下面的例子將對RAC環境中的TS_FOR_DBF表空間執行還原
1.對資料庫執行備份

SQL> backup database full backupset '/dm7/backup/db_bak_for_tbs';
executed successfully
used time: 00:00:01.217. Execute id is 11.

2.在DMRAC環境中進行表空間還原,需要先確保所有節點例項都已退出,此時在任一節點上使用該節點的備份集均可進行表空間還原操作,且只要在一個節點上執行目標表空間還原即可。對於兩節點RAC01、RAC02,表空間的還原操作如下:

[root@dmrac1 backup]# service DmServicerac1 stop
Stopping DmServicerac1: [ OK ]
[root@dmrac2 rac1_config]# service DmServicerac2 stop
Stopping DmServicerac2: [ OK ]
RMAN> restore database 'dm7/data/rac0_config/dm.ini' tablespace ts_for_dbf from backupset '/dm7/backup/db_bak_for_tbs' with archivedir '/dm7/data/rac0_arch','/dm7/data/rac1_arch' until;
restore database '/dm7/data/rac0_config/dm.ini' tablespace ts_for_dbf from backupset '/dm7/backup/db_bak_for_tbs' with archivedir '/dm7/data/rac0_arch' , '/dm7/data/rac1_arch' ;
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 TABLESPACE[ts_for_dbf] IN DB[/dm7/data/rac0_config/dm.ini] CHECK......
EP[0] max_lsn: 92312
RESTORE TABLESPACE[ts_for_dbf] IN DB[/dm7/data/rac0_config/dm.ini], dbf collect......
RESTORE TABLESPACE[ts_for_dbf] IN DB[/dm7/data/rac0_config/dm.ini], ts status and dbf refresh ......
RESTORE BACKUPSET [/dm7/backup/db_bak_for_tbs] START......
total 2 packages processed...
RESTORE TABLESPACE[ts_for_dbf] IN DB[/dm7/data/rac0_config/dm.ini], UPDATE ctl file......
EP 0's ckpt_lsn = 90803
min_ckpt_lsn = 90803
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 redo archive log 13 ptx
The RAC redo archive log 14 ptx
The RAC redo archive log 15 ptx
The RAC redo archive log 16 ptx
The RAC redo archive log 17 ptx
The RAC redo archive log 18 ptx
The RAC recover total redo 18 ptx
EP[0] Recover LSN from 90803 to 92307.
EP[1] Recover LSN from 92310 to 92309.
Recover from archive log finished, time used:0.004s.
total 6 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 4423.437(ms)

3.啟動RAC例項

[root@dmrac1 data]# service DmServicerac1 start
Starting DmServicerac1: [ OK ]
[root@dmrac2 rac1_config]# service DmServicerac2 start
Starting DmServicerac2: [ OK ]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2756713/,如需轉載,請註明出處,否則將追究法律責任。

相關文章