本主题介绍如何在 SQL Server 2012 SP1 及更高版本中使用 Transact-SQL,将 AlwaysOn 可用性组从 ONLINE 状态带到 OFFLINE 状态。 对于同步提交数据库没有数据丢失,因为如果任何同步提交副本未同步,OFFLINE 操作将引发错误并且保持可用性组处于 ONLINE 状态。 保持可用性组处于联机状态将保护未同步的同步提交数据库,以防可能的数据丢失。 可用性组脱机后,其数据库将不可用于客户端,并且您无法使可用性组重新联机。 因此,使某一可用性组处于脱机状态只会将该可用性组的资源从一个 WSFC 群集迁移到另一个 WSFC 群集。
在 AlwaysOn 可用性组的跨群集迁移过程中,如果任何应用程序直接连接到可用性组的主副本,则必须使可用性组脱机。 AlwaysOn 可用性组的跨群集迁移支持 OS 升级,同时尽量缩短可用性组的停机时间。 典型方案是使用 AlwaysOn 可用性组的跨群集迁移,以便将 OS 升级到 Windows 8 或 Windows Server 2012。 有关详细信息,请参阅 Os 升级的 AlwaysOn 可用性组的跨群集迁移。
在您开始之前
谨慎
仅在进行可用性组资源跨群集迁移时使用 OFFLINE 选项。
先决条件
输入 OFFLINE 命令的服务器实例必须运行 SQL Server 2012 SP1 或更高版本(企业版或更高版本)。
可用性组当前必须处于联机状态。
建议
在您使可用性组脱机之前,删除可用性组侦听器。 有关详细信息,请参阅删除可用性组侦听程序 (SQL Server)。
安全
权限
对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。
使用 Transact-SQL
使可用性组脱机
连接到为可用性组承载可用性副本的服务器实例。 此副本可以是主副本或辅助副本。
按如下所示使用 ALTER AVAILABILITY GROUP 语句:
ALTER AVAILABILITY GROUP group_name OFFLINE
其中, group_name 是可用性组的名称。
示例:
下面的示例将 AccountsAG
可用性组脱机。
ALTER AVAILABILITY GROUP AccountsAG OFFLINE;
跟进:在可用性组处于脱机状态后
OFFLINE 操作的日志记录:启动了 OFFLINE 操作的 WSFC 节点的标识存储于 WSFC 群集日志和 SQL ERRORLOG 中。
如果你在使可用性组脱机之前未删除该可用性组侦听程序:如果要将该可用性组迁移到其他 WSFC 群集,请删除该侦听程序的 VNN 和 VIP。 你可以通过使用故障转移群集管理控制台、 Remove-ClusterResource PowerShell cmdlet 或 cluster.exe删除侦听程序的 VNN 和 VIP。 请注意,在 Windows 8 上不推荐使用 cluster.exe。