【FLASHBACK】關於閃回資料庫的一點說明

xysoul_雲龍發表於2017-07-02

 今天看了點書,關於閃回資料庫的,也就是當使用者誤操作刪除了資料庫使用者時,我們恢復使用者資料的過程是什麼 

我們先簡單瞭解下flashback 能做什麼

1、可以閃回資料庫,就是把資料庫閃回到某個以前的時間點,前提閃回日誌最早記錄的SCN
2、閃回資料庫表,也就是使用者表誤drop後的恢復  flashbackup drop
3、閃回表記錄 使用者資料表記錄的恢復   flashback query
4、flashback table  閃回資料庫表


其實主要就是兩個功能,閃回資料庫(整庫的閃回操作)  閃回表


那麼我們怎樣使用資料庫的閃回功能來閃回誤刪除的使用者呢  大致步驟如下

1、確保資料庫已經開啟閃回特性,v$database 中flashbacck_on 可查詢。 更改命令alter database flashback on;  也請更改用於存放閃回日誌的相關引數(db_recovery_file_dest         /db_recovery_file_dest_size )

2、把資料庫啟動到mount狀態,將資料庫閃回至誤刪除操作的前一刻  閃回方法如下圖



注意 to /to before 兩種方式區別, to before 方式是指定時間戳的前一秒,也就是閃回到指定時間戳的前一秒的時間點

具體命令可參考:flashback database to timestamp to_timestamp('2017-07-02 09:53:50','yyyy-mm-dd hh24:mi:ss');

3、將資料庫以只讀模式開啟,--此處 俺認為是防止新資料寫入

4、使用exp或expdp方式匯出,exp方式沒問題,expdp方式需要藉助其他資料庫,具體可參考本博其他文章

5、將資料庫完全恢復,並以read write模式開啟資料庫

6、匯入被刪除的使用者

當然,並不是所有場景都適合閃回資料庫的特性 ,如

1、資料檔案物理損壞
2、資料檔案SHRINK
3、由於閃回日誌記錄在控制檔案中,因此使用備份的控制檔案或者重建控制檔案時,閃回資料庫特性失效
4、表空間刪除
5、需要注意,閃回資料庫最多閃回時間間隔多久的資料,取決去閃回日誌中最小SCN,如果想閃回比最小SCN還早的記錄,請藉助於其他備份

以下方式可以加快速度:

閃回資料庫前可以先把其他表空間OFFLINE, 只需要閃回SYSTE表空間、UNDO表空間和業務資料所在表空間即可 

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

相關文章