ITPub博客

首页 > 数据库 > 数据库开发技术 > 【新炬网络名师大讲堂】Data Guard–物理主备库切换

【新炬网络名师大讲堂】Data Guard–物理主备库切换

原创 数据库开发技术 作者:shsnchyw 时间:2014-12-09 17:50:27 0 删除 编辑

近期因为工作的需要,研究了一些DG的东西,以下是Performing a Switchover to a Physical Standby Database的操作步骤,主要是参考官方文档和网上一些资料,整理而成:

1、减少实例

在切换之前必须把数据库减少为一个实例,即RAC的话,只留一个节点。
shutdown immediate
或(紧急时在辅助实例执行)
shutdown abort

2、首先在主库确认没有日志缺口

SQL> select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;
应该返回 VALID 和 NO GAP。
删除 LOG_ARCHIVE_DEST_N 参数中的所有延迟应用(delay)重做日志设置,你要确认所有变化都在备库应用,才能确保无数据丢失。
确认所有重做日志都已在备库应用,查询备库:
SQL> select NAME, VALUE, DATUM_TIME from V$DATAGUARD_STATS;
不应该返回 transport lag 或 apply lag, finish time 应该为0.

3、检查先决条件

检查完这些先决条件后,确认主库可以进行角色切换,查询主库:
SQL> select SWITCHOVER_STATUS from V$DATABASE;
如果返回 TO STANDBY 或 SESSIONS ACTIVE,那么主库就可以进行切换。
切换主库为备库命令为:
alter database commit to switchover to physical standby with session shutdown;
shutdown immediate
startup mount

4、备库切换为主库

查询备库是否可以切换为主库
select SWITCHOVER_STATUS from V$DATABASE;
如果返回 TO PRIMARY 或 SESSIONS ACTIVE,就可以切换。
如果返回 SWITCHOVER LATENT 或 SWITCHOVER PENDING,就要去检查告警日志,看有什么问题,一般是需要应用一些日志。
如果是需要应用日志的话,在备库执行如下命令:
recover standby database using backup controlfile;
在应用日志前应该是 SWITCHOVER PENDING 状态,完成应用后,会变成 TO PRIMARY 或 SESSIONS ACTIVE状态。
切换备库为主库:
alter database commit to switchover to  primary with session shutdown;
打开新主库:
alter database open;

5、在原主库(现备库)启用日志应用

如果其他物理备库被停止,也需要启用日志应用
alter database recover managed standby databse using current logfile disconnect from session;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29960155/viewspace-1362361/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-16

  • 博文量
    147
  • 访问量
    268248