前言
繼續前文描述,本文講解oracle DG備庫的最後一種類型:snapshot—快照庫。與其他備庫不同,snapshot備庫是一種完全可以更新的備庫,由物理備庫切換而來。
當物理備庫切換至snapshot備庫時,snapshot繼續接收主庫傳過來的redo log,但不應用redo log。同時,snapshot以讀寫模式打開,允許進行數據的讀寫,對snapshot庫的寫入數據不會同步到主庫,後續切回至物理備庫時,所有寫入數據丟失。
以上snapshot的特性可用於測試環境臨時打開讀寫功能。
相關操作
physical備切換至snapshot備
- 查看物理備庫狀態
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE ---------------- -------------------- PHYSICAL STANDBY READ ONLY WITH APPLY SYS > select process,status from v$managed_standby;
PROCESS STATUS --------- ------------ ARCH CLOSING ARCH CLOSING ARCH CONNECTED ARCH CLOSING RFS IDLE RFS IDLE RFS IDLE RFS IDLE MRP0 APPLYING_LOG
9 rows selected. |
- 關閉實時同步
SQL> recover managed standby database cancel;
- 切換至snapshot備庫
SQL> alter database convert to snapshot standby;
- 打開備庫
SQL> alter database open;
- 查看數據庫角色與打開模式
SQL> select database_role,open_mode from v$database;
整個流程圖示如下:
snapshot切回至physical備
- snapshot備庫shutdown
SQL> shutdown immediate;
- 啓動到mount狀態
SQL> startup mount;
- 切換至物理備庫
SQL> alter database convert to physical standby;
- 再次shutdown
SQL> shutdown immediate;
- 啓動到mount狀態
SQL> startup mount;
- 備庫啓動日誌應用
SQL> recover managed standby database using current logfile disconnect
- 查看物理備庫狀態
SQL> select database_role,open_mode from v$database;
SQL> select process,status from v$managed_standby;
整個流程如下圖所示: