我正在逐步了解如何使用手动播种设置分布式可用性组。我可以让自动播种工作,但是当我尝试手动播种时,我无法将辅助数据库放入转发器上的 AG。
如果我在尝试将数据库添加到常规 AG 之前将分布式 AG 添加到辅助服务器,则会收到以下消息:
Msg 41190, Level 16, State 7, Line 22
Availability group 'MYDB' failed to process add-database command. The local availability replica is not in a state that could process the command. Verify that the availability group is online and that the local availability replica is the primary replica, then retry the command.
如果我尝试先添加数据库而不加入辅助数据库上的分布式 AG,我会收到以下消息,因为它认为它应该是主数据库:
Msg 927, Level 14, State 2, Line 22
Database 'MYDB' cannot be opened. It is in the middle of a restore.
自动播种我没有这些问题。一切都神奇地起作用。我在网上找到的所有示例都使用自动播种。
提前致谢
TL;博士:
从当前的描述和评论看来,您可能在加入 DAG 之前已将数据库添加到前向 AG。而是先加入 DAG,然后按以下顺序添加数据库:
长(呃)形式的答案
假设很多事情,比如......
PRIMARY
和FORWARDER
FORWARDER
,准备播种...你可以...以下脚本的
sqlcmd
格式。步骤 0. 禁用日志备份
|OLD_AG|
(可选)如果出现以下情况,您可以忽略此步骤:
步骤 1. 创建 DAG
CREATE
一次在当前的主服务器和ALTER ... JOIN
未来的转发器上。作为适当的服务帐户执行,这样您就不会得到您的用户帐户拥有的部分架构。在当前
PRIMARY
...在未来
FORWARDER
...步骤 2. 完整备份
您知道您可以将日志备份附加到
copy_only
完整文件吗?直到最近我也没有!但是通过copy_only
在这里使用,您可以exec as
...这一步并不是绝对必要的。步骤 3. 恢复
再次,作为适当的服务帐户执行。
步骤 3(b)。您是否打开了日志备份?
Nbd,但现在追加它们¯\_(ツ)_/¯
with norecovery
步骤 4. 在 Forwarder 上,将 DB 加入新 AG
从分布式可用性组
分布式可用性组设计为使用自动播种作为在第二个可用性组上初始化主副本的主要方法。
如果您执行以下操作,则可以在第二个可用性组的主副本上进行完整的数据库还原:
WITH NORECOVERY
。SEEDING_MODE set to AUTOMATIC
.