更改 SQL Server 中现有的 AlwaysOn 可用性组。              只有当前主副本支持大多数 ALTER AVAILABILITY GROUP 参数。 但是,只有辅助副本支持 JOIN、FAILOVER 和 FORCE_FAILOVER_ALLOW_DATA_LOSS 参数。

 

适用范围:SQL Server(SQL Server 2012 到当前版本)。

Transact-SQL 语法约定

      
ALTER AVAILABILITY GROUP group_name
{
     SET ( <set_option_spec> )
   | ADD DATABASE database_name
   | REMOVE DATABASE database_name
   | ADD REPLICA ON <add_replica_spec>
| MODIFY REPLICA ON <modify_replica_spec>
   | REMOVE REPLICA ON <server_instance>
| JOIN
   | FAILOVER
| FORCE_FAILOVER_ALLOW_DATA_LOSS   | ADD LISTENER ‘dns_name’ ( <add_listener_option> )
   | MODIFY LISTENER ‘dns_name’ ( <modify_listener_option> )
   | RESTART LISTENER ‘dns_name’
   | REMOVE LISTENER ‘dns_name’
| OFFLINE
}
[ ; ] <set_option_spec> ::=
AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }
| FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }
| HEALTH_CHECK_TIMEOUT = milliseconds  <server_instance> ::=
 { 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' } <add_replica_spec>::=
  <server_instance> WITH
(
ENDPOINT_URL = 'TCP://system-address:port',
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT },
FAILOVER_MODE = { AUTOMATIC | MANUAL }
       [ , <add_replica_option> [ ,...n ] ]
)   <add_replica_option>::=
BACKUP_PRIORITY = n
| SECONDARY_ROLE ( {
          ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }
        | READ_ONLY_ROUTING_URL = 'TCP://system-address:port'
          } )
| PRIMARY_ROLE ( {
          ALLOW_CONNECTIONS = { READ_WRITE | ALL }
        | READ_ONLY_ROUTING_LIST = { ( ‘<server_instance>’ [ ,...n ] ) | NONE }
          } )
| SESSION_TIMEOUT = seconds  <modify_replica_spec>::=
  <server_instance> WITH
(
ENDPOINT_URL = 'TCP://system-address:port'
| AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
| FAILOVER_MODE = { AUTOMATIC | MANUAL }
| BACKUP_PRIORITY = n
| SECONDARY_ROLE ( {
          ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }
        | READ_ONLY_ROUTING_URL = 'TCP://system-address:port'
          } )
| PRIMARY_ROLE ( {
          ALLOW_CONNECTIONS = { READ_WRITE | ALL }
        | READ_ONLY_ROUTING_LIST = { ( ‘<server_instance>’ [ ,...n ] ) | NONE }
          } )
| SESSION_TIMEOUT = seconds 
)  <add_listener_option> ::=
   {
      WITH DHCP [ ON ( <network_subnet_option> ) ]
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]
   }   <network_subnet_option> ::=
     ‘four_part_ipv4_address’, ‘four_part_ipv4_mask’   <ip_address_option> ::=
     {
        ‘four_part_ipv4_address’, ‘four_part_ipv4_mask’
      | ‘ipv6_address’
     } <modify_listener_option>::=
    {
       ADD IP ( <ip_address_option> )
     | PORT = listener_port
    }
group_name       

指定新可用性组的名称。 group_name 必须是一个有效的 SQL Server 标识符,并且它必须在 WSFC 群集的所有可用性组中保持唯一。

AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }  

指定在选择执行备份的位置时有关备份作业应该如何评估主副本的首选项。 您可以编写给定备份作业的脚本,以便纳入自动备份首选项。 SQL Server 不会强制执行首选项,因此它对即席备份没有影响,了解这一点很重要。

仅在主副本上支持。

这些值如下所示:

PRIMARY      

指定备份应该始终在主副本上发生。 如果您需要在对辅助副本运行备份时不支持的备份功能,例如创建差异备份,此选项将很有用。

                 重要提示              

