首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅将A节点设置为受限模式。在AOAG实例中

仅将A节点设置为受限模式。在AOAG实例中
EN

Stack Overflow用户
提问于 2019-01-08 22:44:26
回答 1查看 87关注 0票数 1

我有一个AOAG实例,其中客户可以访问B节点(只读)以拉取报告。每隔一段时间,我们必须将A节点上的数据库置于受限模式以应用更新或修补程序,这反过来又会将B节点上的数据库设置为受限模式,从而导致客户报告失败。是否可以仅将A节点数据库设置为受限模式,而将B节点留给客户只读用户访问?

EN

回答 1

Stack Overflow用户

发布于 2019-01-09 05:18:41

我们必须时不时地将A节点上的数据库置于受限模式以应用更新或修补程序,这反过来又会将B节点上的数据库设置为受限模式,从而导致客户报告失败

这听起来像是一种数据库设计,您可以设置一个标志来将用户锁定在数据库之外。此DML事务将自然地复制到辅助数据库。对于像SQL Agent作业这样的作业,你可以通过sys.fn_hadr_is_paimary_replica有条件地执行作业,如果它是或不是主副本,但这不能有条件地执行像UPDATE语句这样的东西。

是否可以仅将A节点数据库设置为受限模式,而将B节点留给客户只读用户访问?

是。理想情况下,您只需运行以下代码:

代码语言:javascript
复制
ALTER DATABASE [your_database]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

但是这样你就会得到如下的错误:

无法对数据库"your_database“执行该操作,因为它涉及数据库镜像会话或可用性组。不允许对正在参与数据库镜像会话或可用性组的数据库执行某些操作。

因此,一些选项包括:

  • 从AG中删除辅助数据库,应用修补程序,读取辅助数据库并等待其更新
  • 将数据库的另一个拷贝恢复到服务器,供客户在宕机期间使用
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54094190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档