【備份恢復】閃回資料庫(四)基於可靠還原點閃回資料庫
基於可靠還原點閃回資料庫
還原點概念
Restore point 有兩種型別: Normal 和 Guaranteed。
1) Normal restore point
建立語法:create restore point rp_name;
相當於某個時間點或者 SCN 的一個別名。 restore
point 的名字和對應的 SCN 會儲存在控制檔案中。建立了 normal restore point 後,如果需要執行 flashback database/flashback
table/point-in-time recovery 等操作時,就可以制定目標時間點為該 restore point,而不需要指定當時的 SCN 了。在很多關於恢復和閃回的試驗中,作者都是在試驗前查詢系統當前的 SCN,執行某些操作,然後恢復或者閃回到之前查詢到的 SCN。有了 normal restore
point 後,就不再需要查詢系統當前 scn 了,只需要建立一個有意思的 normal restore point 名,以後使用該名字即可。
—————————————————————————————————————————————
注 1: Normal restore point 儲存在 undo 表空間中
2:必須擁有 SELECT ANY DICTIONARY 或 FLASHBACK ANY TABLE 許可權才可以建立 Normal 還原點
—————————————————————————————————————————————
2) Guaranteed restore point
建立語法:
create restore point rp_name guarantee flashback database;
Guaranteed restore point 的功能和 normal restore point 的功能基本一致,也是作為SCN 的一個別名。但是它還有一些和 flashback database 相關的特性。前面也提到,在執行flashbackdatabase 到之前的某個時間點時,必須保證所需要的 flashback
log 存在。
建立一個 guaranteed restore point,可以保證能將資料庫 flashback 到該點,即使沒有系統啟用 flashback
database 日誌!這是因為,在建立 guaranteed restore point 之後,對於任何 block 的第一次變更,都會將其前映象整個的記錄下來。
如果系統啟用了 flashback database 日誌,那麼 guaranteed
restore point 可以保證能將資料庫 flashback 到 guaranteed restore point 之後的任何時間點。
一旦建立了可靠還原點,要密切關注 flashback_recovery_area 空間的使用情況,因為在建立guaranteed restore point 之後,對於任何 block 的第一次變更,都會將其前映象整個的記錄下來。所以當不再使用某一可靠還原點後要及時刪除;
——————————————————————————————————————————————
注 1: Guaranteed
restore point 儲存在閃回日誌中
2:必須擁有 SYSDBA 系統許可權才有權建立可靠還原點
3:必須啟用快速恢復區
4:資料庫必須處於歸檔模式
3) 刪除語法: drop
restore point point_name;
1.7.2. 測試基於可靠還原點閃回資料庫
1) SCOTT 使用者下建立測試表並插入一條記錄
SCOTT@ORA11GR2>create table fbdb_point as select * from fbdb_scn where 1=2;
Table created.
SCOTT@ORA11GR2>insert into fbdb_point select 1 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SCOTT@ORA11GR2>commit;
Commit complete.
SCOTT@ORA11GR2>select * from fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
2) 連線到 sys 使用者建立可靠還原點,因為只有擁有 sysdba 系統許可權的使用者才有權建立可靠還原點
SCOTT@ORA11GR2>conn / as sysdba
Connected.
SYS@ORA11GR2>create restore point rp_fbdb guarantee flashback database;
Restore point created.
3) 再次插入一條記錄,驗證當閃回到可靠還原點後,本次插入的記錄將不存在
SYS@ORA11GR2>conn scott/tiger;
Connected.
SCOTT@ORA11GR2>insert into fbdb_point select 2 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SCOTT@ORA11GR2>commit;
Commit complete.
SCOTT@ORA11GR2>select * from fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
2 1876411 2016-10-01 08:15:48
4) 刪除 SCOTT 使用者,資料庫啟動到 mount 模式
SCOTT@ORA11GR2>conn / as sysdba
Connected.
SYS@ORA11GR2>drop user scott cascade;
User dropped.
SYS@ORA11GR2>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ORA11GR2>startup mount;
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 452984896 bytes
Database Buffers 272629760 bytes
Redo Buffers 2842624 bytes
Database mounted.
5) 執行基於還原點的閃回資料庫
SYS@ORA11GR2>flashback database to restore point rp_fbdb;
Flashback complete.
6) 以 resetlogs 方式開啟
SYS@ORA11GR2>alter database open resetlogs;
Database altered.
注 既然是還原點,那麼那個還原點一定是我想還原到的地方,所以無需 read only 開啟驗證
7) 驗證結果
SYS@ORA11GR2>select * from scott.fbdb_point;
ID SCN DD
---------- ---------- ---------
1 1876290 01-OCT-16
SYS@ORA11GR2>conn scott/tiger
Connected.
SCOTT@ORA11GR2>select * from scott.fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
SCOTT@ORA11GR2>conn / as sysdba
Connected.
8) 檢視還原點,將其刪除
SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;
NAME SCN STORAGE_SIZE GUA
--------------- ---------- ------------ ---
RP_FBDB 1876367 52428800 YES
SYS@ORA11GR2>drop restore point rp_fbdb;
Restore point dropped.
SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;
no
rows selected
注: 用完可靠還原點以後,一定要記得將其刪除,因為啟用了可靠還原點,那麼資料庫的一舉一動都會記錄閃回日誌中,從啟用可靠還原點起,直到刪除,這個期間是不受閃回日誌保留期限的約束的,也就是說,只要你不刪除可靠還原點,那麼日誌就一直保留著,確實夠意思,真沒白叫可靠還原點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2126613/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【備份恢復】閃回資料庫(二) 基於 SCN 閃回資料庫資料庫
- 【備份恢復】閃回資料庫(三)基於時間戳閃回資料庫資料庫時間戳
- 【備份恢復】閃回資料庫(一)閃回資料庫的管理資料庫
- 【備份恢復】閃回資料庫(五)RMAN 命令列閃回資料庫資料庫命令列
- 利用可靠還原點進行資料庫閃回資料庫
- 還原點和閃回資料庫資料庫
- 閃回(關於閃回資料庫)資料庫
- Backup And Recovery User's Guide-使用閃回資料庫和還原點-閃回資料庫GUIIDE資料庫
- 基於SCN閃回資料庫資料庫
- Oracle資料庫的閃回恢復區Oracle資料庫
- Backup And Recovery User's Guide-使用閃回資料庫和還原點-閃回資料庫的限制GUIIDE資料庫
- Backup And Recovery User's Guide-使用閃回資料庫和還原點-閃回資料庫視窗GUIIDE資料庫
- 資料庫基於版本的閃回資料庫
- 閃回資料庫資料庫
- 基於時間戳閃回資料庫時間戳資料庫
- Oracle閃回技術之閃回資料庫Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- Oracle閃回資料庫Oracle資料庫
- 資料庫的閃回資料庫
- 【備份恢復】 閃回技術之閃回刪除
- 在物理備庫上部署閃回資料庫資料庫
- 【備份恢復】閃回技術之閃回版本查詢
- 閃回資料庫的事情資料庫
- Flashback Database 閃回資料庫Database資料庫
- 監視閃回資料庫資料庫
- 實驗-閃回資料庫資料庫
- Orcale利用閃回功能恢復資料
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- Oracle 閃回技術 概覽 資料庫閃回功能Oracle資料庫
- 使用閃回查詢備份資料
- Oracle -- 閃回恢復區---實踐1---閃回庫Oracle
- (f)--閃回恢復區---實踐2---閃回表(閃回DML部分資料會用到閃回查詢)
- Backup And Recovery User's Guide-使用閃回資料庫-開啟閃回資料庫GUIIDE資料庫
- FlashBack總結之閃回資料庫與閃回刪除資料庫
- [Flashback]開啟資料庫閃回資料庫功能資料庫
- Oracle 閃回資料庫測試Oracle資料庫
- 詳解oracle資料庫閃回Oracle資料庫
- Backup And Recovery User's Guide-使用閃回資料庫來回退資料庫-監控閃回資料庫GUIIDE資料庫