如果您计划使用日志传送为可用性组准备任何辅助数据库,请将自动备份首选项设置为“主要”,直到准备好所有辅助数据库并将其加入可用性组。

SECONDARY_ONLY      

指定备份应该永远不会在主副本上执行。 如果主副本是唯一的联机副本,则备份应不会发生。

SECONDARY      

指定备份应在辅助副本上发生,但在主副本是唯一联机的副本时除外。 在该情况下,备份应在主副本上发生。 这是默认行为。

NONE      

指定您希望在选择要执行备份的副本时备份作业将忽略可用性副本的角色。 请注意,备份作业可能评估其他因素,例如每个可用性副本的备份优先级及其操作状态和已连接状态。

             重要提示          

没有强制的 AUTOMATED_BACKUP_PREFERENCE 设置。 对此首选项的解释依赖于您为给定可用性组中的数据库撰写作业脚本的逻辑(如果有)。 自动备份首选项设置对即席备份没有影响。 有关详细信息,请参阅配置可用性副本备份 (SQL Server)

             注意          

若要查看现有可用性组的自动备份首选项,请选择 sys.availability_groups 目录视图的 automated_backup_preferenceautomated_backup_preference_desc 列。 此外,sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) 还可以用于确定首选备份副本。 此函数始终对至少一个副本返回 1(即使 AUTOMATED_BACKUP_PREFERENCE = NONE)。

FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }  

指定将为此可用性组触发自动故障转移的失败条件。 FAILURE_CONDITION_LEVEL 在组级别设置,但仅针对为同步-提交可用性模式 (AVAILIBILITY_MODE = SYNCHRONOUS_COMMIT) 配置的可用性副本。 此外,只有在主副本和辅助副本均配置为自动故障转移模式 (FAILOVER_MODE = AUTOMATIC) 并且辅助副本当前与主副本同步的情况下,失败条件才可以触发自动故障转移。

仅在主副本上支持。

失败条件级别的范围 (1–5) 是从最少限制的级别 1 到最多限制的级别 5。 给定的条件级别包含所有限制较少的级别。 因此,最严格的条件级别 5 包含四个限制较少的级别 (1-4),级别 4 包含级别 1-3,依此类推。 下表介绍了与各级别相对应的失败条件。

 

级别

失败条件

1

指定在发生以下任何情况时应启动自动故障转移:

2

指定在发生以下任何情况时应启动自动故障转移:

  • SQL Server 的实例未连接到群集,并且超出了可用性组的用户指定的 HEALTH_CHECK_TIMEOUT 阈值。

  • 可用性副本处于失败状态。

3

指定在发生了严重的 SQL Server 内部错误(例如孤立的自旋锁、严重的写访问冲突或过多的转储)时应启动自动故障转移。

这是默认行为。

4

指定在发生了中等程度的 SQL Server 内部错误(例如在 SQL Server 内部资源池中出现持久的内存不足情况)时应启动自动故障转移。

5

指定在出现任何符合的失败条件时应启动自动故障转移,这些失败条件包括:

  • SQL 引擎的工作线程耗尽。

  • 检测到无法解决的死锁。

             注意          

缺少 SQL Server 的实例对客户端请求的响应与可用性组无关。

FAILURE_CONDITION_LEVEL 和 HEALTH_CHECK_TIMEOUT 值为给定组定义“灵活的故障转移策略”。 此灵活的故障转移策略向您提供对必须导致自动故障转移的条件的精确控制。 有关详细信息,请参阅针对可用性组的自动故障转移的灵活的故障转移策略 (SQL Server)

HEALTH_CHECK_TIMEOUT = milliseconds  

