Rman備份及異機恢復步驟

2021-10-09 04:10:16 字數 3060 閱讀 2925

一、rman備份指令碼

run {

allocate channel c1 device type disk ;

configure retention policy to redundancy 3 ;  

configure archivelog backup copies for device type disk to 3;

configure controlfile autobackup on;

delete noprompt obsolete ;

backup database format 'g:\backup\db_%t_%u'

plus archivelog format 'g:\backup\arch_%t_%u' ;

crosscheck backup ;

delete noprompt obsolete ;

delete noprompt expired backup;

crosscheck archivelog all;

delete expired archivelog all;

delete archivelog all completed before 'sysdate-7';

host 'copy /y d:\oracle\product\10.2.0\oradata\orcl\control*.ctl g:\backup';

host 'copy /y d:\oracle\product\10.2.0\db_1\database\pwdorcl.ora g:\backup';

release channel c1;

其中crosscheck archivelog all;可以用change  archivelog all crosscheck; 代替,區別見文件最後說明。

二、rman備份恢復步驟

1、備份現有spfile ,避免新的配置檔案無法啟動。

sqlplus / as sysdba;

sql> shutdown immediate

sql> startup nomount;

sql> create pfile='d:\inipfile.txt' from spfile='d:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora';

利用備份產生新的spfile檔案語法:sql >create spfile='d:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora' from pfile='d:\inipfile.txt';

2、d:> rman target /

3、rman>shutdown immedaite;

4、rman> startup nomount pfile='d:\inipfile.txt'

5、rman> set dbid 1286861270;

6、恢復控制檔案。 rman> restore controlfile from  'g:\backup\ctl_sp_c-1286861270-20200803-00';

7、恢復spfile。 rman>restore spfile to  'd:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora' from  'g:\backup\ctl_sp_c-1286861270-20200803-00';

8、裝載資料庫. rman>alter database mount;

9、註冊備份目錄  rman>catalog start with 'g:\backup\';

10、恢復資料檔案 rman>restore database;

11、刪除過期備份,避免找不到原有檔案導致後續備份失敗;

rman>crosscheck backup;

rman>delete noprompt expired backup;

rman>change  archivelog all crosscheck;

rman>delete expired archivelog all;        

rman>exit

12、重新進入 d:>sqlplus  / as sysdba;

13、利用新的spfile啟動並設定相關引數

sql> shutdown immediate;

sql> startup mount;

sql> alter system set "_allow_resetlogs_corruption"=true scope=spfile; --關鍵語句,否則打不開資料庫

14、開啟資料庫

sql>shutdown immediate;

sql>startup mount;  -- 使新修改的引數起作用

sql> alter database open resetlogs;

15、重新關閉資料庫,然後開啟測試是否正常。

sql>shutdown immediate;

sql>startup;

16、檢視相關引數,並設定歸檔和歸檔目錄。引數在v$parameter動態引數檢視中

檢視結構 desc v$parameter;

sql> select log_mode from v$database;

sql> show parameter log_archive;

若未歸檔,設定 sql>alter database archivelog;

檢視歸檔sql>archive log list ;

設定歸檔路徑 sql>alter system set log_archive_dest_1='location=e:\archive' scope=spfile;

切換日誌,看歸檔結果sql>alter system switch logfile;

若沒有改變,重啟資料庫使spfile發揮作用後再試。

17、退出sqlplus,恢復完成。

rosscheck archivelog all;  -- 檢查歸檔日誌是否過期,過期後標示expired 狀態,手工刪除日誌不滿足過期則不處理

change  archivelog all crosscheck; -- 檢查歸檔日誌是否過期,同時對手工刪除的日誌標示過期狀態

RMAN備份及恢復

rman備份 1 spfile和controlfile的自動備份 當configure controlfile autobackup off時,僅當備份system01.dbf時才會自動備份controlfile和spfile 當configure controlfile autobackup on...

RMAN異機恢復快速參考

應用場景 伺服器a為正常執行的生產環境,需要在伺服器b上部署一套相同環境做測試。一 伺服器a備份資料庫 1.2 備份指令碼內容 二 伺服器b恢復資料庫 2.1 伺服器b安裝資料庫軟體 2.2 啟動例項到nomount狀態 指定pfile檔案 2.3 rman恢復控制檔案,確定備份集有效性 2.4 r...

RMAN異機恢復主要步驟和注意事項

以後改行了或老了回頭看看,我曾經會這些,也是件愉快的事 授權 oracle test20 backup chmod x backup.sh 備份 oracle test20 backup backup.sh 傳輸 設定引數檔案和sid echo db name payme oracle home d...