restore point特色二&閃回資料庫特性(三)

趙宇發表於2008-04-29

之所以這個題目這麼寫,是因為可靠的還原點,隱式地開啟資料庫的閃回特性,啟動閃回日誌,但是隻是針對這個還原點,即使不做alter database flashback on;也可以做flashback database操作,但又不能做flashback database to scn的指定閃回資料庫操作,特色而已.

 

建立可靠的還原點,在關閉資料庫的情況下:

SQL> conn / as sysdba
已連線。
SQL>  create restore point before_drop guarantee flashback database;

create restore point before_drop guarantee flashback database
*
第 1 行出現錯誤:
ORA-38784: 無法建立還原點 'BEFORE_DROP'。
ORA-38785: 必須對可靠的還原點啟用介質恢復。


SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1298184 bytes
Variable Size             171966712 bytes
Database Buffers          436207616 bytes
Redo Buffers                2895872 bytes
資料庫裝載完畢。
SQL> archive log list
資料庫日誌模式             非存檔模式
自動存檔             禁用
存檔終點            USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列     4
當前日誌序列           6
SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_9                   string
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      ARC%S_%R.%T
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> alter database archivelog;

資料庫已更改。

SQL> archive log list
資料庫日誌模式            存檔模式
自動存檔             啟用
存檔終點            USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列     4
下一個存檔日誌序列   6
當前日誌序列           6
SQL> alter database open;

資料庫已更改。

SQL> create restore point before_drop guarantee flashback database;
create restore point before_drop guarantee flashback database
*
第 1 行出現錯誤:
ORA-38784: 無法建立還原點 'BEFORE_DROP'。
ORA-38787: 在閃回資料庫處於關閉狀態時, 建立第一個可靠還原點需要裝載模式。


SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1298184 bytes
Variable Size             171966712 bytes
Database Buffers          436207616 bytes
Redo Buffers                2895872 bytes
資料庫裝載完畢。
SQL>
SQL> create restore point before_drop guarantee flashback database;

還原點已建立。

SQL>

SQL> conn / as sysdba
已連線。
SQL> select flashback_on from v$database;

FLASHBACK_ON
----------------------------------------------------------------------
RESTORE POINT ONLY

SQL> alter database open;

資料庫已更改。


我們可以發現建立可靠的還原點以後,資料庫預設開啟flashback database log,但是隻儲存針對這個還原點的日誌,我們測試一下,
是否可以還原到中間時刻

SQL> conn scott/tiger
已連線。

SQL> select count(*) from emp2;

  COUNT(*)
----------
        14

SQL> insert into emp2 select * from emp2;

已建立14行。

SQL> /

已建立28行。

SQL> /

已建立56行。

SQL> /

已建立112行。

SQL> /

已建立224行。

SQL> /

已建立448行。

SQL> /

已建立896行。

SQL> /

已建立1792行。

SQL> /

已建立3584行。

SQL> commit;

提交完成。

SQL> select distinct ora_rowscn from emp2;

ORA_ROWSCN
----------
    659777
    658468


SQL> conn / as sysdba
已連線。
SQL> select * from v$restore_point;

       SCN DATABASE_INCARNATION# GUA STORAGE_SIZE TIME                                     NAME
---------- --------------------- --- ------------ ---------------------------------------- -----------------------------
    658906                     2 YES      8192000 27-4月 -08 08.18.49.000000000 下午       BEFORE_DROP


SQL> conn scott/tiger
已連線。
SQL> delete from emp2 where rownum<1000;

已刪除999行。

SQL> commit;

提交完成。


SQL> select distinct ora_rowscn from emp2;

ORA_ROWSCN
----------
    659777
    660070


已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL>
SQL> startup mount
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1298184 bytes
Variable Size             171966712 bytes
Database Buffers          436207616 bytes
Redo Buffers                2895872 bytes
資料庫裝載完畢。
SQL>


SQL> flashback database to scn 658468;
flashback database to scn 658468
*
第 1 行出現錯誤:
ORA-38726: 未啟用閃回資料庫事件記錄。


SQL> select * from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- ------------------- ---------------- -------------- ------------------------
              658906 2008-04-27 20:18:49             1440        8192000                        0

SQL> flashback database to scn 658906;
flashback database to scn 658906
*
第 1 行出現錯誤:
ORA-38726: 未啟用閃回資料庫事件記錄。


SQL> flashback database to restore point BEFORE_DROP;

閃回完成。

僅僅能執行這個閃回資料庫操作,不能針對SCN,閃回資料庫在未做alter database flashback on的情況下,只能
閃回到還原點.

SQL> alter database open read only;

資料庫已更改。

SQL> select distinct ora_rowscn from scott.emp2;

ORA_ROWSCN
----------
    658468

SQL> select count(*) from scott.emp2;

  COUNT(*)
----------
        14

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

相關文章