华为云云数据库rdsRDS for SQL Server如何解除和重建复制关系_云淘科技

场景描述

主备实例对用户的数据库会自动建立复制关系,用户创建或迁移上云的数据库一般会在几分钟内开始建立复制关系,完成的时间取决于数据库的大小。

有一些场景可能需要解除复制关系执行配置,然后再重新建立复制关系,如下所示。

临时解除复制关系。在修改数据库名称、设置快照隔离级别、设置数据库属性等操作需要临时解除复制关系。不然会有类似如下报错:

图1 报错信息

较长时间解除复制关系(不推荐)。有些库对性能要求极高吞吐量极大,需要不建立复制关系下工作等。

故障分析

存在部分alter database操作需要先解除数据库的复制关系,然后才能执行成功。

解决方案

暂时解除复制关系

非2017企业版的实例

执行如下SQL解除某个库的复制关系。

alter database [@DBName] set partner off

[@DBName]:指定需要解除复制关系的库名。

解除复制关系后的操作需要和该语句在一个批处理中执行,解除复制关系后,系统会尽快自动重建该库的复制关系,不需要手动执行SQL重建。

2017企业版的实例

执行存储过程将数据库移除可用性组。详细内容可参考将自定义数据库移出可用性组。

EXEC rdsadmin.dbo.rds_remove_database_from_ag '@DBName';

@DBName:需要移除的自定义数据库名称。

示例:

将数据库testDB_1从可用性组[AG-RDS-YUN]中移除。

EXEC rdsadmin.dbo.rds_remove_database_from_ag 'testDB_1';

解除复制关系并且要求不再自动建立(不推荐)

参考1,可以解除复制关系,如果不想让系统自动建立复制关系,可以将数据库的恢复模式(recovery model)改为Simple,参考如下两种方式。

登录SSMS(SQL Server Managerment Studio)客户端,选择目标数据库,右键属性,查看Recovery model,修改Recovery model为Simple。

执行SQL语句修改

alter database [db1] set recovery simple with no_wait

设置为Simple模式后不会产生增量备份,将不能进行表级时间点恢复。如果想恢复建立复制关系。需要将Recovery model 设置为full。

alter database [db1] set recovery full with no_wait

数据库auto close属性为True时不会建立复制关系,并且不会产生复制关系异常的告警。

需要将auto close属性关闭设置为False,才能重新自动建立复制关系。

alter database [db1] set auto_close off with no_wait

父主题: RDS for SQL Server

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家