一、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...