Instance啟動時:
1. 若一般資料庫datafile遺失,datafile headers毀損,startup只能啟動到mount
Instance執行中時:
1. 若一般資料庫datafile headers毀損時發生checkpoint,則該毀損的datafile會被標示為offline,但Instance不會有問題,而且重啟Instance時也不會有問題,但有問題的datafile依然是offline。
2. 若一般資料庫壞的不是datafile headers而是其他地方或是整個data毀損或被刪除,該datafile並不會被標示為offline,但重啟Instance時只能啟動到mount,不過還是可以透過alter database datafile <壞掉的檔案> offline;,再將Instance Open。
P.S.:此篇復原前提為參數檔(init),控制檔(controlfile),archivelog,redo log,關鍵資料庫(SYSTEM及UNDO)皆正常的情形下。
復原流程及完整指令:(以下範例為假設datafile 6毀損)
> 非datafile headers毀損,且資料庫為關閉的狀態
1. 將資料庫啟動到Mount
startup mount;
2. 將有問題的datafile offline
alter database datafile 6 offline;
3. 開啟資料庫
alter database open;
4. 使用RMAN執行restore或是switch命令還原有問題的datafile
restore datafile 6;
5. 使用RMAN執行recover,透過archivelog及redolog復原datafile
recover datafile 6;
6. 將有問題的datafile online
alter database datafile 6 online;
指令
1. 在RMAN
RUN{
startup mount;
sql 'alter database datafile 6 offline';
alter database open;
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
> 非datafile headers毀損,且資料庫為開啟的狀態
1. 將有問題的datafile offline
alter database datafile 6 offline;
2. 使用RMAN執行restore或是switch命令還原有問題的datafile
restore datafile 6;
3. 使用RMAN執行recover database,透過archivelog及redolog復原datafile
recover datafile 6;
4. 將有問題的datafile online
alter database datafile 6 online;
指令:
1. 在RMAN
RUN{
sql 'alter database datafile 6 offline';
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
>datafile headers毀損,且資料庫為開啟的狀態
1. 透過系統指令將毀損的datafile從作業系統刪除
rm /oradata/test.dbf
2. 將有問題的datafile offline
alter database datafile 6 offline;
3. 使用RMAN執行restore或是switch命令還原有問題的datafile
restore datafile 6;
4. 使用RMAN執行recover database,透過archivelog及redolog復原datafile
recover datafile 6;
5. 將有問題的datafile online
alter database datafile 6 online;
指令:
1. 在作業系統
rm /oradata/test.dbf
2. 在RMAN
RUN{
sql 'alter database datafile 6 offline';
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
>datafile headers毀損,且資料庫為關閉的狀態
1. 透過系統指令將毀損的datafile從作業系統刪除
rm /oradata/test.dbf
2. 將資料庫啟動到Mount
startup mount;
3. 將有問題的datafile offline
alter database datafile 6 offline;
4. 開啟資料庫
alter database open;
5. 使用RMAN執行restore或是switch命令還原有問題的datafile
restore datafile 6;
6. 使用RMAN執行recover database,透過archivelog及redolog復原datafile
recover datafile 6;
7. 將有問題的datafile online
alter database datafile 6 online;
指令:
1. 在作業系統
rm /oradata/test.dbf
2. 在RMAN
startup mount;
sql 'alter database datafile 6 offline';
alter database open;
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
沒有留言:
張貼留言