【備份與恢復】使用Flashback Database(不完全恢復)
使用SQL*Plus進行閃回:
SQL*Plus閃回語法可以接受一個時間標記或一個系統改變號實參,與RMAN不同的是,這種語法不接受日期或日誌切換序列號實參。
如果不能確定需要返回的時間點,那麼就可能透過組合閃回與恢復進行多次嘗試。以下面給出的場景為例。
在2004年12月20日的10:00左右,某位初級的DBA誤以為自己登入了測試資料庫,因而在其實際登入的產品資料庫上刪除了一個重要的模式。我們會在十分鐘之內注意到這個錯誤,不過呼叫中心使用這個大型且繁忙的資料庫來接手指令和計算每秒鐘的處理數。在這種情況下,第一個步驟應當是關閉資料庫:
SQL> shutdown abort;
這裡不需要使用其他型別的關閉,其原因在於所有正在進行中的工作都將丟失,並且需要最小化停機時間。隨後,將資料庫返回至10:00:
SQL> startup mount;
SQL> flashback database to timestamp to _timestamp('20-12-04 10:00:00','dd-mm-yy hh24:mi:ss');
SQL> alter database open read only;
須要注意的是,上面的命令對用於時間標記格式的NLS設定十分敏感,這與RECOVER DATABASE UNTIL TIME命令不同。因為資料庫位於只讀模式中,所以我們能夠執行一個針對被刪除模式的查詢。如果發現仍然存在這個模式,那麼可能需要再恢復一些使用者資料。
SQL> shutdown abort;
SQL> startup mount;
SQL> recover database until time '2004-12-20:10:02:00';
SQL> alter database open read only;
再次執行測試查詢,就會發現又經過兩分鐘的恢復後指定的模式消失:這個模式肯定是在10:00到10:02之間被刪除的。因此,我們採用了折中的方法:
SQL> shutdown abort;
SQL> startup mount;
SQL> flashback database to timestamp to _timestamp('20-12-04 10:01:00','dd-mm-yy hh24:mi:ss');
SQL> alter database open read only;
如果指定模式已不存在,那麼可以再閃回幾秒鐘。如果指定模式仍然存在,那麼可以再執行幾秒鐘的恢復。透過在指定模式中執行查詢所進行的測試,我們就可以重複地執行閃回和恢復命令,直至查詢到所期望的時間點。到達滿足要求的某個時間點時,進行最終的關閉,然後再使用RESETLOGS命令建立一個能夠正常使用的已開啟的新資料庫場景:
SQL> shutdown abort;
SQL> startup mount;
SQL> alter database open resetlogs;
使用RMAN進行閃回:
在RMAN環境內,我們可以選擇將資料庫閃回之某個時間點、某個SCN或某個日誌切換序列號:
RMAN> flashback database to time = to_date('20-12-04 10:00:00','yy-mm-dd hh24:mi:ss');
RMAN> flashback database to scn=2728665;
RMAN> flashback database to sequence=2123 thread=1;
除了語法中的細微變化之外,RMAN閃回與SQL*Plus閃回是相同的,特別是能夠使用重複應用閃回和恢復的相同方法查詢到開啟資料庫的最最佳化時間點。
SQL*Plus閃回語法可以接受一個時間標記或一個系統改變號實參,與RMAN不同的是,這種語法不接受日期或日誌切換序列號實參。
如果不能確定需要返回的時間點,那麼就可能透過組合閃回與恢復進行多次嘗試。以下面給出的場景為例。
在2004年12月20日的10:00左右,某位初級的DBA誤以為自己登入了測試資料庫,因而在其實際登入的產品資料庫上刪除了一個重要的模式。我們會在十分鐘之內注意到這個錯誤,不過呼叫中心使用這個大型且繁忙的資料庫來接手指令和計算每秒鐘的處理數。在這種情況下,第一個步驟應當是關閉資料庫:
SQL> shutdown abort;
這裡不需要使用其他型別的關閉,其原因在於所有正在進行中的工作都將丟失,並且需要最小化停機時間。隨後,將資料庫返回至10:00:
SQL> startup mount;
SQL> flashback database to timestamp to _timestamp('20-12-04 10:00:00','dd-mm-yy hh24:mi:ss');
SQL> alter database open read only;
須要注意的是,上面的命令對用於時間標記格式的NLS設定十分敏感,這與RECOVER DATABASE UNTIL TIME命令不同。因為資料庫位於只讀模式中,所以我們能夠執行一個針對被刪除模式的查詢。如果發現仍然存在這個模式,那麼可能需要再恢復一些使用者資料。
SQL> shutdown abort;
SQL> startup mount;
SQL> recover database until time '2004-12-20:10:02:00';
SQL> alter database open read only;
再次執行測試查詢,就會發現又經過兩分鐘的恢復後指定的模式消失:這個模式肯定是在10:00到10:02之間被刪除的。因此,我們採用了折中的方法:
SQL> shutdown abort;
SQL> startup mount;
SQL> flashback database to timestamp to _timestamp('20-12-04 10:01:00','dd-mm-yy hh24:mi:ss');
SQL> alter database open read only;
如果指定模式已不存在,那麼可以再閃回幾秒鐘。如果指定模式仍然存在,那麼可以再執行幾秒鐘的恢復。透過在指定模式中執行查詢所進行的測試,我們就可以重複地執行閃回和恢復命令,直至查詢到所期望的時間點。到達滿足要求的某個時間點時,進行最終的關閉,然後再使用RESETLOGS命令建立一個能夠正常使用的已開啟的新資料庫場景:
SQL> shutdown abort;
SQL> startup mount;
SQL> alter database open resetlogs;
使用RMAN進行閃回:
在RMAN環境內,我們可以選擇將資料庫閃回之某個時間點、某個SCN或某個日誌切換序列號:
RMAN> flashback database to time = to_date('20-12-04 10:00:00','yy-mm-dd hh24:mi:ss');
RMAN> flashback database to scn=2728665;
RMAN> flashback database to sequence=2123 thread=1;
除了語法中的細微變化之外,RMAN閃回與SQL*Plus閃回是相同的,特別是能夠使用重複應用閃回和恢復的相同方法查詢到開啟資料庫的最最佳化時間點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733755/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 備份恢復之 FlashbackOracle
- RAC備份恢復之Voting備份與恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- MySQL 非常規恢復與物理備份恢復MySql
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- MySQL 備份與恢復MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- Mysql備份與恢復(1)---物理備份MySql
- mydumper備份恢復
- Mysql備份恢復MySql
- 備份和恢復
- 備份與恢復oracle_homeOracle
- 《入門MySQL—備份與恢復》MySql
- DB2備份與恢復DB2
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- RMAN備份與恢復測試
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- 透過RMAN備份standby database成功恢復還原Database
- Mysql備份與恢復(2)---邏輯備份MySql
- 詳解叢集級備份恢復:物理細粒度備份恢復
- rman 增量備份恢復
- KunlunDB備份和恢復
- RMAN備份恢復技巧
- redis 備份和恢復Redis
- Grafana 備份恢復教程Grafana
- 【PG備份恢復】pg_basebackup 多表空間備份恢復測試
- Oracle 12c 備份與恢復Oracle
- Mysql的幾種備份與恢復MySql
- Elasticsearch叢集的備份與恢復Elasticsearch
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(一)MySql