更改 SQL Server 中现有的 AlwaysOn 可用性组。 但是,只有辅助副本支持 JOIN、FAILOVER 和 FORCE_FAILOVER_ALLOW_DATA_LOSS 参数。
|
当前版本)。 |
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 必须是一个有效的 SQL Server 标识符,并且它必须在 WSFC 群集的所有可用性组中保持唯一。
SQL Server 不会强制执行首选项,因此它对即席备份没有影响,了解这一点很重要。
仅在主副本上支持。
这些值如下所示:
|
|
|---|
|
配置可用性副本备份 (SQL Server)。 |
|
|
|---|
|
AUTOMATED_BACKUP_PREFERENCE = NONE)。 |
此外,只有在主副本和辅助副本均配置为自动故障转移模式 (FAILOVER_MODE = AUTOMATIC) 并且辅助副本当前与主副本同步的情况下,失败条件才可以触发自动故障转移。
仅在主副本上支持。
下表介绍了与各级别相对应的失败条件。
|
级别 |
失败条件 |
|---|---|
|
1 |
指定在发生以下任何情况时应启动自动故障转移:
|
|
2 |
指定在发生以下任何情况时应启动自动故障转移:
|
|
3 |
指定在发生了严重的 SQL Server 内部错误(例如孤立的自旋锁、严重的写访问冲突或过多的转储)时应启动自动故障转移。 这是默认行为。 |
|
4 |
指定在发生了中等程度的 SQL Server 内部错误(例如在 SQL Server 内部资源池中出现持久的内存不足情况)时应启动自动故障转移。 |
|
5 |
指定在出现任何符合的失败条件时应启动自动故障转移,这些失败条件包括:
|
|
|
|---|
|
缺少 SQL Server 的实例对客户端请求的响应与可用性组无关。 |
针对可用性组的自动故障转移的灵活的故障转移策略 (SQL Server)
此外,只有在主副本和辅助副本均配置为自动故障转移模式 (FAILOVER_MODE = AUTOMATIC) 并且辅助副本当前与主副本同步的情况下,运行状况检查超时才可以触发自动故障转移。
最小值为 15000 毫秒(15 秒),最大值为 4294967295 毫秒。
仅在主副本上支持。
|
|
|---|
|
sp_server_diagnostics 在数据库级别不执行运行状况检查。 |
sys.databases 目录视图中的 replica_id 列。
仅在主副本上支持。
|
|
|---|
|
启动 AlwaysOn 辅助数据库的数据移动 (SQL Server)。 |
仅在主副本上支持。
从可用性组中删除主数据库 (SQL Server)。
通过在每个副本的服务器实例地址后追加 WITH (…) 子句来指定每个副本。
仅在主副本上支持。
有关详细信息,请参阅本节后面对 JOIN 选项的说明。
语法如下:
instance_name]' }
此地址由以下部分组成:
针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server)。
数据库镜像端点的 URL 路径。
在添加或修改可用性副本时指定端点 URL (SQL Server)。
URL 参数如下所示:
针对同一主副本上不同数据库的事务可以单独提交。
可用性模式(AlwaysOn 可用性组)。
指定您要定义的可用性副本的故障转移模式。
故障转移和故障转移模式(AlwaysOn 可用性组)。
这些值将具有以下含义:
-
如果 BACKUP_PRIORITY = 1,则只有在没有更高的优先级可用性副本当前可用的情况下,才会选择可用性副本来执行备份。
-
例如,这对于您永远不希望备份故障转移到的远程可用性副本十分有用。
活动辅助副本:辅助副本备份(AlwaysOn 可用性组)。
如果指定两个选项,则使用以逗号分隔的列表。
辅助角色选项如下所示:
如果指定两个选项,则使用以逗号分隔的列表。
主角色选项如下所示:
最小值为 5 秒。
|
|
|---|
|
我们建议您将超时期限保持为 10 秒或更长。 |
AlwaysOn 可用性组概述 (SQL Server)。
要修改的副本列表包含每个副本的服务器实例地址和 WITH (…) 子句。
仅在主副本上支持。
其辅助数据库从可用性组中删除,并且进入 RESTORING 状态。
仅在主副本上支持。
|
|
|---|
|
如果您在某一副本处于不可用或失败状态时删除该副本,则在其恢复联机状态时,将会发现不再属于该可用性组。 |
导致本地服务器实例承载指定可用性组中的辅助副本。
仅在尚未加入可用性组的辅助副本上支持。
将辅助副本联接到可用性组 (SQL Server)。
在发生一系列故障后,这些角色可能来回切换。
请注意,对于要同步的辅助副本,主副本也必须在同步提交模式下运行。
|
|
|---|
|
但是,在可用性组完成故障转移之后,数据库恢复操作将以异步方式执行。 |
执行可用性组的计划手动故障转移 (SQL Server)。
|
|
|---|
|
因此,我们强烈建议您仅在以下情况下才强制故障转移:主副本不再运行、您愿意承担丢失数据的风险并且您必须立即将服务还原到可用性组。 |
--对其输入故障转移命令的副本称为“故障转移目标”。
在以前的主副本可用前,它将切换到辅助角色,并且其数据库将成为挂起的辅助数据库。
|
|
|---|
|
但是,在可用性组完成故障转移之后,数据库恢复操作将以异步方式执行。 |
执行可用性组的强制手动故障转移 (SQL Server)。
仅在主副本上支持。
|
|
|---|
|
创建或配置可用性组侦听器 (SQL Server)。 为给定可用性组创建侦听器后,我们强烈建议您执行以下操作:
|
在域和 NetBIOS 中,侦听器的 DNS 名称必须唯一。
最大长度为 63 个字符。
ag1-listener。
|
|
|---|
|
分配域名。 |
ADD LISTENER 采用以下选项之一:
10.120.19.155。
255.255.254.0。
2001::4898:23:1002:20f:1fff:feff:b3a3。
PORT 是可选的。
但出于安全考虑,我们建议使用其他端口号。
WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777
仅在主副本上支持。
MODIFY LISTENER 采用以下选项之一:
仅在主副本上支持。
仅在主副本上支持。
同步提交数据库没有数据丢失。
因此,在将可用性组资源迁移到新 WSFC 群集时,仅在 AlwaysOn 可用性组 的跨群集迁移过程中使用 OFFLINE 选项。
使可用性组脱机 (SQL Server)。
[返回页首]