Oracle基於TSM恢復實驗(模擬spfile、controlfile、datafile丟失)

zhengbao_jun發表於2009-02-12
所有實驗都是在沒有catalog和沒有磁帶庫的情況下做的。
做的是filepool的儲存!
   
實驗一
步驟:
1.我在rman中沒有設定controlfile autobackup 時做了一次。
run
{
allocate channel t1 device type 'sbt' parms
'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
sql 'alter system switch logfile';
sql 'alter system switch logfile';
sql 'alter system switch logfile';
backup database ;
backup archivelog all delete input;
release channel t1;
}
2.並在資料庫中操作後shutdown,再刪除datafile,並把資料啟動到mount狀態
   run{
allocate channel t1 device type 'sbt' parms
'ENV=(TDPO_OPTFILE=C:\Program Files\Tivoli\TSM\AgentOBA\tdpo.opt)';
restore database;
recover database;
release channel t1;
}
這樣完全恢復成功,資料也在我操作後的。

實驗二
步驟:
1.基於TSM做了一次rman的full backup(注:沒開自動backup控制檔案,db_name=orcl)
2.我在表中做了些控制後,並修改controlfile autobackup 為ON)
3.接著做了個基於TSM的做了個rman的零級備份
4.下面我就模擬故障把所有檔案刪除了(除pfile和spfile沒有刪除)
現在我把資料庫啟到nomount狀態
執行
run{
allocate channel t1 device type 'sbt' parms
'ENV=(TDPO_OPTFILE=C:\Program Files\Tivoli\TSM\AgentOBA\tdpo.opt)';
restore  controlfile from autobackup;
release channel t1;
}
RMAN-06172: 沒有找到自動備份或指定的控制程式碼不是有效副本或片段
好像在恢復controlfile前要做
set DBID=*********  (可在這樣的情況下怎麼查DBID 啊!? )


實驗三
步驟
1.在資料orcl所有檔案都刪除後,無法恢復的情況下。我切換到資料庫orcltest上.
2.設定orcltest資料為archivelog歸檔狀態
3.並在沒有catalog的情況下備份controlfile
c:\rman target/
rman>run{
allocate channel t1 device type 'sbt' parms
'ENV=(TDPO_OPTFILE=C:\Program Files\Tivoli\TSM\AgentOBA\tdpo.opt)';
backup current controlfile;
release channel t1;
}
4.再把資料shutdown immediate,並僅刪除3個controlfile。
rman>startup nomount
ramn>set dbid=2425530295
rman>run{
allocate channel t1 device type 'sbt' parms
'ENV=(TDPO_OPTFILE=C:\Program Files\Tivoli\TSM\AgentOBA\tdpo.opt)';
restore  controlfile from autobackup;
release channel t1;
}
RMAN-06172: 沒有找到自動備份或指定的控制程式碼不是有效副本或片段
分析:剛剛我在資料庫orcltest中通過rman備份了control,可為什麼就恢復不了控制檔案!?
TSM-Server端的伺服器連線、裝置類、儲存池、策略域、節點都是正確的,且空間也是夠了的。

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

相關文章