指定在 WSFC 群集假定服务器实例速度较慢或挂起前,等待 sp_server_diagnostics 系统存储过程返回服务器运行状况信息的等待时间(毫秒)。 HEALTH_CHECK_TIMEOUT 在组级别设置,但仅针对为具有自动故障转移的同步-提交可用性模式 (AVAILIBILITY_MODE = SYNCHRONOUS_COMMIT) 配置的可用性副本。 此外,只有在主副本和辅助副本均配置为自动故障转移模式 (FAILOVER_MODE = AUTOMATIC) 并且辅助副本当前与主副本同步的情况下,运行状况检查超时才可以触发自动故障转移。

默认的 HEALTH_CHECK_TIMEOUT 值为 30000 毫秒(30 秒)。 最小值为 15000 毫秒(15 秒),最大值为 4294967295 毫秒。

仅在主副本上支持。

             重要提示          

sp_server_diagnostics 在数据库级别不执行运行状况检查。

ADD DATABASE database_name  

指定要添加到可用性组的一个或多个用户数据库的列表。 这些数据库必须位于承载当前主副本的 SQL Server 实例上。 您可以为一个可用性组指定多个数据库,但每个数据库只能属于一个可用性组。 有关可用性组可支持的数据库类型的信息,请参阅针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server)。 若要找出已属于某个可用性组的本地数据库,请参阅 sys.databases 目录视图中的 replica_id 列。

仅在主副本上支持。

             注意          

在创建可用性组后,将需要连接到承载辅助副本的每个服务器实例,然后准备每个辅助数据库并将它们加入可用性组。 有关详细信息,请参阅启动 AlwaysOn 辅助数据库的数据移动 (SQL Server)

REMOVE DATABASE database_name  

从可用性组中删除指定的主数据库和相应的辅助数据库。 仅在主副本上支持。

有关在从可用性组中删除可用性数据库之后推荐执行的后续任务的信息,请参阅从可用性组中删除主数据库 (SQL Server)

ADD REPLICA ON  

指定一到四个 SQL Server 实例以便在可用性组中承载辅助副本。 通过在每个副本的服务器实例地址后追加 WITH (…) 子句来指定每个副本。

仅在主副本上支持。

您需要将每个新的辅助副本联接到可用性组。 有关详细信息,请参阅本节后面对 JOIN 选项的说明。

<server_instance>  

指定承载副本的 SQL Server 实例的地址。 地址格式依赖于该实例是默认实例还是命名实例以及它是独立实例还是故障转移群集实例 (FCI)。 语法如下:

{ 'system_name[\instance_name]' |'FCI_network_name[\instance_name]' }

此地址由以下部分组成:

system_name               

SQL Server 的目标实例所在的计算机系统的 NetBIOS 名称。 此计算机必须是一个 WSFC 节点。

FCI_network_name               

用于访问 SQL Server 故障转移群集的网络名称。 如果服务器实例作为 SQL Server 故障转移伙伴参与,则使用此名称。 在 FCI 服务器实例上执行 SELECT @@SERVERNAME 将返回其完整的 'FCI_network_name[\instance_name]' 字符串(即完整的副本名称)。

instance_name               

由 system_name 或 FCI_network_name 承载且已启用 AlwaysOn 的 SQL Server 实例的名称。 对于默认服务器实例,instance_name 是可选的。 此实例名不区分大小写。 在独立服务器实例上,此值名称与执行 @@SERVERNAME 所返回的值相同。

\      

仅在指定 instance_name 时才使用的分隔符,用来将该名称与 system_name 或 FCI_network_name 区分开来。

有关 WSFC 节点和服务器实例的先决条件的信息,请参阅 针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server)

ENDPOINT_URL = 'TCP://system-address:port'  

指定 SQL Server 实例(该实例将承载您要添加或修改的可用性副本)的数据库镜像端点的 URL 路径。

ENDPOINT_URL 在 ADD REPLICA ON 子句中是必需的,在 MODIFY REPLICA ON 子句中是可选的。 有关详细信息,请参阅在添加或修改可用性副本时指定端点 URL (SQL Server)

'TCP://system-address:port'  

