我有一个不可读的数据库 (DB1),因为它在 AG 组中是次要的。
我有另一个未与 AG 组一起复制的数据库 (DB2)。它包含一些引用第一个数据库的视图。我需要定期改变一些观点。
错误是:
消息 976,级别 14,状态 1,过程 vw_xxx,第 4 行 [批处理开始第 9 行] 目标数据库“DB1”正在参与可用性组,当前无法访问查询。数据移动已暂停,或者可用性副本未启用读取访问。要允许对该可用性组中的此数据库和其他数据库进行只读访问,请启用对该组中一个或多个辅助可用性副本的读取访问权限。有关详细信息,请参阅 SQL Server 联机丛书中的 ALTER AVAILABILITY GROUP 语句。”
我没有这些选项:
- 启用可读辅助(缺少许可证)
- AG 故障转移(这是一个 DR 站点)
- 将 DB2 添加到同一个 AG(太大,我只想复制模式而不是数据)
是否有其他选择?
我有 3 个 AG 节点。DR 不可读,因为它缺少可读的活动许可证。ALTER VIEW
发生在 DR 站点的 DB2 上,在该实例中引用 DB1 。我正在更改视图,因为我正在该 DR 站点中使用 dacpac 部署更改。我没有以主动方式覆盖该 DR 站点的许可证。
能否在每个引用 AG 侦听器的 AG 节点上创建链接服务器?
然后,您可以更改视图以使用 4 部分命名通过链接服务器查询 DB1,而不是使用 3 部分命名查询 DB1。那么您应该不会遇到此错误,因为链接服务器将重定向到 AG 主服务器。