Oracle10GR2 中的RESTORE POINT

season0891發表於2010-05-26
RESTORE POINT

    還原點是10GR2新增加的一個功能,它是建立在資料庫層面上的, 跟savepoint不同. 必須在資料庫處於ARCHIVELOG模式下才可以使用,主題思想是在資料庫的某個時間點建立一個restore point,在隨後的某個時間點可以將表或資料庫falshback 到這個restore point.那麼能否真正的完成flashback,依賴於建立的restore point型別和flashback要操作的物件.flashback database需要SYSDBA許可權,flashback table需要 FLASHBACK ANY TABLE的許可權.

    guarantee restore point for flashback database  

    guarantee restore point必須在資料庫處於flashback on 的狀態下,才可以定義的一中restore point,它的主題思想是保證資料庫能夠準確完整的flashback 到定義的 restore point. 操作依賴於flashback log和archivelog, 如果定義了guarantee restore point,那麼flashback logs將不受db_recovery_retention_target引數的限制,oracle不會刪除flashback log,只要flashback arae有足夠的磁碟空間,oracle就會儲存足夠的flashback logs,滿足flashback database to restore point.

    如果資料庫沒有處於flashback on,那麼定義一個guarantee restore point必須在database mount狀態下進行.其實這個也可以理解,oracle根據定義的restore point,可以個保證database open後的歸檔可以不被刪除.但有一點必須明確的是,guarantee restore point是針對flashback database而言的,不對flashback table起作用,為什麼呢, 因為flashback table依賴於undo,如果在guarantee時間範圍內,undo過期了, 那麼flatable table 還是不能還原到定義的guarantee restore point.

    Normal restore point 

    普通的restore point 非常簡單, 如果要flashback database,那麼資料庫必須處於flashback on 狀態,但這個時候不一定可以flashback database到定義的restore point,oracle會根據db_recovery_retention_target自動維護建立的restore ponit和flashback logs,如果超過db_recovery_retention_target 定義的restore point,oracle會自動刪除 , 無論是flashback table或者flashback database都不能完成.

    簡單的流水帳記錄,為了試自己更加明確restore point的原理.

    建立一個guarantee restore point

#div_code img{border:0px;}
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)


--&gtSQL> create restore point a guarantee flashback database;

    建立一個普通的restore point

#div_code img{border:0px;}
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)


--&gtSQL> create restore point b;

    flashback dtaase to restore point:(必須在guarantee restore point for flashback database的情況)

#div_code img{border:0px;}
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)


--&gtSQL> startup mount
  ORACLE instance started.

Total System Global Area  
209715200 bytes

Fixed Size                  
1266632 bytes

Variable Size            
134220856 bytes

Database Buffers           71303168 bytes

Redo Buffers                
2924544 bytes

Database mounted.

SQL
> flashback database to restore point a;

Flashback complete.

SQL
> alter database open resetlogs;

Database altered.

    falshback table

#div_code img{border:0px;}
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)


--&gtSQL> alter table test_histogram enable row movement;

Table altered.

SQL
> flashback table test_histogram to restore point a;

Flashback complete.

 



   

 

相關閱讀:
come from : http://publish.itpub.net/a2010/0415/874/000000874104.shtml

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

相關文章