指定一个 URL,它用于指定端点 URL 或只读路由 URL。 URL 参数如下所示:

system-address               

一个字符串,例如系统名称、完全限定的域名或 IP 地址,它们明确标识了目标计算机系统。

port               

是与服务器实例的镜像端点关联的端口号(对于 ENDPOINT_URL 选项)或服务器实例的数据库引擎使用的端口号(对于 READ_ONLY_ROUTING_URL 选项)。

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }  

指定在主副本可以在给定主数据库上提交事务前,是否必须等待辅助副本确认日志记录硬编码(写入)到磁盘。 针对同一主副本上不同数据库的事务可以单独提交。

SYNCHRONOUS_COMMIT      

指定主副本已在此辅助副本上进行硬编码(同步提交模式)前,将等待提交事务。 您可以为最多三个副本(包括主副本)指定 SYNCHRONOUS_COMMIT。

ASYNCHRONOUS_COMMIT      

指定主副本无需等待此辅助副本对日志进行硬编码(同步提交可用性模式)即可提交事务。 您可以为最多五个可用性副本(包括主副本)指定 ASYNCHRONOUS_COMMIT。

AVAILABILITY_MODE 在 ADD REPLICA ON 子句中是必需的,在 MODIFY REPLICA ON 子句中是可选的。 有关详细信息,请参阅可用性模式(AlwaysOn 可用性组)

FAILOVER_MODE = { AUTOMATIC | MANUAL }  

指定您要定义的可用性副本的故障转移模式。

AUTOMATIC      

启用自动故障转移。 仅在指定 VAILABILITY_MODE = SYNCHRONOUS_COMMIT 的情况下才支持 AUTOMATIC。 您可以为最多两个可用性副本(包括主副本)指定 AUTOMATIC。

                 注意              

SQL Server 故障转移群集实例 (FCI) 不支持通过可用性组来自动进行故障转移,因此,只能为手动故障转移配置任何由 FCI 承载的可用性副本。

MANUAL      

允许数据库管理员手动故障转移或强制手动故障转移(“强制故障转移”)。

FAILOVER_MODE 在 ADD REPLICA ON 子句中是必需的,在 MODIFY REPLICA ON 子句中是可选的。 存在在不同条件下支持的两种手动故障转移,没有数据丢失的手动故障转移和强制故障转移(可能存在数据丢失)。 有关详细信息,请参阅故障转移和故障转移模式(AlwaysOn 可用性组)

BACKUP_PRIORITY =n  

指定相对于同一可用性组中的其他副本,在此副本上执行备份的优先级。 该值是范围 0..100 中的整数。 这些值将具有以下含义:

  • 1..100 表示可被选择来执行备份的可用性副本。 1 表示最低优先级,100 表示最高优先级。 如果 BACKUP_PRIORITY = 1,则只有在没有更高的优先级可用性副本当前可用的情况下,才会选择可用性副本来执行备份。

  • 0 表示此可用性副本将永远不会被选择执行备份。 例如,这对于您永远不希望备份故障转移到的远程可用性副本十分有用。

有关详细信息,请参阅活动辅助副本:辅助副本备份(AlwaysOn 可用性组)

SECONDARY_ROLE ()  

指定在此可用性副本当前拥有辅助角色(即它是辅助副本)时将要生效的角色特有设置。 在括号内指定一个或两个辅助角色选项。 如果指定两个选项,则使用以逗号分隔的列表。

辅助角色选项如下所示:

ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }      

指定给定的可用性副本(正在执行辅助角色,也就是充当辅助副本)的数据库是否可以接受来自客户端的连接,可以是以下之一:

NO          

不允许与此副本的辅助数据库的用户连接。 它们不可用于读访问。 这是默认行为。

READ_ONLY          

只允许连接 Application Intent 属性设置为 ReadOnly 的辅助副本中的数据库。 有关此属性的详细信息,请参阅将连接字符串关键字用于 SQL Server Native Client

