沙箱备库
所谓沙箱备库,是和主库断开网络连接的备库或者是从备份影像恢复出来的数据库,可以手工回放主库产生的归档日志,沙箱备库可以提供只读服务,必要时可以切换成主库角色,一旦切换成主库模式且发生写入操作,将不能变回原主库的沙箱备库。
配置沙箱备库
以从备份影像恢复方式构建沙箱备库为例,假定沙箱备机已经安装并创建初始数据库,集群名称为yashandb,主库备份影像所在目录为/backup/full,操作用户为组YASDBA成员。
1、更改配置参数:SANDBOX_STANDBY
yasql / as sysdba -c "alter system set SANDBOX_STANDBY=true scope=spfile"
2、nomout 方式重启实例,删除初始创建的数据库
yasboot cluster restart -m nomount -c yashandb
yasql / as sysdba -c "drop database including archivelog"
3、恢复数据库
yasql / as sysdba -c "restore database from '/backup/full'"
4、将恢复出来的数据库转换成standby角色,并且open
yasql / as sysdba -c "alter database convert to physical standby"
yasql / as sysdba -c "alter database open"
5、检查数据库角色及打开模式,结果应该为STANDBY,READ_ONLY
yasql / as sysdba -c "select database_role, open_mode from v\$database"
注册归档日志
首先需要将主库产生的归档日志传到沙箱备机所在服务器,以arch_0_8.ARC为例
yasql / as sysdba -c "alter database register archivelog 'arch_0_8.ARC'"
回放归档日志
下面命令启动后台回放任务并退出
yasql / as sysdba -c "alter database recover managed standby database disconnect from session"
之后新注册的归档日志回自动被回放,如停止回放可执行下面命令
yasql / as sysdba -c "alter database recover managed standby database cancel"
查看回放状况
yasql / as sysdba -c "select * from v\$recovery_status"
将沙箱备库强制升成主库
需要在回放任务启动的情况下,发出下面命令
yasql / as sysdba -c "alter database failover"
注意
沙箱备库只能回放归档日志,主库的活动日志中的交易不能实时同步