通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 SSMS 配置连接 - Azure SQL 托管实例

applies to:Azure SQL 托管实例

了解如何使用 SQL Server Management Studio (SSMS) 在SQL Server和Azure SQL 托管实例之间配置 link。 该链接以近乎实时的方式将数据库从初始主副本复制到辅助副本。

创建链接后,可以故障转移到辅助副本进行迁移或灾难恢复。

注意

  • 还可以使用 脚本配置链接。
  • SQL Server 2022 CU100 开始,支持将Azure SQL 托管实例配置为初始主数据库。

概述

使用链接功能将初始主要副本中的数据库复制到次要副本。 对于 2022 SQL Server,初始主数据库可以是SQL Server或Azure SQL 托管实例。 对于 SQL Server 2019 和早期版本,初始主数据库必须SQL Server。 配置链接后,初始主副本中的数据库将复制到次要副本。

可以选择在主副本和辅助副本之间的混合环境中保留用于连续数据复制的链接,或者将数据库故障转移到辅助副本,以便迁移到 Azure 或用于灾难恢复。 对于 SQL Server 2019 和早期版本,故障切换到 Azure SQL 托管实例会中断链接,并且不支持故障回复。 在使用 SQL Server 2022 和 SQL Server 2025 时,可以选择维护链接并在两个副本之间进行切换。

如果计划仅使用辅助托管实例进行灾难恢复,可以通过激活混合故障转移权益来节省许可成本。

使用本文中的说明手动设置SQL Server和Azure SQL 托管实例之间的链接。 创建链接后,会在目标次要副本上创建源数据库的只读副本。

先决条件

若要通过链接将数据库复制到次要副本,需要满足以下先决条件:

考虑以下情况:

  • 链接功能支持每个链接有一个数据库。 若要从一个实例上复制多个数据库,请为每个单独的数据库创建一个链接。 例如,若要将 10 个数据库复制到SQL 托管实例,请创建 10 个单独的链接。
  • SQL Server和SQL 托管实例之间的排序规则应相同。 排列规则不匹配可能导致服务器名称大小写的不一致,并妨碍SQL Server与SQL托管实例成功建立连接。
  • 初始SQL Server主副本上的错误 1475 指示需要通过创建完整备份来启动新的备份链,而无需使用 COPY ONLY 选项。
  • 若要建立链接或故障转移, SQL 托管实例到 SQL Server 2025,必须使用 SQL Server 2025 更新策略 配置 SQL 托管实例。 配置了不匹配更新策略的实例不支持从 SQL 托管实例到 SQL Server 2025 的数据复制和故障转移。
  • 若要建立链接或故障转移, SQL 托管实例 到 SQL Server 2022,必须使用 SQL Server 2022 更新策略配置 SQL 托管实例。 配置了不一致更新策略的实例不支持从 SQL 托管实例到 SQL Server 2022 的数据复制和故障转移。
  • 虽然可以建立从受支持的 SQL Server 版本到使用 Always-up-to-date 更新策略配置的 SQL 托管实例的链接,但在故障转移到 SQL 托管实例后,无法复制数据或故障恢复到 SQL Server 实例。

权限

对于 SQL Server,需要 sysadmin 权限。

对于Azure SQL 托管实例,你需要是 SQL 托管实例 参与者角色的成员,或者具有以下自定义角色权限:

Microsoft.Sql/资源 必要的权限
Microsoft/Sql/managedInstances /read、/write
Microsoft.Sql/managedInstances/hybridCertificate /action
Microsoft。Sql/managedInstances/databases /read、/delete、/write、/completeRestore/action、/readBackups/action、/restoreDetails/read
Microsoft。Sql/managedInstances/distributedAvailabilityGroups /read、/write、/delete、/setRole/action
Microsoft。Sql/managedInstances/endpointCertificates /read
Microsoft.Sql/managedInstances/hybridLink /read、/write、/delete
Microsoft。Sql/managedInstances/serverTrustCertificates /write、/delete、/read

准备数据库

如果SQL Server是初始主数据库,则需要创建数据库的备份。 由于Azure SQL 托管实例自动执行备份,因此如果SQL 托管实例是初始主数据库,请跳过此步骤。

创建链接时,主要副本和次要副本之间的初始种子设定是通过在主副本上对数据库进行完整备份、将其传输到次要副本以及还原到该副本而进行的。 执行完整备份时,建议使用 WITH CHECKSUM 此选项来确保备份有效且没有任何损坏。 有关详细信息,请参阅 BACKUP (Transact-SQL)

使用 SSMS 在 SQL Server 上备份数据库。 执行以下步骤:

  1. 在 SQL Server Management Studio (SSMS) 中连接到SQL Server。
  2. 对象资源管理器 中,右键单击数据库,将鼠标悬停在 Tasks 上,然后选择 Back up
  3. 选择“完整”作为备份类型。
  4. 确保“备份到”选项具有指向有足够可用存储空间的磁盘的备份路径。
  5. (可选但推荐)在媒体选项选项卡上,选中写入媒体前执行校验和复选框,以便在创建备份后,SQL Server 验证备份的完整性。
  6. 选择确定以完成完整备份。

有关详细信息,请参阅创建完整数据库备份

注意

该链接仅支持复制用户数据库。 不支持复制系统数据库。 若要复制存储的 master 实例级对象,或者 msdb,请在目标实例上编写脚本并运行 T-SQL 脚本。

在以下步骤中,使用 SSMS 中的 New 托管实例 link 向导在初始主副本和辅助副本之间创建链接。