ALL          

允许针对辅助副本中的数据库的所有连接进行只读访问。

有关详细信息,请参阅活动辅助副本:可读辅助副本(AlwaysOn 可用性组)

READ_ONLY_ROUTING_URL = 'TCP://system-address:port'      

指定要用于此可用性副本的路由读意向连接请求的 URL。 这是 SQL Server 数据库引擎侦听的 URL。 通常,SQL Server 数据库引擎的默认实例侦听 TCP 端口 1433。

对于命名实例,您可以通过查询 sys.dm_tcp_listener_states 动态管理视图的 porttype_desc 列来获取端口号。 服务器实例使用 Transact-SQL 侦听器 (type_desc='TSQL')。

有关计算可用性副本的只读路由 URL 的详细信息,请参阅计算 AlwaysOn 的 read_only_routing_url

                 注意              

对于 SQL Server 的命名实例,应将 Transact-SQL 侦听器配置为使用特定端口。 有关详细信息,请参阅配置服务器以侦听特定 TCP 端口(SQL Server 配置管理器)

PRIMARY_ROLE ()  

指定在此可用性副本当前拥有主角色(即它是主副本)时将要生效的角色特有设置。 在括号内指定一个或两个主角色选项。 如果指定两个选项,则使用以逗号分隔的列表。

主角色选项如下所示:

ALLOW_CONNECTIONS = { READ_WRITE | ALL }      

指定给定的可用性副本(正在执行主要角色,也就是充当主副本)的数据库可以接受的来自客户端的连接类型,可以是以下之一:

READ_WRITE          

不允许 Application Intent 连接属性设置为 ReadOnly 的连接。 在 Application Intent 属性设置为 ReadWrite 或者未设置 Application Intent 连接属性时,将允许连接。 有关 Application Intent 连接属性的详细信息,请参阅将连接字符串关键字用于 SQL Server Native Client

ALL          

主副本中的数据库允许所有连接。 这是默认行为。

READ_ONLY_ROUTING_LIST = { (<server_instance> [ ,...n ] ) | NONE }      

指定一个以逗号分隔的服务器实例列表,这些实例承载在以辅助角色运行时满足以下要求的此可用性组的可用性副本:

  • 被配置为允许所有连接或只读连接(参阅上文 SECONDARY_ROLE 选项的 ALLOW_CONNECTIONS 参数)。

  • 定义了只读路由 URL(参阅上文 SECONDARY_ROLE 选项的 READ_ONLY_ROUTING_URL 参数)。

READ_ONLY_ROUTING_LIST 的值如下:

<server_instance>          

指定承载可用性副本的 SQL Server 实例的地址,该副本在以辅助角色运行时是可读辅助副本。

使用以逗号分隔的列表指定可能承载可读辅助副本的所有服务器实例。 只读路由将遵循在列表中指定服务器实例的顺序。 如果在副本的只读路由列表中包含副本的宿主服务器实例,通常将此服务器实例放在列表末尾比较好,这样在一个辅助副本可用时读意向连接将访问它。

NONE          

指定此可用性副本为主副本时将不支持只读路由。 这是默认行为。 与 MODIFY REPLICA ON 一起使用时,此值将禁用现有列表(如果有)。

SESSION_TIMEOUT =seconds  

以秒为单位指定会话超时期限。 如果不指定此选项,则在默认情况下,超时期限为 10 秒。 最小值为 5 秒。

             重要提示          

我们建议您将超时期限保持为 10 秒或更长。

有关会话超时期限的详细信息,请参阅 AlwaysOn 可用性组概述 (SQL Server)

MODIFY REPLICA ON  

修改可用性组的任何副本。 要修改的副本列表包含每个副本的服务器实例地址和 WITH (…) 子句。

仅在主副本上支持。

REMOVE REPLICA ON  

从可用性组中删除指定的辅助副本。 不能从可用性组删除当前的主副本。 在删除时,副本停止接收数据。 其辅助数据库从可用性组中删除,并且进入 RESTORING 状态。

