龙空技术网

物理Data Guard 12C-主备切换实验

Layman-刘 142

前言:

如今兄弟们对“数据库主备切换”大致比较讲究,同学们都需要了解一些“数据库主备切换”的相关文章。那么小编也在网摘上网罗了一些对于“数据库主备切换””的相关文章,希望朋友们能喜欢,兄弟们一起来了解一下吧!

介绍

本文在已经按照上一篇文章《物理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.如果想再一次切换回去,可以按照上面的方法重复一次即可!

标签: #数据库主备切换