创建链接后,会在目标次要副本上创建源数据库的只读副本。

  1. 打开 SSMS 并连接到初始主服务器。

  2. 对象资源管理器 中,右键单击要链接到辅助数据库的数据库,将鼠标悬停在 Azure SQL 托管实例 link 上,然后选择 New...打开 New 托管实例 link 向导。 如果SQL Server版本不受支持,则该选项在右键菜单中不可用。

    显示数据库上下文菜单选项以创建新链接的屏幕截图。

  3. 在向导的“简介”页上,选择“下一步”。

  4. 在“ 指定链接选项” 页上,提供链接的名称。 如果选择多个数据库,向导会自动将数据库名称追加到你提供的名称的末尾,这样就不必自行包含该名称。 如果想要启用连接故障排除,请选中这些框;如果计划将链接用于双向灾难恢复,请选中SQL Server 2022 或 SQL Server 2025。 选择下一步

  5. 在“要求”页上,向导将验证与次要数据库建立链接所需满足的要求。 在验证所有要求后选择“下一步”,或解决未满足的任何要求,然后选择“重新运行验证”

  6. 在“选择数据库”页上,选择要通过链接复制到次要副本的数据库。 选择多个数据库会创建多个分布式可用性组,每个链接各创建一个。 选择下一步

  7. 在“ 指定辅助副本 ”页上,选择 “添加辅助副本 ”以添加辅助副本。 如果最初的主服务器是 SQL Server,此操作将打开到 Azure 的 Sign In 窗口。 如果您的初始主实例为 SQL 托管实例,此操作将打开 Connect to server 对话框。

    1. 对于 SQL Server 的初始主实例,先登录到 Azure,然后从下拉菜单中选择订阅、资源组和辅助 SQL 托管实例。 选择登录以打开连接到服务器对话框,然后连接到您希望将数据库复制到的SQL托管实例。 在 sign in 窗口中看到 Login 成功时,选择 OK 关闭窗口并返回到 New 托管实例 link 向导。
    2. 对于 SQL 托管实例的初始主实例,请连接到您希望将数据库复制到的 SQL Server 实例。

    注意

    若要建立指向已存在的可用性组的链接,请在“终结点”选项卡上的“终结点 URL”字段中,提供“指定辅助副本”页现有侦听器的 IP 地址。

  8. 添加次要副本后,请使用向导中的选项卡根据需要修改“终结点”设置,并查看有关备份和其余选项卡中的链接终结点的信息。 准备好继续操作时,选择“下一步”

  9. 如果 SQL 托管实例 是您的最初主实例,向导中的下一页是 Azure 登录 页。 如果需要,请再次登录,然后选择“下一步”。 当SQL Server是初始主数据库时,此页面不可用。

  10. 在“验证”页上,确保所有验证均已成功。 如有验证失败,请予以解决,然后重新运行验证。 准备就绪后,选择“下一步”

  11. 在“摘要”页上,再次查看你的配置。 或者,选择“脚本”以生成脚本,以便将来可以轻松地重新创建同一链接。 准备好创建链接后,选择“完成”

  12. “正在执行的操作”页显示每项操作的进度。

  13. 完成所有步骤后,“结果”页会在已成功完成的操作旁边显示复选标记。 现在可以关闭窗口。

查看复制的数据库

创建链接后,数据库将复制到次要副本。 根据数据库大小和网络速度,在次要副本上数据库最初可能处于“正在还原”状态。 完成初始数据设置后,数据库将恢复到次要副本,可以进行只读操作了。

在任何一个副本上,使用 SSMS 中的「对象资源管理器」查看复制数据库的「Synchronized」状态。

显示 SQL Server 数据库和分布式可用性组在 SSMS 中状态的截图。

展开“Always On 高可用性”和“可用性组”,以查看为每个链接创建的分布式可用性组。

Screenshot,显示SQL 托管实例数据库和分布式可用性组的状态。

无论哪个实例是主要实例,也可以右键单击SQL Server上链接的分布式可用性组,然后选择 Show Dashboard 以查看分布式可用性组的仪表板,其中显示了分布式可用性组中链接数据库的状态。

进行第一次事务日志备份

如果 SQL Server 是您的初始主数据库,请在初始种子设定完成后的 SQL Server 上进行第一个事务日志备份。 此时,数据库已不再处于 Azure SQL 托管实例的恢复中...状态。 然后,定期执行 SQL Server 事务日志备份以最大程度地减少SQL Server处于主要角色时过多的日志增长。

如果 SQL 托管实例是主实例,则您无需执行任何操作,因为 Azure SQL 托管实例会自动执行日志备份。

如果想要删除链接,要么因为不再需要链接,要么因为链接处于不可修复状态且需要重新创建,则可以使用 SQL Server Management Studio (SSMS) 执行此操作。

连接到实例后,可以从 SSMS 对象资源管理器 中的以下菜单选项中删除链接:

  • Always On 可用性组>可用性组> 右键单击与该链接关联的分布式可用性组名称,然后选择>删除...
  • 数据库> 右键单击与 >Azure SQL 托管实例链接> 相关的数据库,然后选择删除...

故障排除

如果在创建链接时遇到错误消息,请选择错误消息以打开一个窗口,其中包含有关错误的其他详细信息。

如果在处理链接时遇到错误,SSMS 向导会在失败的步骤中停止执行,并且无法重新启动它。 解决此问题。 如有必要,请通过删除在设置链接时创建的分布式可用性组和可用性组,以清理环境并恢复到原始状态。 然后再次启动向导以重新开始。

有关详细信息,请参阅 排查涉及链接的问题

若要使用链接,请参阅:

若要了解有关链接的详细信息,请参阅:

对于其他复制和迁移方案,请考虑: