我們今天主要和大家分享的是Oracle數據庫中的閃回恢復,其中包含Oracle備份和恢復案例 ,還有相關的Oracle 學習筆記:,Backup & Recovery 常用的相關命令 ,以及 重建Control File的實際內容的描述。
更多相關推薦 Oracle9i開始提供閃回查詢,以便能在需要的時候查到過去某個時刻的一致性數據,這是通過Undo實現的。這個功能有很大的限制,就是相關事務的undo不能被覆蓋,否則就無力回天了。Oracle10g大大的增強了閃回查詢的功能,並且提供了將整個數據庫回退到過去某個時刻的能力,這是通過引入一種新的Flashback log實現的。
flashback log有點類似redo log,只不過redo log將數據庫往前滾,Flashback log則將Oracle數據庫往後滾。為了保存管理和備份恢復相關的文件,Oracle10g提供了一個叫做閃回恢復區(Flashback recovery area)的新特性,可以將所有恢復相關的文件,比如Flashback log,archive log,backup set等,放到這個區域集中管理。
1.設置閃回恢復區
閃回恢復區主要通過3個初始化參數來設置和管理
db_recovery_file_dest:指定閃回恢復區的位置
db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
db_Flashback_retention_target:指定Oracle數據庫可以回退的時間,單位為分鐘,默認1440分鐘,也就是一天。當然,實際上可回退的時間還決定於閃回恢復區的大小,因為裡面保存了回退所需要的 Flash log。所以這個參數要和db_recovery_file_dest_size配合修改。
2.啟動Flashback database
設置了閃回恢復區後,可以啟動閃回數據庫功能。
首先,數據庫必須已經處於歸檔模式
那麼如何設置歸檔呢?很簡單的步驟
1.關閉數據庫
- SQL> shutdown immediate;
2.啟動Oracle數據庫為mount模式
- SQL> startup mount
3.顯示和修改歸檔模式
- SQL> archive log list
- SQL> alter database archivelog;
- SQL> alter database open
4.設置歸檔日志的格式
- SQL>alter system set log_archive_format='ARC%s%t%r.log' scope=spfile;
5.設置歸檔日志的存放路徑
- SQL>alter system set log_archive_dest='+data/arcl' scope=spfile;
- SQL>shutdown immediate
- SQL>startup
6.強制切換歸檔日至
- SQL>alter system switch logfile;
7.取消歸檔
- SQL>alter database noarchivelog;
參數
1.格式參數
%s 日志序列號
%S 日志序列號(帶前導的0)
%t 重做線程編號
%a 活動的ID號
%dOracle 數據庫ID號
%r RESELOGS的iD值
- SQL> archive log list;
- Database log mode Archive Mode
- Automatic archival Enabled
- Archive destination USE_DB_RECOVERY_FILE_DEST
- Oldest online log sequence 156
- Next log sequence to archive 158
- Current log sequence 158
然後,啟動Oracle數據庫到mount狀態
- SQL> shutdown immediate;
- Database closed.
- Database dismounted.
- Oracle instance shut down.
- SQL> startup mount
- Oracle instance started.
- Total System Global Area 285212672 bytes
- Fixed Size 1218992 bytes
- Variable Size 75499088 bytes
- Database Buffers 205520896 bytes
- Redo Buffers 2973696 bytes
- Database mounted.
- SQL>alter database Flashback on;