仅在主副本上支持。

             注意          

如果您在某一副本处于不可用或失败状态时删除该副本,则在其恢复联机状态时,将会发现不再属于该可用性组。

JOIN  

导致本地服务器实例承载指定可用性组中的辅助副本。

仅在尚未加入可用性组的辅助副本上支持。

有关详细信息,请参阅将辅助副本联接到可用性组 (SQL Server)

FAILOVER  

启动可用性组的手动故障转移,并且没有对您连接到的辅助副本的数据丢失。 对其输入故障转移目标故障转移命令的副本称为“故障转移目标”。 故障转移目标将接管主要角色,恢复各数据库的副本并且使它们作为新的主数据库处于联机状态。 以前的主副本同时转换为辅助角色,并且其数据库将成为辅助数据库且立即挂起。 在发生一系列故障后,这些角色可能来回切换。

仅在当前与主副本同步的同步提交辅助副本上支持。 请注意,对于要同步的辅助副本,主副本也必须在同步提交模式下运行。

             注意          

故障转移命令将在故障转移目标接受它之后立即返回。 但是,在可用性组完成故障转移之后,数据库恢复操作将以异步方式执行。

有关执行计划的手动故障转移的限制、先决条件和建议的信息,请参阅执行可用性组的计划手动故障转移 (SQL Server)

FORCE_FAILOVER_ALLOW_DATA_LOSS  
             注意          

强制故障转移(这可能会涉及一些数据丢失)严格来说是一种灾难恢复方法。 因此,我们强烈建议您仅在以下情况下才强制故障转移:主副本不再运行、您愿意承担丢失数据的风险并且您必须立即将服务还原到可用性组。

仅在其角色处于 SECONDARY 或 RESOLVING 状态的副本上支持。 --对其输入故障转移命令的副本称为“故障转移目标”。

强制将可用性组故障转移到故障转移目标(可能会丢失数据)。 故障转移目标将接管主要角色,恢复各数据库的副本并且使它们作为新的主数据库处于联机状态。 在剩余的任何辅助副本上,在手动恢复前每个辅助数据库都处于挂起状态。 在以前的主副本可用前,它将切换到辅助角色,并且其数据库将成为挂起的辅助数据库。

             注意          

故障转移命令将在故障转移目标接受它之后立即返回。 但是,在可用性组完成故障转移之后,数据库恢复操作将以异步方式执行。

有关强制故障转移的限制、必备条件和建议的信息,以及强制故障转移对可用性组中以前的主数据库的影响,请参阅执行可用性组的强制手动故障转移 (SQL Server)

ADD LISTENER dns_name( <add_listener_option> )  

为此可用性组定义新的可用性组侦听器。 仅在主副本上支持。

             重要提示          

在创建第一个侦听器之前,我们强烈建议您阅读创建或配置可用性组侦听器 (SQL Server)

为给定可用性组创建侦听器后,我们强烈建议您执行以下操作:

  • 请求您的网络管理员将该侦听器的 IP 地址保留为专用。

  • 将该侦听器的 DNS 主机名提供给应用程序开发人员,以便在请求与此可用性组的客户端连接时用于连接字符串中。

dns_name       

指定可用性组侦听器的 DNS 主机名。 在域和 NetBIOS 中,侦听器的 DNS 名称必须唯一。

dns_name 是一个字符串值。 该名称只能包含字母数字字符、破折号 (-) 和连字符 (_),顺序不分先后。 DNS 主机名不区分大小写。 最大长度为 63 个字符。

我们建议您指定一个有意义的字符串。 例如,对于名为 AG1的可用性组,有意义的 DNS 主机名将是 ag1-listener。

             重要提示          

