前言
继续前文描述,本文讲解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;
整个流程如下图所示: