Flashback Database特性常見問題的問與答

junsansi發表於2009-12-17

問:是否有獨立的程式負責寫Flashback Logs(閃回日誌)呢?
答:當然有,RVWR(Recovery Writer)正是負責此項工作的程式,與Flashback Database特性相同,該程式也是自10g版本開始引入,主要負責將閃回資料從SGA的閃回緩衝區(Flashback Buffer)中寫到磁碟上。

問:啟用Flashback Database需要在什麼狀態下進行?
答:必須在資料庫被置為mount狀態時操作,也就是說如果想為當前正常操作的資料庫開啟Flashback Database特性,必須首先shutdown,然後啟動到mount狀態後,再通過alter database flashback on命令將其置於Flashback的保護之下。號稱Oracle11gR2版本時,alter database flashback on命令可以線上操作了,不過未及測試,有興趣有環境的朋友可以私下嘗試。

問:如果RVWR不能寫資料到磁碟,會千萬什麼影響?
答:簡單的講就倆字兒:報錯!

問:SGA中的閃回緩衝區大小是否能夠調整?
答:不能直接調整,Flashback Buffer被設定為LOG_BUFFER的2倍,因此如果希望增大閃回緩衝區的大小,可以通過加大LOG_BUFFER的方式間接實現。

問:能否使用RMAN備份Flashback Logs?
答:不可以的,Flashback Logs是由ORACLE自行維護,這部分資料也不需要備份。即使執行BACKUP RECOVERY AREA命令,也不會備份Flashback Logs,該項命令僅備份FRA中的下列部分:

  • 全備或者增量備份集;
  • 控制檔案自動備份;
  • 資料檔案複製;
  • 歸檔檔案;

問:Flashback Logs什麼情況下會被刪除?
答:正如前面所說,ORACLE自動維護Flashback Logs,因此一般情況下不需要DBA動手,ORACLE會在滿足DB_FLASHBACK_RETENTION_TARGET初始化引數設定值的基本上,自動對Flashback Logs檔案進行清理。

問:當Flashback Database到一個之前的時間點,不過還沒有執行RESETLOGS之前,是否還可以再次Flashback Database到其它時間點?
答:相當可以!在OPEN RESETLOGS之前,DBA可以無限次執行FLASHBACK DATABASE,只要恢復的時間點在可操作範圍內。

問:是否能夠檢視到FLASHBACK DATABASE操作的進展?
答:當執行FLASHBACK DATABASE操作時,可以通過查詢V$SESSION_LONGOPS檢視,來檢視對應會話所做的操作。FLASHBACK DATABASE操作分為兩個部分,一部分執行的是閃回操作,即恢復資料塊的前映像;另一部分執行的是介質恢復的操作,通過應用REDOLOGS,將資料庫修復到一致性狀態。

問:手動刪除過FRA中的檔案,導致與V$FLASH_RECOVERY_AREA_USAGE中不符,怎樣同步呢?
答:正如前文中所說,FRA中的檔案和空間是由ORACLE自行維護,手動刪除後出現的實際空間與資料字典中記錄空間不符實在太正常不過。這裡三思提兩個解決方案:
1、如果刪除的是歸檔、備份等檔案,可以通過在RMAN清除這部分無效的記錄,觸發同步資料字典的操作;
2、先關閉FLASHBACK DATABASE特性,然後再重新啟用該特性,觸發同步資料字典的操作。;

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

相關文章