我遇到了一个我无法解决的奇怪情况。我有一个运行 sql server 2016 标准的 2 节点 Basic AG。我正在尝试将报告服务器数据库添加到 AG,但在将数据库加入辅助节点时一直失败。
我做了以下事情:
- 完全恢复 node1(主)上的数据库,确保其处于完全恢复模式
- 进行了新备份,并在其后立即进行日志备份
- 将完整备份和日志备份都还原到 Node2(辅助),使其处于还原状态。
回到主节点,我通过 GUI 创建了一个 AG,但是当我走到最后时,它将数据库连接到 node2 中的 AG。我得到了一些不同的错误,这基本上意味着同样的事情:
“数据库“reportserver”的远程副本尚未前滚到本地副本中包含的时间点”
“镜像数据库“reportserver”没有足够的事务日志数据来保存日志备份链。”
我知道这些意味着应该是额外的日志备份来恢复,但在此之前我刚刚进行了完整的和日志备份并将它们都恢复到辅助服务器,所以应该没有其他备份来恢复......唯一的事情我能想到的是,有些东西仍在写入主日志,但据我所知,即使是这种情况,将数据库连接到 AG 仍应作为当前未备份的部分工作日志应在同步过程中流式传输到辅助副本。我暂时跳过了监听器配置。在执行此操作之前,我还停止了两个节点上的 SSRS 服务。
有没有人遇到过这个并成功修复它?是不是因为是reportserverDB,不能和reportservertempDB加入同一个AG?
我已经尝试过自动播种和仅加入模式,奇怪的是自动播种在 AG 设置期间没有给我任何错误,但数据库从未出现在 Node2 上。当我只加入时,即出现上述错误。我对此感到非常困惑。我在这些节点上有 6 个其他数据库,每个数据库都在他们自己的基本 AG 中,我没有遇到任何问题。
找到了答案,但仍然不明白为什么它有效。如果有人可以分享任何见解,将不胜感激。
将数据库添加到可用性组的问题
因此,在执行仅加入模式时,使用上面帖子中的答案不起作用。通过执行以下操作,我能够使其工作:
在 node2 上运行以下查询。他们因错误 41106 而失败
更改可用性组 [agname] 加入;GO ALTER AVAILABILITY GROUP [agname] GRANT CREATE ANY DATABASE;去
从节点 1 上的 AG 中删除 DB,然后使用 GUI 将其重新添加。
在此之后,数据库出现在 node2 上并且正确地在 AG 中。如果有人有信息,我很想了解为什么会这样。