更新时间:2022-10-26 GMT+08:00
RDS for SQL Server规格变更或主备切换失败
场景描述
- 通过管理控制台下发规格变更时,右上角报错“当前实例数据库主备同步关系异常,无法执行该操作”。
- 通过管理控制台进行主备切换时,右上角报错“当前实例数据库主备同步关系异常,无法主备倒换”。
故障分析
可能是由于复制关系异常导致无法下发规格变更,可通过以下两种方式分析,任选其一即可。
- 方式1:通过查看监控指标(数据同步延迟)
- 登录管理控制台。
- 在“实例管理”页面,选择目标实例,单击操作列中的“查看监控指标”,跳转到云监控服务页面。
您也可以在“实例管理”页面,单击目标实例名称,在页面右上角,单击“查看监控指标”,跳转到云监控服务页面。
- 在云监控页面,可以查看实例的“数据同步延迟”指标,当出现数值过大例如99999表示复制关系异常。
- 方式2:通过SSMS(SQL Server Managerment Studio)查看
如下图1所示,正常建立复制关系的数据库状态会显示“Principal, Synchronized”例如 rdsadmin。
db1数据库没有复制状态,表示没有建立复制关系,则不能进行主备切换。也可能显示“Principal,Disconnected”表示复制关系中断,也不能进行主备切换。
如果是2017企业版,则数据库复制关系正常的会只显示“Synchronized”。
解决方案
当前存在数据库没有建立复制关系时如上图的db1数据库,需要检查数据库属性。
登录SSMS(SQL Server Managerment Studio)客户端,选择目标数据库,右键属性,查看Recovery model和Auto Close属性值。
图2 查看属性
- 如果Recovery model是Simple模式,则不会建立复制关系,需要改成full模式,通过SSMS设置,或者执行如下SQL语句修改
ALTER DATABASE [database_name] SET RECOVERY FULL WITH NO_WAIT
[database_name]:填写数据库名.
示例:
ALTER DATABASE [db1] SET RECOVERY FULL WITH NO_WAIT
- 如果Auto Close属性是True,也不会建立复制关系,需要关闭Auto Close属性,通过SSMS设置,或者执行如下SQL语句修改
ALTER DATABASE [db1] SET AUTO_CLOSE OFF WITH NO_WAIT
修改完成后,等待建立复制关系,一般几分钟就会自动开始建立复制关系,建立时间取决于数据库的大小。
等待复制关系建立完成后即可重新执行规格变更或主备切换操作。
父主题: RDS for SQL Server