測試flashback database

調整快速恢復區大小
SQL> alter system set db_recovery_file_dest_size=1G;

System altered.

SQL> alter system set db_recovery_file_dest ='+DATADG';

System altered.

開啓閃回--open和force logging--mount
SQL> alter database flashback on;

Database altered.

SQL>alter database force logging;

Database altered.

SQL> select flashback_on,force_logging from v$database;

FLASHBACK_ON       FOR
------------------ ---
YES                YES

調整保留時間2天
SQL>  show parameter flashback

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     1440

SQL> alter system set db_flashback_retention_target=2880;

System altered.

創建閃回還原點
SQL> create restore point rp guarantee flashback database;

Restore point created.


SQL> select name from v$restore_point;

NAME
--------------------------------------------------------------------------------
RP

刪除數據
SQL> drop table test purge;

Table dropped.

關閉所有節點數據庫,將一個節點數據庫啓動到mount


閃回到還原點
SQL> flashback database to restore point rp;

Flashback complete.


read only 開庫查看

SQL> alter database open read only;

Database altered.

SQL> select * from test;

         X
----------
         2
         2
         
以RESETLOGS 開庫


閃回scn
SQL> select flashback_on,force_logging from v$database;

FLASHBACK_ON       FOR
------------------ ---
YES                YES

記錄scn

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    1594059

刪除表
SQL> drop table test purge;

Table dropped.

SQL> select * from test;
select * from test
              *
ERROR at line 1:
ORA-00942: table or view does not exist    

關閉所有節點數據庫,將一個節點數據庫啓動到mount

將數據庫閃回到scn時間點
SQL> flashback database to scn 1594059;

Flashback complete.

read only 開庫查看
SQL> alter database open read only;

Database altered.

SQL> select * from test;

         X
----------
         2
         2
以RESETLOGS 開庫

閃回時間
SQL> select flashback_on,force_logging from v$database;

FLASHBACK_ON       FOR
------------------ ---
YES                YES
記錄時間

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2020-04-08 23:18:55

刪除表數據
SQL> select * from test;

         X
----------
         2
         2

SQL> truncate table test;

Table truncated.

關閉所有節點數據庫,將一個節點數據庫啓動到mount

閃回到記錄時間點
SQL> flashback database to timestamp to_timestamp('2020-04-08 23:18:55', 'yyyy-mm-dd hh24:mi:ss');

Flashback complete.

read only 開庫查看
SQL> alter database open read only;

Database altered.

SQL> select * from test;

         X
----------
         2
         2
以RESETLOGS 開庫


刪除還原點,關閉flashback database


SQL> drop restore point rp;

Restore point dropped.

SQL> select name from v$restore_point;

no rows selected

SQL> alter database flashback off;

Database altered.

mount模式下關閉force logging 關閉歸檔
SQL> alter database no force logging;

Database altered.

SQL>  alter database noarchivelog;

Database altered.

SQL>select flashback_on,force_logging from v$database;

FLASHBACK_ON       FOR
------------------ ---
NO                 NO


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章