欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Data Guard–物理主备库切换

程序员文章站 2024-01-24 21:58:52
...

近期因为工作的需要,研究了一些DG的东西,以下是Performing a Switchover to a Physical Standby Database的操作步骤,主要是参考官方文档和网上一些资料,整理而成: 1、减少实例 在切换之前必须把数据库减少为一个实例,即RAC的话,只留一个节点。 shutdo

近期因为工作的需要,研究了一些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;