您好,登錄后才能下訂單哦!
十六、歸檔模式下的完全恢復
在歸檔模式下,擁有RMAN的備份和歸檔重做日志以及當前的重做日志文件,可以做到數據庫的完全恢復,并且是聯機狀態的下的恢復。
1.非系統表空間損壞的恢復
做數據庫完全備份
RMAN> backup as compressed backupset database plus archivelog delete all input;
創建測試表
SQL> create table test123 tablespace users as select * from dba_segments;
刪除測試表的表空間數據文件
SQL> ! rm -rf /u01/app/oradata/orcl/users01.dbf
重啟數據庫
SQL> shutdown immediate
SQL> startup
為了先打開數據庫,先將該數據庫文件離線。
SQL> alter database datafile 4 offline;
SQL> alter database open; --這里也可以在mounted狀態進行恢復后再打開數據庫
還原數據文件
RMAN> restore datafile 4;
恢復數據文件
RMAN> recover datafile 4;
將數據庫文件online
SQL> alter database datafile 4 online;
也可以將以上命令放在rman腳本中。
run {
sql 'alter database datafile 4 offline';
restore tablespace users;
recover tablespace users;
sql 'alter database datafile 4 online';
}
2.系統表空間損壞的恢復
系統表空間損壞,必須先做恢復,數據庫才能打開。
刪除數據文件system01.dbf
[oracle@oracle11g ~]$ rm -rf /u01/app/oradata/orcl/system01.dbf
注意:此時可能會無法重新連接數據庫:
使用RMAN登錄也失敗,使用shutdown abort停止數據庫:
啟動數據庫到mount狀態
SQL> shutdown immediate
SQL> startup
使用RMAN腳本恢復數據文件。
RMAN> run {
sql 'alter database datafile 1 offline';
restore datafile 1;
recover datafile 1;
sql 'alter database datafile 1 online';
}
啟動數據庫
SQL> alter database open;
3.所有數據文件丟失的恢復
刪除所有數據文件。
[oracle@oracle11g orcl]$ rm -f /u01/app/oradata/orcl/*.dbf
使用RMAN腳本恢復數據文件。
SQL> shutdown abort
SQL> startup
RMAN> run {
restore database;
recover database;
sql 'alter database open';
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。