前言:
如今兄弟们对“数据库主备切换”大致比较讲究,同学们都需要了解一些“数据库主备切换”的相关文章。那么小编也在网摘上网罗了一些对于“数据库主备切换””的相关文章,希望朋友们能喜欢,兄弟们一起来了解一下吧!介绍
本文在已经按照上一篇文章《物理Data Guard-12C》搭建好了物理DG,并且同步测试没有问题的前提下,做主备库切换。
服务器ip
数据库版本
db_name
db_unique_name
主库
192.168.141.109
12.2.0.1
testdb
testdbp
备库
192.168.141.114
12.2.0.1
testdb
testdbs
注意,需要确定下列几个参数在主备库中是否设置正确(这里不做参数说明)
log_archive_dest_1
log_archive_dest_2
LOG_ARCHIVE_CONFIG
FAL_SERVER
STANDBY_FILE_MANAGEMENT
主备库切换
1.检查主库当前状态
select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS, db_unique_name from v$database;
可以看到,主库的SWITCHOVER_STATUS显示"TO STANDBY",说明可以进行切换,如果是其他状态则需要做出相应处理!
2.主库切换成备库
SQL>alter database commit to switchover to physical standby with session shutdown;
Database altered.
主库alter日志部分截图:
备库alter日志部分截图:
注意:当看到主库日志最后显示Instance shutdown complete 后,在操作系统上使用 ps -ef|grep smon 确认实例进程已经不存在,然后退出当前session,重启一个seesion将数据库启动到mount状态!(在11G版本中,遇到过主库切换后,实例并没有挂掉,这时需要直接shutdown abort处理)
SQL>startup mount;
由于备库还没有切换成主库,所以这里暂时启动mount状态就可以了!
3.检查当前数据库状态
select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS from v$database;
可以看到,数据库已经切换成了物理备库!
备库切换成主库
1.检查数据库状态
select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS from v$database;
可以看到,SWITCHOVER_STATUS显示"TO PRIMARY",说明可以切换成主库!
2.切换成主库
alter database commit to switchover to primary with session shutdown;
部分截图:
3.打开数据库
alter database open; --需要一定的时间
查看alter日志时,会发现在执行open的过程中会产生一些错误,可以忽略!
检查数据库状态
select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS from v$database;
数据库显示为主库, 切换成功!
后续
1.open新的备库(原主库)并开启日志实时应用
alter database open;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
2.在新主库(原备库)上创建表和用户查看同步是否正常
新主库:
create table lw01(id number,name varchar2(20));
insert into lw01 values(1,'lw01');
commit;
create user C##test123 identified by test;
新备库查询:
至此切换完成,并且数据同步正常!
3.如果想再一次切换回去,可以按照上面的方法重复一次即可!
标签: #数据库主备切换