适用于:SQL Server
您可以通过 SQL Server Management Studio、Transact-SQL 或 SQL Server 中的 PowerShell,恢复 Always On 可用性组中已挂起的可用性数据库。 恢复已挂起的数据库会将该数据库置于 SYNCHRONIZING 状态。 恢复主数据库时,还会恢复因主数据库被挂起而一同挂起的任何辅助数据库。 如果任何辅助数据库已在承载辅助副本的服务器实例上被本地挂起,则必须在本地恢复运行该辅助数据库。 一旦给定的辅助数据库和相应的主数据库处于 SYNCHRONIZING 状态,则在辅助数据库上将恢复数据同步。
注意
挂起和恢复 AlwaysOn 辅助数据库并不直接影响主数据库的可用性。 但是,暂停某一辅助数据库可能会在恢复这个暂停的辅助数据库之前影响主数据库的冗余和故障转移功能。 这与数据库镜像形成对比;在数据库镜像中,在恢复镜像之前,镜像状态会在镜像数据库和主体数据库上均被挂起。 挂起 Always On 主数据库会暂停所有对应辅助数据库上的数据移动,并且该数据库的冗余和故障转移功能都将停止,直到主数据库恢复为止。
限制和局限
RESUME 命令一旦被托管目标数据库的副本接受,即会返回,但数据库的实际恢复过程是异步进行的。
先决条件
- 您必须连接到承载要恢复的数据库的服务器实例。
- 可用性组必须处于联机状态。
- 主数据库必须处于联机状态且可用。
权限
需要对数据库拥有 ALTER 权限。
需要对可用性组具有 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。
使用 SQL Server Management Studio
恢复辅助数据库
在对象资源管理器中,连接到承载要恢复的数据库所在的可用性副本的服务器实例,然后展开服务器树。
展开 Always On 高可用性 节点和 可用性组 节点。
展开该可用性组。
展开“可用性数据库”节点,右键单击该数据库,然后单击“恢复数据移动”。
在 “恢复数据移动” 对话框中,单击 “确定” 。
注意
若要恢复此副本位置上的其他数据库,请对每个数据库重复执行步骤 4 和 5。
“使用 Transact-SQL”
恢复本地挂起的辅助数据库
连接到托管了包含要恢复的数据库的辅助副本的服务器实例。
使用以下 ALTER DATABASE 语句恢复辅助数据库:
ALTER DATABASE database_nameSET HADR 恢复;
使用 PowerShell
恢复辅助数据库
将目录 (cd) 更改为托管要恢复其数据库的副本的服务器实例。 有关详细信息,请参阅本主题前面的 先决条件。
使用 Resume-SqlAvailabilityDatabase cmdlet 恢复可用性组。
例如,下面的命令针对可用性组
MyDb3中的可用性数据库MyAg恢复数据同步。Resume-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3注意
若要查看 cmdlet 的语法,请在 PowerShell 环境中使用 Get-Help SQL Server cmdlet。 有关详细信息,请参阅 Get Help SQL Server PowerShell。
配置和使用 SQL Server PowerShell 提供程序