恢复可用性数据库 (SQL Server)

您可以通过使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 2012 中的 PowerShell,在 AlwaysOn 可用性组 中恢复已挂起的可用性数据库。 恢复挂起的数据库会将数据库置于 SYNCHRONIZING 状态。 恢复主数据库还将恢复挂起主数据库时导致挂起的任何辅助数据库。 如果任何辅助数据库是从承载辅助副本的服务器实例中本地挂起的,则该辅助数据库必须进行本地恢复。 一旦给定的辅助数据库和相应的 master 数据库处于 SYNCHRONIZING 状态,则在辅助数据库上将恢复数据同步。

注意注意

暂停和恢复 AlwaysOn 辅助数据库并不直接影响主数据库的可用性。 但是,暂停某一辅助数据库可能会在恢复这个暂停的辅助数据库之前影响主数据库的冗余和故障切换功能。 这与数据库镜像相反,在数据库镜像中,在恢复镜像前镜像状态在镜像数据库和主数据库上都挂起。 挂起 AlwaysOn 主数据库将挂起所有相应辅助数据库上的数据移动,并且在恢复主数据库前针对该数据库的冗余和故障转移功能将停止。

  • 开始之前:  

    限制和局限

    必备条件

    安全性

  • 若要恢复辅助数据库,请使用:  

    SQL Server Management Studio

    Transact-SQL

    PowerShell

  • 相关任务

开始之前

限制和局限

RESUME 命令只要被承载目标数据库的副本接受后就返回,但是实际上恢复数据库以异步方式发生。

必备条件

  • 您必须连接到承载要恢复的数据库的服务器实例。

  • 可用性组必须联机。

  • 主数据库必须处于联机状态且可用。

安全性

权限

需要对数据库具有 ALTER 权限。

对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

用于“返回首页”链接的箭头图标[返回页首]

使用 SQL Server Management Studio

恢复辅助数据库

  1. 在对象资源管理器中,连接到承载要恢复的数据库所在的可用性副本的服务器实例,然后展开服务器树。

  2. 依次展开**“AlwaysOn 高可用性”节点和“可用性组”**节点。

  3. 展开该可用性组。

  4. 展开**“可用性数据库”节点,右键单击该数据库,然后单击“恢复数据移动”**。

  5. 在**“恢复数据移动”对话框中,单击“确定”**。

注意注意

若要恢复此副本位置上的其他数据库,请对每个数据库重复执行步骤 4 和 5。

用于“返回首页”链接的箭头图标[返回页首]

使用 Transact-SQL

恢复本地挂起的辅助数据库

  1. 连接到承载想要恢复其数据库的辅助副本的服务器实例。

  2. 通过使用下面的 ALTER DATABASE 语句恢复辅助数据库:

    ALTER DATABASE database_name SET HADR RESUME

用于“返回首页”链接的箭头图标[返回页首]

使用 PowerShell

恢复辅助数据库

  1. 将目录 (cd) 更改为承载要恢复的数据库所在副本的服务器实例。 有关详细信息,请参阅本主题前面的先决条件。

  2. 使用 Resume-SqlAvailabilityDatabase cmdlet 恢复可用性组。

    例如,下面的命令针对可用性组 MyAg 中的可用性数据库 MyDb3 恢复数据同步。

    Resume-SqlAvailabilityDatabase ` 
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3
    
    注意注意

    若要查看 cmdlet 的语法,请在 SQL Server PowerShell 环境中使用 Get-Help cmdlet。 有关详细信息,请参阅获取 SQL Server PowerShell 帮助

设置和使用 SQL Server PowerShell 提供程序

用于“返回首页”链接的箭头图标[返回页首]

相关任务

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)