NetBIOS 只识别 dns_name 中的前 15 个字符。 如果您的两个 WSFC 群集均由同一 Active Directory 控制,而您试图使用超过 15 个字符的名称(具有相同的 15 字符前缀)在这两个群集中创建可用性组侦听器,此时您将收到错误,报告无法使虚拟网络名称资源联机。 有关 DNS 名称的前缀命名规则的信息,请参阅分配域名

<add_listener_option>  

ADD LISTENER 采用以下选项之一:

WITH DHCP [ ON { (four_part_ipv4_address,four_part_ipv4_mask) } ]      

指定可用性组侦听器将使用动态主机配置协议 (DHCP)。 或者,使用 ON 子句标识将在其上创建此侦听器的网络。 DHCP 限制为单个子网,该子网用于在可用性组中承载可用性副本的每个服务器实例。

                 重要提示              

不建议在生产环境中使用 DHCP。 如果停止工作且 DHCP IP 租期已到,则需要额外的时间来注册与侦听器 DNS 名称相关联且影响客户端连接的新 DHCP 网络 IP 地址。 但是,DHCP 适合用于设置开发和测试环境以验证可用性组的基本功能并适合与应用程序集成。

例如:

WITH DHCP ON ('10.120.19.0','255.255.254.0')

WITH IP ( { (four_part_ipv4_address,four_part_ipv4_mask)(ipv6_address) } [ , ...n ] )  [ , PORT =listener_port ]      

指定可用性组侦听器将使用一个或多个静态 IP 地址,而不使用 DHCP。 若要跨多个子网创建一个可用性组,每个子网均需要一个侦听器配置中的静态 IP 地址。 对于某一给定子网,静态 IP 地址可以是 IPv4 地址或 IPv6 地址。 请与您的网络管理员联系以获取将承载新可用性组的可用性副本的每个子网的静态 IP 地址。

例如:

WITH IP ( ('10.120.19.155','255.255.254.0') )

four_part_ipv4_address       

指定可用性组侦听器的由四部分组成的 IPv4 地址。 例如,10.120.19.155。

four_part_ipv4_mask       

指定可用性组侦听器的由四部分组成的 IPv4 掩码。 例如,255.255.254.0。

ipv6_address       

指定可用性组侦听器的 IPv6 地址。 例如,2001::4898:23:1002:20f:1fff:feff:b3a3。

PORT =listener_port  

指定要由通过 WITH IP 子句指定的可用性组侦听器使用的端口号 listener_port。 PORT 是可选的。

支持默认端口号 1433。 但出于安全考虑,我们建议使用其他端口号。

例如:WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777

MODIFY LISTENER dns_name  ( <modify_listener_option> )  

修改此可用性组的现有可用性组侦听器。 仅在主副本上支持。

<modify_listener_option>  

MODIFY LISTENER 采用以下选项之一:

ADD IP { (four_part_ipv4_address,  four_part_ipv4_mask)(dns_nameipv6_address) }      

将指定的 IP 地址添加到由 dns_name 指定的可用性组侦听器。

PORT =listener_port      

请参阅本节前面对此参数的说明。

RESTART LISTENER dns_name  

重新启动与指定的 DNS 名称关联的侦听器。 仅在主副本上支持。

REMOVE LISTENER dns_name  

删除与指定的 DNS 名称关联的侦听器。 仅在主副本上支持。

OFFLINE  

使联机的可用性组脱机。 同步提交数据库没有数据丢失。

在某一可用性组脱机后,其数据库将不可用于客户端,并且您无法使该可用性组重新联机。 因此,在将可用性组资源迁移到新 WSFC 群集时,仅在 AlwaysOn 可用性组 的跨群集迁移过程中使用 OFFLINE 选项。

有关详细信息,请参阅 使可用性组脱机 (SQL Server)

   [返回页首]

有关针对可用性副本及其宿主服务器实例和计算机的先决条件和限制的信息,请参阅针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server)

有关针对 AVAILABILITY GROUP Transact-SQL 语句的限制的信息,请参阅 AlwaysOn 可用性组的 Transact-SQL 语句概述 (SQL Server)

