RMAN恢復案例——丟失spfile的恢復
2024-07-21 02:07:03
供稿:網友
1.1. 丟失spfile的恢復
大前提:已經配置了數據庫控制文件的自動備份,并且已經有可靠的備份:
rman> configure controlfile autobackup on;
新的 rman 配置參數:
configure controlfile autobackup on;
已成功存儲新的 rman 配置參數
正在啟動全部恢復目錄的 resync
完成全部 resync
rman>
rman> configure controlfile autobackup format for device type disk to 'd:/rmantest/%f';
新的 rman 配置參數:
configure controlfile autobackup format for device type disk to 'd:/rmantest/%f';
已成功存儲新的 rman 配置參數
正在啟動全部恢復目錄的 resync
完成全部 resync
rman>
rman> show all;
rman 配置參數為:
configure retention policy to redundancy 1; # default
configure backup optimization off; # default
configure default device type to disk;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'd:/rmantest/%f';
configure device type disk parallelism 1;
configure datafile backup copies for device type disk to 1; # default
configure archivelog backup copies for device type disk to 1; # default
configure maxsetsize to unlimited; # default
configure snapshot controlfile name to 'd:/oracle92/database ncftest1.ora'; # default
rman>
rman> run{
2> backup database
3> tag 'full_db_20041007'
4> format 'd:/rmantest/full_dbtest_yyyymmdd%_u%.bak'
5> include current controlfile;
6> backup archivelog all
7> tag 'arch_bak'
8> format 'd:/rmantest/arch_yyyymmdd%_u%.bak'
9> delete input;}
啟動 backup 于 07-10月-04
分配的通道: ora_disk_1
通道 ora_disk_1: sid=13 devtype=disk
通道 ora_disk_1: 正在啟動 full 數據文件備份集
通道 ora_disk_1: 正在指定備份集中的數據文件
備份集中包括當前控制文件
輸入數據文件 fno=00001 name=d:/oracle92/test1 ystem01.dbf
輸入數據文件 fno=00002 name=d:/oracle92/test1/undotbs01.dbf
輸入數據文件 fno=00006 name=d:/oracle92/test1/rman01.dbf
輸入數據文件 fno=00003 name=d:/oracle92/test1/indx01.dbf
輸入數據文件 fno=00005 name=d:/oracle92/test1/users01.dbf
輸入數據文件 fno=00004 name=d:/oracle92/test1/tools01.dbf
通道 ora_disk_1: 正在啟動段 1 于 07-10月-04
通道 ora_disk_1: 已完成段 1 于 07-10月-04
段 handle=d:/rmantest/full_dbtest_yyyymmdd%_u%.bak comment=none
通道 ora_disk_1: 備份集已完成, 經過時間:00:01:06
完成 backup 于 07-10月-04
啟動 backup 于 07-10月-04
當前日志已存檔
使用通道 ora_disk_1
通道 ora_disk_1: 正在啟動存檔日志備份集
通道 ora_disk_1: 正在指定備份集中的存檔日志
輸入存檔日志線程 =1 序列 =15 記錄 id=20 時間戳=538928248
通道 ora_disk_1: 正在啟動段 1 于 07-10月-04
通道 ora_disk_1: 已完成段 1 于 07-10月-04
段 handle=d:/rmantest/arch_yyyymmdd%_u%.bak comment=none
通道 ora_disk_1: 備份集已完成, 經過時間:00:00:02
通道 ora_disk_1: 正在刪除存檔日志
存檔日志文件名 =d:/oracle92/admin/test1/arch/arc00015.001 記錄 id=20 時間戳 =538928248
完成 backup 于 07-10月-04
啟動 control file and spfile autobackup 于 07-10月-04
段 handle=d:/rmantest/c-910599446-20041007-00 comment=none
完成 control file and spfile autobackup 于 07-10月-04
rman>
1.1.1. 將當前spfile挪到其他位置來模擬spfile丟失
rman> host;
microsoft windows xp [版本 5.1.2600]
(c) 版權所有 1985-2001 microsoft corp.
c:/>move d:/oracle92/database pfiletest1.ora d:/oracle92/database/bak pfiletest1.ora
c:/>dir d:/oracle92/database pfiletest1.ora
驅動器 d 中的卷沒有標簽。
卷的序列號是 644d-03d9
d:/oracle92/database 的目錄
找不到文件
c:/>dir d:/oracle92/database/bak pfiletest1.ora
驅動器 d 中的卷沒有標簽。
卷的序列號是 644d-03d9
d:/oracle92/database/bak 的目錄
2004-10-04 14:06 2,560 spfiletest1.ora
1 個文件 2,560 字節
0 個目錄 10,708,807,680 可用字節
c:/>exit
主機命令完成
rman>
1.1.2. 設置oracle_sid
c:/>set oracle_sid=test1
c:/>echo oracle_sid
oracle_sid
c:/>
1.1.3. 登陸rman
c:/>rman
恢復管理器: 版本9.2.0.1.0 - production
copyright (c) 1995, 2002, oracle corporation. all rights reserved.
rman> connect target lunar/[email protected]
已連接到目標數據庫 (未啟動)
rman> connect catalog rman/[email protected]
連接到恢復目錄數據庫
rman>
1.1.4. 在rman中設置dbid
使rman知道需要查找哪一個數據庫的spfile
(必須在數據關閉的情況下設置dbid)
rman> set dbid=910599446
正在執行命令: set dbid
rman>
1.1.5. 將數據庫啟動到nomount狀態
rman> startup nomount;
啟動失敗: ora-01078: failure in processing system parameters
lrm-00109: n^7(4r?*2nj}nd<~ 'd:/oracle92/database/inittest1.ora'
正在嘗試在沒有參數文件的情況下啟動 oracle 例程...
oracle 例程已啟動
系統全局區域總計 97589952 字節
fixed size 453312 字節
variable size 46137344 字節
database buffers 50331648 字節
redo buffers 667648 字節
rman>
1.1.6. 從自動備份中還原參數文件
rman> show all;
rman 配置參數為:
configure retention policy to redundancy 1; # default
configure backup optimization off; # default
configure default device type to disk;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'd:/rmantest/%f';
configure device type disk parallelism 1;
configure datafile backup copies for device type disk to 1; # default
configure archivelog backup copies for device type disk to 1; # default
configure maxsetsize to unlimited; # default
rman> restore spfile from autobackup;
啟動 restore 于 07-10月-04
分配的通道: ora_disk_1
通道 ora_disk_1: sid=9 devtype=disk
通道 ora_disk_1: 尋找以下日期的自動備份: 20041007
通道 ora_disk_1: 已找到的自動備份: d:/rmantest/c-910599446-20041007-00
通道 ora_disk_1: 從自動備份復原 spfile 已完成
完成 restore 于 07-10月-04
rman> host;
恢復管理器完成。
c:/>dir d:/oracle92/database pfiletest1.ora
驅動器 d 中的卷沒有標簽。
卷的序列號是 644d-03d9
d:/oracle92/database 的目錄
2004-10-07 14:31 2,560 spfiletest1.ora
1 個文件 2,560 字節
0 個目錄 10,528,374,784 可用字節
c:/> exit
恢復管理器: 版本9.2.0.1.0 - production
copyright (c) 1995, 2002, oracle corporation. all rights reserved.
連接到目標數據庫: test1(未安裝)
連接到恢復目錄數據庫
rman>
1.1.7. 用shutdown immediate關閉數據庫
rman> shutdown immediate;
oracle 例程已關閉
rman>
1.1.8. 重新啟動數據庫
rman> set dbid=910599446
正在執行命令: set dbid
rman> startup
已連接到目標數據庫 (未啟動)
oracle 例程已啟動
數據庫已加載
數據庫已打開
系統全局區域總計 101784276 字節
fixed size 453332 字節
variable size 75497472 字節
database buffers 25165824 字節
redo buffers 667648 字節
rman>