物理備庫互轉快照備庫

張衝andy發表於2017-03-15

特點:
snapshot standby database 會從主庫接收和歸檔 redo data,但是不會對redo data進行apply。 僅當snapshot standby 的角色轉換回physical standby database 的時候才會應用之前接收的apply 檔案。 然後擦除作為snapshot standby 資料庫時所有的DML和DDL操作。

限制:
(1)Snapshot standby 資料庫不能進行switchover 或者failover 操作。 在轉換之前,也必須先從snapshot standby 轉換成physical standby 以後才可以轉換。

(2)Snapshot standby 不支援最大保護模式。(原因:最大保護需要real time applied)

優點:
想做測試,主庫不能操作,可以將備庫轉為快照備庫,做完測試,再轉為物理備庫。

將Physical Standby轉成Snapshot Standby Database :

流程:

2. 確保fast recovery area已經配置(確保大小合適),但不需要啟動flashback database功能。
SQL> show parameter flashback
NAME TYPE VALUE
------------------------------------ ----------- --------------------
db_flashback_retention_target integer 1440

SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- --------
db_recovery_file_dest string +FLASH
db_recovery_file_dest_size big integer 3882M

-- 如果大小合適,不用調整大小
SQL> alter system set db_recovery_file_dest_size=10g scope=both;
System altered.

停止Redo Apply
SQL> alter database recover managed standby database cancel; 
3. 備庫進行切換
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
Database altered.

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED

說明:備庫的 alert 日誌裡面有詳細記錄,啟動了一個後臺程式:RVWR ,建立了一個guaranteed 的resotre point,
進行了resetlogs 的操作 。

SQL> alter database open;
Database altered.

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE

--模擬測試
SQL> create table andysnap (id int);
Table created.

SQL> insert into andysnap values(1);
1 row created.

4. 主庫日誌切換,看日誌是否正常傳遞到備庫,且沒有應用。
SQL> alter system switch logfile;
System altered.

備庫檢視

SQL> select thread#,sequence#,applied from v$archived_log;
。。。。
1 78 NO

5. 測試完畢,將 Snapshot Standby 轉成 Physical Standby 
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database convert to physical standby;
Database altered.
說明: 備庫 alert 有詳細記錄 ,轉換的過程相當於 Flashback restore , 並 drop 掉restore point 。

SQL> shutdown immediate;
SQL> startup;
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

6. 檢測主備同步情況
主庫:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
78
備庫:

SQL> select sequence#,applied from v$archived_log;
。。。。。
78 IN-MEMORY
71 rows selected.

 


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

相關文章