首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

物理standby角色转换

声明:最近小编可能会不定期托更,最近在准备跳槽,希望大家可以理解,我会尽量跟上每天文章的分享。希望我的这个公众号可以对大家有帮助。也希望大家能通过公众平台和我私信沟通,我们一起学习和进步。么么哒!!!

物理standby角色转换

首先在角色切换的时候一定要注意:

检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数进行正确的配置。

确保可能成为primary数据库的standby服务器已经处于archivelog模式。

确保standby数据库的临时文件存在并且匹配primary数据库的临时文件。

确保standby数据块的RAC实例只有一个处于open状态。(对于rac结构的standby数据库,在角色装欢的时候只能有一个实例startup。其他的RAC实例必须统统的shutdown,等待角色转换结束的时候在startup)

有两中转换方法:

switchover:

无损转换,通常是用户手动出发或者有计划的让其自动触发,其执行分为两个阶段,第一个阶段是primary数据库转换为standby角色,第二步,standby 数据库转换成primary数据库,这样证明就是两个角色之间的互相转换。

fallover:

当发生了无法预知的原因,导致primary数据库故障并且短内不能回复就需要failover,这种切换一定要注意。所以需要完备的备份恢复策略而且需要primary一定要处于最大数据保护和最高可用性模式。

这里需要注意的是在failover之前,一定要尽量将primary的可用redo和归档都复制到standby。不然的话在failover之后会导致原standby数据库丢失数据。

注意:

如果转换角色的standby数据库处于maximum protection的模式。需要手动将其切换成maximum performance模式

SQL>select protection_mode from v$database ; --查看保护模式

SQL>alter database set standby database to maximize performance;

当standby切换成新的primary之后,就可以随意更改数据库的保护模式了

此时要注意的是当standby处于max protection 模式下,如果primary仍然和standby数据库有数据传输,此时alter database 更改standby保护模式会失败,这也是由maxmum protection模式特性所决定的。

这里需要注意的是在failover之前,一定要尽量将primary的可用redo和归档都复制到standby。不然的话在failover之后会导致原standby数据库丢失数据。

物理standby的switchover

这个步骤注意先后顺序

先查看primary

先查看是否支持switch over 的操作

select swictchover_status from v$database;

primary 的结果

SWITCHOVER_STATUS

--------------------

TO STANDBY

alter database commit to switchover to physical standby;

这个时候primary数据库会转变为standby数据库;并且自动备份其控制文件到trace文件当中。

select database_role from v$database;

DATABASE_ROLE

--------------------

STANDBY

查看standby

select switchover_status from v$database ;

SWITCHOVER_STATUS

--------------------

TO PRIMARY

首先,这里不一定显示的是这样,很可能显示的是

SWITCHOVER_STATUS

--------------------

NOT ALLOWED

这种情况之后介绍,需要检查在初始化参数文件当中的设置,问题可能出在primary的中的初始化参数

primary转换角色

alter database commit to switchover to primary;

待转换的物理standby可以处于mount模式和open read only,但是不可以处于open read write模式。

打开primary

alter database open;

如过原standby的数据库处于open read only 模式,需要先shutdown 之后startup。

物理standby的failover

注意一下几点:

failover 之后,原primary的数据库默认不在是data guard 配置的一部分。

其他的逻辑/物理standby数据库不直接参与failover的过程,因此这些和数据库不需要做任何操作。

某些情况下,新的primary数据库配置之后,需要重新创建其他的所有的standby 数据库。

此处在select switchover_status from v$database当中,如果发现switchover_status的状态并不是to standby,而是

SWITCHOVER_STATUS

--------------------

FAILED DESTINATION

或者是

SWITCHOVER_STATUS

--------------------

RESOLVABLE GAP

或者是

SWITCHOVER_STATUS

--------------------

LOG SWITCH GAP

此处记住,第一种情况一定要排查监听是否开启,数据库参数文件是否配置正确。dg最重要的是监听文件,监听一定要开启,一定要写正确的数据库参数文件。

当发现有resolvable gap 的情况或者是log switch gap 的时候,一定要注意这种情况是因为当前日志没有写完,没有传到Standby数据库,所以需要alter system archive log current 切一次归档。

THAT'S ALL

BY CUI PEACE

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180725G11AGY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券