oracle閃回數據庫在dataguard中的使用

oracle閃回數據庫在dataguard中的使用

很多人在學習flashback database這個oracle技術的時候,都會有一個疑問,就是如果我只有一個數據庫作爲生產庫的話,

是否有這樣的業務需求導致我們要把數據庫閃回到以前的時間點?以及這樣做是否值得(當前時間點和閃回目的時間點中間的所有操作將丟失)?

其實拋開這個問題的討論,在oracle的dataguard環境配置中,對於故障切換後產生故障的主機從新回到dataguard環境,

以及處於測試的目的我們人爲的激活了備庫,flashback database都可以提供非常好的選擇。

下面的例子描述了這樣一個場景:

用戶需要一個和生產系統一樣或者類似的測試環境,但是單純的搭建一個環境顯然是不值得的,對於部署了dataguard環境的生產系統來說,

我們可以選擇把備庫臨時激活,以讀寫的方式打開,用於測試的需要,等測試結束後,把備庫通過flashback database技術閃回到激活之前的時間點,

從新的加入到dataguard配置環境中。

第1 步 準備要被激活的物理備數據庫。

1 .檢查數據庫的flashback database模式和閃回日誌存放的目錄。

SQL> select flashback_on from v$database;

FLASHBACK_ON

------------------

YES

SQL> show parameter db_recovery_file

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest string /u01/app/oracle/flash_recovery_area

db_recovery_file_dest_size big integer 2G

2 .由於備庫在應用日誌,所以要取消日誌應用,並創建一個激活之前的還原點。

SQL> select process,status from v$managed_standby;

PROCESS STATUS

--------- ------------

ARCH CONNECTED

ARCH CLOSING

MRP0 WAIT_FOR_LOG

RFS IDLE

RFS IDLE

RFS IDLE

6 rows selected.

SQL> recover managed standby database cancel;

SQL> create restore point test_scn guarantee flashback database;

Restore point created.

第2 步 準備主數據庫

1 .歸檔當前日誌文件。

在主數據庫上,切換日誌使得還原點(在步驟 1 中創建)的 SCN 將在物理備數據庫上被歸檔:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

當使用備重做日誌文件時,這個步驟是必須的以確保數據庫能被正確地閃回到還原點。

2 .延遲指向將被激活的備庫的日誌歸檔目的地。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;

System altered.

SQL> show parameter log_archive_dest_state_2

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_state_2 string DEFER

第3 步 激活物理備數據庫。

在物理備數據庫上,執行下述步驟:

1 .激活物理備數據庫並打開到open狀態:

SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

SQL> ALTER DATABASE OPEN;

第4 步 使用激活的數據庫用於報表或測試。

一旦備數據庫已經被激活,你能運行報表工具或執行其它測試並激活幾天甚至幾周,獨立於主數據庫。

警告:當數據庫被激活時,它不從主數據庫接收重做數據庫並不能提供災難保護。建議至少有

兩個物理備數據庫參與配置,使得主數據庫保持對數據丟失的保護。

第5 步 回覆激活的數據庫回到物理備數據庫。

在你完成測試之後,你需要重新與主數據庫同步激活的數據庫。在激活的數據庫上執行

下面語句以快速閃回它到保障的還原點並將它重新與主數據庫同步:

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 314572800 bytes

Fixed Size 1219160 bytes

Variable Size 75498920 bytes

Database Buffers 234881024 bytes

Redo Buffers 2973696 bytes

Database mounted.

SQL> flashback database to restore point test_scn;

Flashback complete.

SQL> alter database convert to physical standby;

Database altered.

SQL> select status from v$instance;

STATUS

------------

STARTED

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 314572800 bytes

Fixed Size 1219160 bytes

Variable Size 75498920 bytes

Database Buffers 234881024 bytes

Redo Buffers 2973696 bytes

Database mounted.

SQL> recover managed standby database disconnect;

Media recovery complete.

第6 步 重新允許歸檔到物理備數據庫目的地。

在主數據庫上,執行下面語句來重新允許歸檔到物理備數據庫:

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

第7 步 測試dataguard環境工作正常

1.在主庫刪除表空間usertest,並切換日誌

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/sztech2/system01.dbf

/oracle/app/oracle/oradata/sztech2/sysaux01.dbf

/oracle/app/oracle/oradata/sztech2/undotbs01.dbf

/oracle/app/oracle/oradata/sztech2/users01.dbf

/oracle/app/oracle/oradata/sztech2/example01.dbf

5 rows selected.

SQL> drop tablespace usertest including contents and datafiles;

Tablespace dropped.

SQL> alter system switch logfile;

System altered.

2.在備庫觀察日誌操作是否正確應用,下面的查詢可以看到文件應經被刪除,說明主庫的日誌應用到備庫。

SQL> select name from v$datafile;

NAME

---------------------------------------------------------------------------------------

/oracle/app/oracle/oradata/sztech2/system01.dbf

/oracle/app/oracle/oradata/sztech2/sysaux01.dbf

/oracle/app/oracle/oradata/sztech2/undotbs01.dbf

/oracle/app/oracle/oradata/sztech2/users01.dbf

/oracle/app/oracle/oradata/sztech2/example01.dbf



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