DM7使用DMRMAN執行歸檔還原

eric0435發表於2021-01-08

使用DMRMAN執行歸檔還原
使用RESTORE命令完成離線還原歸檔操作,在還原語句中指定歸檔備份集。備份集可以是離線歸檔備份集,也可以是聯機歸檔備份集。
語法如下:

RESTORE FROM BACKUPSET '< 備份集目錄>'
[DEVICE TYPE DISK|TAPE[PARMS '< 介質引數>']]
[IDENTIFIED BY < 密碼> [ENCRYPT WITH < 加密演算法>]]
[TASK THREAD < 任務執行緒數>] [NOT PARALLEL]
[ALL | [FROM LSN ] | [UNTIL LSN ] | [LSN BETWEEN < lsn值> AND < lsn值>] | [FROM TIME '時間串'] | [UNTIL TIME '時間串'] | [TIME BETWEEN '時間串' AND '時間串'] ]
TO < 還原目錄>
[OVERWRITE level];
< 還原目錄>::=
ARCHIVEDIR '< 歸檔目錄>' |
DATABASE ''

BACKUPSET:指定用於還原目標資料庫的備份集目錄。若指定為相對路徑,會在預設備份目錄下搜尋備份集。
DEVICE TYPE:指儲存備份集的介質型別,支援DISK和TAPE,預設為DISK。DISK表示備份集儲存介質為磁碟,TAPE表示儲存介質為磁帶。
PARMS:介質引數,供第三方儲存介質(TAPE型別)管理使用。
IDENTIFIED BY:指定備份時使用的加密密碼,供還原過程解密使用。
ENCRYPT WITH:指定備份時使用的加密演算法,供還原過程解密使用,若未指定,則使用預設演算法。
TASK THREAD:指定還原過程中用於處理解壓縮和解密任務的執行緒個數。若未指定,則預設為4;若指定為0,調整為1;若指定超過當前系統主機核數,則調整為當前核數。
NOT PARALLEL:指定並行備份集使用非並行方式還原。對於非並行備份集,不論是否指定該關鍵字,均採用非並行還原。
ALL:備份所有的歸檔。
FROM LSN, FROM TIME:指定備份的開始LSN或者開始的時間點。
UNTIL LSN, UNTIL TIME:指定備份的截止LSN或者截止的時間點。
BETWEEN ... AND ...:指定備份的區間,僅僅指備份區間內的歸檔檔案。
< 還原目錄>:使用者可以指定還原到指定的目錄ARCHIVEDIR,也可以指定還原指定的庫的目錄DATABASE。
OVERWRITE:還原歸檔時,如果遇到歸檔已經存在的處理,1:跳過已存在的歸檔日誌,繼續其他日誌的還原。跳過的資訊會生成一條日誌記錄在安裝目錄/log/dm_BAKRES_年月.log裡;2:直接報錯返回;3:強制覆蓋存在的歸檔日誌。預設為1。

使用說明:
1) 聯機備份歸檔,保證資料庫執行在歸檔模式及OPEN狀態。

SQL> backup archivelog all backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
executed successfully
used time: 00:00:44.498. Execute id is 208.

2) 校驗備份,校驗待還原備份集的合法性。校驗備份有兩種方式,聯機和離線,此處使用離線校驗。

RMAN> check backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
check backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore';
CMD END.CODE:[0]
check backupset successfully.
time used: 18.193(ms)

3) 還原歸檔。啟動DMRMAN,設定OVERWRITE為2,如果歸檔檔案已存在,會報錯。

RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
file dm.key not found, use default license!
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[4].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[3].
the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running.
[-102]:DM server is already running
[root@shard1 jydm]# service DmServicejydm stop
Redirecting to /bin/systemctl stop  DmServicejydm.service
RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to database '/dm_home/dmdba/dmdbms/data/jydm/dm.ini' overwrite 2;
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[4].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[3].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[2].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[1].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running...[0].
checking if the database under system path [/dm_home/dmdba/dmdbms/data/jydm] is running, write dmrman info.
RESTORE ARCHIVE CHECK......
RESTORE ARCHIVE, dbf collect......
RESTORE ARCHIVE, dbf refresh ......
CMD END.CODE:[-8354],DESC:[for the archive file conflicted, restore failed]
[-8354]:for the archive file conflicted, restore failed

或者
RMAN> restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to archivedir '/dm_home/dmdba/dmdbms/data/jydm/bak/arch' overwrite 2;
restore archivelog from backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore' to archivedir '/dm_home/dmdba/dmdbms/data/jydm/bak/arch' overwrite 2;
RESTORE ARCHIVE CHECK......
RESTORE ARCHIVE, dbf collect......
RESTORE ARCHIVE, dbf refresh ......
RESTORE BACKUPSET [/dm_home/dmdba/dmdbms/data/jydm/bak/arch_all_for_restore] START......
total 30 packages processed...
total 67 packages processed...
total 68 packages processed!
CMD END.CODE:[0]

restore successfully.
time used: 28142.800(ms)


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

相關文章