Menu Close

DataGuard快照(snapshot)数据库

在Dataguard中,可以将standby备库切换为snapshot快照数据库,在切换为snapshot数据库后,备库将置于可读写的模式。可用于模拟业务功能测试。在使用完成之后,可以将快照数据库切换为物理备库。在此期间,备库可以接受主库传输过来的日志,但是不能应用日志,需要处于物理备库的时候才可以应用。

1. 将物理备库切换为快照数据库

1.1. 备库配置快速恢复区

SQL> show parameter db_recovery

NAME                           TYPE          VALUE
---------------------------  ----------- ---------------------
db_recovery_file_dest         string
db_recovery_file_dest_size    big integer      0
SQL>
SQL> alter system set db_recovery_file_dest_size=500g;

System altered.

SQL> alter system set db_recovery_file_dest='/dbData/OracleArch/fast_recovery_area';

System altered.

1.2. 备库关闭redo apply应用

--在关闭之前,备库的开启状态为:READ ONLY WITH APPLY
--关闭redo apply后,备库的开启状态为:READ ONLY
alter database recover managed standby database cancel;

1.3. 切换为快照(snapshot)数据库

--执行转换为快照数据库后,备库的开启状态为:MOUNTED
alter database convert to snapshot standby;

--开启备库后,数据库开启状态为:READ WRITE
alter database open;

1.4. 查看状态

SELECT open_mode,database_role,protection_mode,protection_level
  FROM v$database;

OPEN_MODE             DATABASE_ROLE    PROTECTION_MODE       PROTECTION_LEVEL
-------------------- ---------------- -------------------- --------------------
READ WRITE            SNAPSHOT STANDBY MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

2. 将快照(snapshot)数据库切回物理备库

2.1. 关闭备库,将备库启动到mount状态

shutdown immediate;
startup mount;

2.2. 执行切回命令

alter database convert to physical standby;

2.3. 再次关闭备库,启动到open状态,开启实时应用

--关闭备库
shutdown immediate

--启动数据库到open状态
startup

--开始备库实时应用
alter database recover managed standby database using current logfile disconnect;

2.4. 查看备库状态

SELECT open_mode,database_role,protection_mode,protection_level
  FROM v$database;

NAME      OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE
--------- -------------------- ---------------- --------------------
ADGDB     READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY