Oracle 11g 中的 Data Guard 不仅引入了Active Data Guard实时查询特性,还提供了snapshot stadnby 数据库的功能。快照备库可以临时提供读写能力,以便线上业务系统进行测试相关场景任务。
snapshot standby database 会从主库接收和归档 redo 数据,但是不会对 redo 数据进行apply。 仅当snapshot standby 的角色转换回physical standby database 的时候才会应用之前接收的redo 数据。 然后擦除作为snapshot standby 数据库时所有的DML和DDL操作。
snapshot standby实际上是基于flashback database的运行机制,因此必须设置闪回区目录及大小。
将物理备库转换成快照备库。
确保fast recovery area已经配置并确保大小合适,但不一定需要启动flashback database功能
show parameter flashback show parameter db_recover -- 如果大小合适,就不用调整大小 alter system set db_recovery_file_dest_size=1024g scope=both;
-- 停止Redo Apply alter database recover managed standby database cancel;
select open_mode from v$database; ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; -- 检查 select database_role,open_mode,protection_level from v$database; select oldest_flashback_scn, oldest_flashback_time from v$flashback_database_log;
alter database open; select open_mode from v$database;
任务完成后,将 Snapshot Standby 转成 Physical Standby
shutdown immediate; startup mount; alter database convert to physical standby;
备库 alert 有详细记录 ,转换的过程相当于 Flashback restore ,恢复控制文件和清理日志操作并删除还原点
备库重启并重新开启日志应用
shutdown immediate; startup; alter database recover managed standby database using current logfile disconnect from session; -- 还原点也被删除了 select name,storage_size from v$restore_point;
select max(sequence#) from v$archived_log; -- 备库 select sequence#, applied from v$archived_log;