联系:手机/微信(+86 17813235971) QQ(107644445)
标题:oracle之data guard(2)——物理standby和primary切换
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
一、primary库上操作
1、查看primary库转换状态
select switchover_status from v$database
如果是TO STANDBY可以直接进入步骤3
如果是SESSIONS ACTIVE进入步骤2
2、强制把primary设置为standby模式
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
如果更加强制性,则使用
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN NOWAIT;
3、正常方式进入standby模式
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
4、重启数据库,置于mount状态
5、再次查看witchover_status状态
如果为TO PRIMARY ,表示primary切换成standby成功,如果不是请查看配置文件
二、在原standb库上配置
1、查看witchover_status状态
select switchover_status from v$database
如果是TO PRIMARY正常
如果是SESSIONS ACTIVE在2的命令后面加上 WITH SESSION SHUTDOWN ( nowait)
2、standby库切换为primary库
alter database commit to switchover to primary;
3、关闭再打开数据库
shutdown immediate;
startup;
三、测试
在现在的primary库上切换日志,在standby上查看
主库:alter system switch logfile;select name from v$archived_log;
备份库: select name from v$archived_log;
如果两者结果一致,表示切换成功
四、从MAXIMUM PERFORMANCE到MAXIMUM PROTECTION的切换
1、添加standby redo
数量:(maximum number of logfiles for each thread + 1) * maximum number of threads
alter database add standby logfile thread 1 ‘C:\oracle\product\10.2.0\oradata\orcl\redo04.log’ size 50m;
note:和redo log等大,数量每个thread比redo log多一个,最好standby和primary都添加,因为要转换
2、关闭数据库,置于mount状态
log_archive_dest_2修改为
alter system set log_archive_dest_2=’service=orcl lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl’;
主要是: lgwr sync affirm
3、设置为maximize protection
alter database set standby database to maximize protection;
4、open数据库并测试
测试 主要是通过v$archived_log视图实现
使用select protection_mode from v$database;查看数据库保护状态
五、MAXIMUM PROTECTION模式下primary、standby 库的相互切换
1、在primary库上配置
1)关闭除本操作连接外的所有数据库连接
2)alter database commit to switchover to physical standby;
3)select t.PROTECTION_MODE,t.DATABASE_ROLE from v$database t;
如上图表示成功
2、在standby上操作
1)alter database commit to switchover to physical standby;
2)ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
3)shutdown immedate;startup mount;
4)alter system set log_archive_dest_2=’service=xff lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=xff’;(修改为同步传输)
5)alter database open;
如上图表示成功