权限

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

A.将辅助副本联接到可用性组

下面的示例联接连接到 AccountsAG可用性组的辅助副本。

        
ALTER AVAILABILITY GROUP AccountsAG JOIN;
GO

B.强制可用性组的故障转移

下面的示例强制 AccountsAG可用性组故障转移到您所连接的辅助副本。

        
ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
GO

ALTER AVAILABILITY GROUP (Transact-SQL)的更多相关文章

  1. Ubuntu上配置SQL Server Always On Availability Group(Configure Always On Availability Group for SQL Server on Ubuntu)

    下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...

  2. Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

    下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的 ...

  3. Configure Always On Availability Group for SQL Server on Ubuntu——Ubuntu上配置SQL Server Always On Availability Group

    下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...

  4. Configure Always On Availability Group for SQL Server on Ubuntu

    下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...

  5. SQL Server AlwaysON从入门到进阶(6)——分析和部署AlwaysOn Availability Group

    前言:   本节是整个系列的重点文章,到现在,读者应该已经对整个高可用架构有一定的了解,知道独立的SQL Server实例和基于群集的SQL Server FCI的区别.上一节已经介绍了如何安装SQL ...

  6. Linux 上配置 SQL Server Always On Availability Group

    SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource ...

  7. SQL Server Availability Group Failover 测试

    兼容性测试: 测试脚本: 环境:windows failover cluster 主库执行脚本: USE [master]GOALTER AVAILABILITY GROUP [test_AG]MOD ...

  8. SQL Server The target database ('db') is in an availability group and currently does not allow read only connections. For more information about application intent, see SQL Server Books Online.

    一.问题概述 在错误日志中看到非常多的alwayson群集只读连接错误,错误信息的描述为“目标数据库位于可用性组,当前不允许通过read only连接”.错误日志如下: 当前的业务系统使用监听ip对数 ...

  9. Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

    http://www.cnblogs.com/lavender000/p/6946848.html

随机推荐

  1. C++的dllexport和dllimport

    __declspec(dllexport) 声明一个导出函数,是说这个函数要从本DLL导出.我要给别人用.一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法.当然,如果你的DLL里全是C ...

  2. wcf双工通信

    一直以为感觉双工没弄懂,着实觉得很惆怅,在网上了解下双工的一些特点,直接上代码,以便以后项目中用的着: service层: 定义一个IDuplexHello服务接口 [ServiceContract( ...

  3. 洛谷 P1908 逆序对(归并排序解法)

    树状数组解法:https://www.cnblogs.com/lipeiyi520/p/10846927.html 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不 ...

  4. linux下提示/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决办法

    1.查看gcc版本中包含哪些库. strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3. GLIBCXX_3.4.1 GLIBCXX_3.4 ...

  5. 分享| 语义SLAM的未来与思考(泡泡机器人)

    相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...

  6. JS高级学习历程-2

    1.dom操作,利用dom创建无序列表.并追加到body里边,里面要求至少有四个项目. <!DOCTYPE html> <html lang="en"> & ...

  7. JS 时间格式为/Date(1332919782070)/ 转化为正常的格式

    原理是取中间的毫秒数,再转换成js的Date类型 function ChangeDateFormat(val) { if (val != null) { var date = new Date(par ...

  8. Django-Rest-Framework的序列化之serializers 序列化组件

    Django-Rest-Framework的序列化之serializers 序列化组件 restful framework 正常的序列化 from django.http import HttpRes ...

  9. CF 700E

    构建后缀自动机,求出后缀树 比较明显的dp 设 \(f[i]\) 表示从上而下到达当前点能够满足条件的最优值 只需要检查父亲节点是否在当前串中出现过两次就行了 这个判断用 \(endpos\) 来判断 ...

  10. MySQL数据库(4)

    子查询,MYSQL创建用户和授权,可视化工具N啊vicat的使用,pymysql模块的使用