CREATE AVAILABILITY GROUP (Transact-SQL)CREATE AVAILABILITY GROUP (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

Создание новой группы доступности при условии, что экземпляр SQL ServerSQL Server включен для функции Группы доступности AlwaysOnAlways On availability groups.Creates a new availability group, if the instance of SQL ServerSQL Server is enabled for the Группы доступности AlwaysOnAlways On availability groups feature.

Важно!

Выполните CREATE AVAILABILITY GROUP в экземпляре SQL ServerSQL Server, который предполагается использовать в качестве начальной первичной реплики создаваемой группы доступности.Execute CREATE AVAILABILITY GROUP on the instance of SQL ServerSQL Server that you intend to use as the initial primary replica of your new availability group. Этот экземпляр сервера должен располагаться на узле отказоустойчивого кластера Windows Server (WSFC).This server instance must reside on a Windows Server Failover Clustering (WSFC) node.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
CREATE AVAILABILITY GROUP group_name  
   WITH (<with_option_spec> [ ,...n ] )  
   FOR [ DATABASE database_name [ ,...n ] ]  
   REPLICA ON <add_replica_spec> [ ,...n ]  
   AVAILABILITY GROUP ON <add_availability_group_spec> [ ,...2 ]  
   [ LISTENER 'dns_name' ( <listener_option> ) ]  
[ ; ]  
  
<with_option_spec>::=   
    AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }  
  | FAILURE_CONDITION_LEVEL  = { 1 | 2 | 3 | 4 | 5 }   
  | HEALTH_CHECK_TIMEOUT = milliseconds  
  | DB_FAILOVER  = { ON | OFF }   
  | DTC_SUPPORT  = { PER_DB | NONE }  
  | BASIC  
  | DISTRIBUTED
  | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
  | CLUSTER_TYPE = { WSFC | EXTERNAL | NONE } 
  
<add_replica_spec>::=  
  <server_instance> WITH  
    (  
       ENDPOINT_URL = 'TCP://system-address:port',  
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY },  
       FAILOVER_MODE = { AUTOMATIC | MANUAL | EXTERNAL }  
       [ , <add_replica_option> [ ,...n ] ]  
    )   
  
  <add_replica_option>::=  
       SEEDING_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 } ]  
        [,] [ READ_WRITE_ROUTING_URL = { ( '<server_instance>' ) ] 
     } )  
     | SESSION_TIMEOUT = integer  
  
<add_availability_group_spec>::=  
 <ag_name> WITH  
    (  
       LISTENER_URL = 'TCP://system-address:port',  
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT },  
       FAILOVER_MODE = MANUAL,  
       SEEDING_MODE = { AUTOMATIC | MANUAL }  
    )  
  
<listener_option> ::=  
   {  
      WITH DHCP [ ON ( <network_subnet_option> ) ]  
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]  
   }  
  
  <network_subnet_option> ::=  
     'ip4_address', 'four_part_ipv4_mask'    
  
  <ip_address_option> ::=  
     {   
        'ip4_address', 'pv4_mask'  
      | 'ipv6_address'  
     }  
  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

АргументыArguments

group_namegroup_name
Указывает имя новой группы доступности.Specifies the name of the new availability group. Аргумент group_name должен быть допустимым идентификаторомSQL ServerSQL Server и являться уникальным во всех группах доступности в кластере WSFC.group_name must be a valid SQL ServerSQL Serveridentifier, and it must be unique across all availability groups in the WSFC cluster. Максимальная длина имени группы доступности составляет 128 символов.The maximum length for an availability group name is 128 characters.

AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY | SECONDARY | NONE }AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY | SECONDARY | NONE }
Указывает приоритет, согласно которому задание резервного копирования вычисляет первичную реплику при выборе места для создания резервных копий.Specifies a preference about how a backup job should evaluate the primary replica when choosing where to perform backups. Вы можете написать скрипт для того, чтобы задание резервного копирования учитывало приоритет автоматического резервного копирования.You can script a given backup job to take the automated backup preference into account. Важно понимать, что приоритет не определяется SQL ServerSQL Server, поэтому он не влияет на выполнение нерегламентированного резервного копирования.It is important to understand that the preference is not enforced by SQL ServerSQL Server, so it has no impact on ad-hoc backups.

Поддерживаются следующие значения:The supported values are as follows:

PRIMARYPRIMARY
Указывает, что резервное копирования должно всегда выполняться на первичной реплике.Specifies that the backups should always occur on the primary replica. Данный параметр является полезным, если вам требуются такие функции резервного копирования, как создание разностных резервных копий, которые не поддерживаются при выполнении резервного копирования на вторичной реплике.This option is useful if you need backup features, such as creating differential backups, that are not supported when backup is run on a secondary replica.

Важно!

Если планируется использовать доставку журналов для подготовки баз данных-получателей для группы доступности, задайте параметру автоматизированного резервного копирования значение Первичная до тех пор, пока все базы данных-получатели не будут подготовлены и присоединены к группе доступности.If you plan to use log shipping to prepare any secondary databases for an availability group, set the automated backup preference to Primary until all the secondary databases have been prepared and joined to the availability group.

SECONDARY_ONLYSECONDARY_ONLY
Указывает, что резервное копирование никогда не выполняется на первичной реплике.Specifies that backups should never be performed on the primary replica. Если первичная реплика является единственной репликой, находящейся в режиме «в сети», резервное копирование не будет выполняться.If the primary replica is the only replica online, the backup should not occur.

SECONDARYSECONDARY
Указывает, что резервное копирование должно выполняться на вторичной реплике, за исключением тех случаев, когда в режиме «в сети» находится только первичная реплика.Specifies that backups should occur on a secondary replica except when the primary replica is the only replica online. В этом случае резервное копирование будет выполняться на первичной реплике.In that case, the backup should occur on the primary replica. Это поведение по умолчанию.This is the default behavior.

NoneNONE
Указывает, что вы предпочитаете, чтобы задания резервного копирования пропускали реплики доступности при выборе реплики для создания резервных копий.Specifies that you prefer that backup jobs ignore the role of the availability replicas when choosing the replica to perform backups. Примечание. Задания резервного копирования могут учитывать другие факторы, например приоритет резервного копирования каждой реплики доступности в сочетании с ее состоянием работоспособности и соединения.Note backup jobs might evaluate other factors such as backup priority of each availability replica in combination with its operational state and connected state.

Важно!

Принудительного применения параметра AUTOMATED_BACKUP_PREFERENCE не существует.There is no enforcement of the AUTOMATED_BACKUP_PREFERENCE setting. Интерпретация данного приоритета зависит от логики (при ее наличии), которая внесена в задания резервного копирования для баз данных в указанной группе доступности.The interpretation of this preference depends on the logic, if any, that you script into back jobs for the databases in a given availability group. Параметр автоматического резервного копирования не влияет на выполнение нерегламентированного резервного копирования.The automated backup preference setting has no impact on ad-hoc backups. Дополнительные сведения см. в разделе Настройка резервного копирования в репликах доступности (SQL Server).For more information, see Configure Backup on Availability Replicas (SQL Server).

Примечание

Для просмотра приоритета автоматического резервного копирования существующей группы доступности необходимо выбрать столбец automated_backup_preference или automated_backup_preference_desc представления каталога sys.availability_groups.To view the automated backup preference of an existing availability group, select the automated_backup_preference or automated_backup_preference_desc column of the sys.availability_groups catalog view. Кроме того, приоритет реплики резервного копирования можно просмотреть в представлении sys.fn_hadr_backup_is_preferred_replica (Transact-SQL).Additionally, sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) can be used to determine the preferred backup replica. Эта функция возвращает значение 1 при наличии хотя бы одной реплики, даже если AUTOMATED_BACKUP_PREFERENCE = NONE.This function returns 1 for at least one of the replicas, even when AUTOMATED_BACKUP_PREFERENCE = NONE.

FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }
Указывает, какие условия сбоя могут запустить автоматический переход на другой ресурс в этой группе доступности.Specifies what failure conditions trigger an automatic failover for this availability group. Параметр FAILURE_CONDITION_LEVEL задается на уровне группы, однако он действует только в отношении реплик доступности, настроенных в режиме доступности синхронной фиксации (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT).FAILURE_CONDITION_LEVEL is set at the group level but is relevant only on availability replicas that are configured for synchronous-commit availability mode (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Более того, условия сбоя могут запустить автоматический переход на другой ресурс только в том случае, если и первичная, и вторичная реплики настроены на режим автоматического перехода на другой ресурс (FAILOVER_MODE = AUTOMATIC), при этом вторичная реплика должна в данный момент быть синхронизирована с первичной.Furthermore, failure conditions can trigger an automatic failover only if both the primary and secondary replicas are configured for automatic failover mode (FAILOVER_MODE = AUTOMATIC) and the secondary replica is currently synchronized with the primary replica.

Уровни условий сбоя (1–5) варьируются от наименее ограничительного уровня 1 до наиболее ограничительного уровня 5.The failure-condition levels (1-5) range from the least restrictive, level 1, to the most restrictive, level 5. Заданный уровень условий включает в себя ограничения всех предыдущих уровней.A given condition level encompasses all the less restrictive levels. Таким образом, наиболее строгий уровень 5 включает в себя ограничения уровней с 1 по 4, уровень 4 содержит ограничения уровней с 1 по 3 и т. д.Thus, the strictest condition level, 5, includes the four less restrictive condition levels (1-4), level 4 includes levels 1-3, and so forth. Уровни условий сбоя описаны в следующей таблице.The following table describes the failure-condition that corresponds to each level.

LevelLevel Условия сбояFailure Condition
11 Указывает, что следует запустить автоматический переход на другой ресурс при возникновении любой из следующих ситуаций.Specifies that an automatic failover should be initiated when any of the following occurs:

- Служба SQL ServerSQL Server остановлена.-The SQL ServerSQL Server service is down.

- Аренда группы доступности для подключения к кластеру WSFC истекла, поскольку от экземпляра сервера не было получено сообщение ACK.-The lease of the availability group for connecting to the WSFC cluster expires because no ACK is received from the server instance. Дополнительные сведения см. в разделе Как это работает: время ожидания аренды Always On в SQL Server.For more information, see How It Works: SQL Server Always On Lease Timeout.
22 Указывает, что следует запустить автоматический переход на другой ресурс при возникновении любой из следующих ситуаций.Specifies that an automatic failover should be initiated when any of the following occurs:

- Экземпляр SQL ServerSQL Server не подключается к кластеру, а определяемый пользователем порог HEALTH_CHECK_TIMEOUT для группы доступности превышен.-The instance of SQL ServerSQL Server does not connect to cluster, and the user-specified HEALTH_CHECK_TIMEOUT threshold of the availability group is exceeded.

- Реплика доступности находится в неисправном состоянии.-The availability replica is in failed state.
33 Указывает, что следует запустить автоматический переход на другой ресурс в случае появления критических внутренних ошибок SQL ServerSQL Server, таких как потерянные спин-блокировки, серьезные нарушения доступа для записи или формирование слишком больших дампов.Specifies that an automatic failover should be initiated on critical SQL ServerSQL Server internal errors, such as orphaned spinlocks, serious write-access violations, or too much dumping.

Это поведение по умолчанию.This is the default behavior.
44 Указывает, что следует запустить автоматический переход на другой ресурс в случае появления не столь серьезных внутренних ошибок SQL ServerSQL Server, например устойчивое состояние нехватки памяти в пуле внутренних ресурсов SQL ServerSQL Server.Specifies that an automatic failover should be initiated on moderate SQL ServerSQL Server internal errors, such as a persistent out-of-memory condition in the SQL ServerSQL Server internal resource pool.
55 Указывает, что следует запустить автоматический переход на другой ресурс при любом удовлетворяющим условиям состоянии сбоя, включая:Specifies that an automatic failover should be initiated on any qualified failure conditions, including:

- Исчерпание рабочих потоков ядра SQL.-Exhaustion of SQL Engine worker-threads.

- Обнаружение неразрешимой взаимоблокировки.-Detection of an unsolvable deadlock.

Примечание

Отсутствие ответа экземпляра SQL ServerSQL Server на клиентские запросы не является существенным для групп доступности.Lack of response by an instance of SQL ServerSQL Server to client requests is not relevant to availability groups.

Значения FAILURE_CONDITION_LEVEL и HEALTH_CHECK_TIMEOUT определяют гибкую политику отработки отказа для заданной группы.The FAILURE_CONDITION_LEVEL and HEALTH_CHECK_TIMEOUT values, define a flexible failover policy for a given group. Данная гибкая политика отработки отказа предоставляет гранулярное управление условиями, которые могут вызвать автоматический переход на другой ресурс.This flexible failover policy provides you with granular control over what conditions must cause an automatic failover. Дополнительные сведения см. в разделе Гибкая политика отработки отказа для автоматического перехода на другой ресурс группы доступности (SQL Server).For more information, see Flexible Failover Policy for Automatic Failover of an Availability Group (SQL Server).

HEALTH_CHECK_TIMEOUT = millisecondsHEALTH_CHECK_TIMEOUT = milliseconds
Указывает время ожидания (в миллисекундах) возвращения сведений о состоянии сервера системной хранимой процедурой sp_server_diagnostics перед тем, как кластер WSFC признает, что экземпляр сервера не отвечает на запросы или его работа замедлена.Specifies the wait time (in milliseconds) for the sp_server_diagnostics system stored procedure to return server-health information before the WSFC cluster assumes that the server instance is slow or not responding. Параметр HEALTH_CHECK_TIMEOUT задается на уровне группы, но применяется только в репликах доступности, настроенных для работы в режиме доступности синхронной фиксации с автоматическим переходом на другой ресурс (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT).HEALTH_CHECK_TIMEOUT is set at the group level but is relevant only on availability replicas that are configured for synchronous-commit availability mode with automatic failover (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Более того, время ожидания для проверки состояния системы может запустить автоматический переход на другой ресурс только в том случае, если первичная и вторичная реплики настроены на режим автоматического перехода на другой ресурс (FAILOVER_MODE = AUTOMATIC), при этом вторичная реплика должна быть в данный момент синхронизирована с первичной.Furthermore, a health-check timeout can trigger an automatic failover only if both the primary and secondary replicas are configured for automatic failover mode (FAILOVER_MODE = AUTOMATIC) and the secondary replica is currently synchronized with the primary replica.

Значение параметра HEALTH_CHECK_TIMEOUT по умолчанию — 30 000 миллисекунд (30 секунд).The default HEALTH_CHECK_TIMEOUT value is 30000 milliseconds (30 seconds). Минимальное значение — 15 000 миллисекунд (15 секунд), а максимальное значение — 4 294 967 295 миллисекунд.The minimum value is 15000 milliseconds (15 seconds), and the maximum value is 4294967295 milliseconds.

Важно!

sp_server_diagnostics не выполняет проверку работоспособности на уровне базы данных.sp_server_diagnostics does not perform health checks at the database level.

DB_FAILOVER = { ON | OFF }DB_FAILOVER = { ON | OFF }
Задает реакцию в случае, когда база данных в первичной реплике находится в автономном режиме.Specifies the response to take when a database on the primary replica is offline. Если задано значение ON, любое состояние базы данных в группе доступности, отличное от ONLINE, инициирует автоматический переход на другой ресурс.When set to ON, any status other than ONLINE for a database in the availability group triggers an automatic failover. Если этот параметр имеет значение OFF, для запуска автоматического перехода на другой ресурс учитывается только работоспособность экземпляра.When this option is set to OFF, only the health of the instance is used to trigger automatic failover.

Дополнительные сведения об этом параметре см. в разделе Параметр определения уровня работоспособности баз данныхFor more information regarding this setting, see Database Level Health Detection Option

DTC_SUPPORT = { PER_DB | NONE }DTC_SUPPORT = { PER_DB | NONE }
Указывает, поддерживаются ли межбазовые транзакции с помощью координатора распределенных транзакций (DTC).Specifies whether cross-database transactions are supported through the distributed transaction coordinator (DTC). Межбазовые транзакции поддерживаются только начиная с версии SQL Server 2016 (13.x);SQL Server 2016 (13.x).Cross-database transactions are only supported beginning in SQL Server 2016 (13.x);SQL Server 2016 (13.x). PER_DB создает группу доступности с поддержкой этих транзакций.PER_DB creates the availability group with support for these transactions. Дополнительные сведения см. в статье Транзакции между базами данных и распределенные транзакции для групп доступности AlwaysOn и зеркального отображения базы данных (SQL Server).For more information, see Cross-Database Transactions and Distributed Transactions for Always On Availability Groups and Database Mirroring (SQL Server).

BASICBASIC
Используется для создания базовой группы доступности.Used to create a basic availability group. Базовые группы доступности ограничиваются одной базы данных и двумя репликами: одной первичной и одной вторичной.Basic availability groups are limited to one database and two replicas: a primary replica and one secondary replica. Этот параметр заменяет нерекомендуемую функцию зеркального отображения базы данных в SQL Server Standard Edition.This option is a replacement for the deprecated database mirroring feature on SQL Server Standard Edition. Дополнительные сведения см. в разделе Базовые группы доступности (группы доступности AlwaysOn).For more information, see Basic Availability Groups (Always On Availability Groups). Базовые группы доступности поддерживаются начиная с версии SQL Server 2016 (13.x);SQL Server 2016 (13.x).Basic availability groups are supported beginning in SQL Server 2016 (13.x);SQL Server 2016 (13.x).

DISTRIBUTEDDISTRIBUTED
Используется для создания распределенной группы доступности.Used to create a distributed availability group. Этот параметр используется с параметром AVAILABILITY GROUP ON для подключения двух групп доступности в отдельных отказоустойчивых кластерах Windows Server.This option is used with the AVAILABILITY GROUP ON parameter to connect two availability groups in separate Windows Server Failover Clusters. Дополнительные сведения см. в разделе Распределенные группы доступности (группы доступности AlwaysOn).For more information, see Distributed Availability Groups (Always On Availability Groups). Распределенные группы доступности поддерживаются начиная с версии SQL Server 2016 (13.x);SQL Server 2016 (13.x).Distributed availability groups are supported beginning in SQL Server 2016 (13.x);SQL Server 2016 (13.x).

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITREQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
Впервые представлено в SQL Server 2017.Introduced in SQL Server 2017. Позволяет задать минимальное число синхронных вторичных реплик, необходимых для фиксации, прежде чем первичная реплика зафиксирует транзакцию.Used to set a minimum number of synchronous secondary replicas required to commit before the primary commits a transaction. Гарантирует, что транзакции SQL Server будут ожидать, пока журналы транзакций не будут обновлены минимальным числом вторичных реплик.Guarantees that SQL Server transaction waits until the transaction logs are updated on the minimum number of secondary replicas. Значение по умолчанию — 0, что дает ту же реакцию на событие, как и в SQL Server 2016.The default is 0 which gives the same behavior as SQL Server 2016. Минимальное значение — 0.The minimum value is 0. Максимальное значение — число реплик минус 1.The maximum value is the number of replicas minus 1. Этот параметр относится к репликам в режиме синхронной фиксации.This option relates to replicas in synchronous commit mode. Когда реплики находятся в режиме синхронной фиксации, операции записи на первичной реплике ждут, пока операции записи на вторичных синхронных репликах не будут зафиксированы в журнале транзакций базы данных реплики.When replicas are in synchronous commit mode, writes on the primary replica wait until writes on the secondary synchronous replicas are committed to the replica database transaction log. Если SQL Server, на котором размещена вторичная синхронная реплика, перестает отвечать, SQL Server, на котором размещена первичная реплика, отметит вторичную реплику как NOT SYNCHRONIZED и продолжит.If a SQL Server that hosts a secondary synchronous replica stops responding, the SQL Server that hosts the primary replica marks that secondary replica as NOT SYNCHRONIZED and proceed. Когда недоступная база данных снова подключается к сети, она находится в состоянии "не синхронизировано", и реплика отмечена как неработоспособная, пока снова не синхронизируется с первичной репликой.When the unresponsive database comes back online it is in a "not synced" state and the replica marked as unhealthy until the primary can make it synchronous again. Данный параметр гарантирует, что первичная реплика будет ждать, пока минимальное число реплик не зафиксирует каждую транзакцию.This setting guarantees that the primary replica waits until the minimum number of replicas have committed each transaction. Если минимальное число реплик недоступно, фиксация в первичной реплике завершается ошибкой.If the minimum number of replicas is not available then commits on the primary fail. В кластере типа EXTERNAL этот параметр меняется при добавлении группы доступности в кластерный ресурс.For cluster type EXTERNAL the setting is changed when the availability group is added to a cluster resource. См. Высокий уровень доступности и защита данных для конфигураций группы доступности.See High availability and data protection for availability group configurations.

CLUSTER_TYPECLUSTER_TYPE
Впервые представлено в SQL Server 2017.Introduced in SQL Server 2017. Используется, чтобы определить, находится ли группа доступности на отказоустойчивом кластере Windows Server (WSFC).Used to identify if the availability group is on a Windows Server Failover Cluster (WSFC). Укажите WSFC, если группа доступности находится на экземпляре отказоустойчивого кластера в отказоустойчивом кластере Windows.Set to WSFC when availability group is on a failover cluster instance on a Windows Server failover cluster. Укажите EXTERNAL, если кластер управляется диспетчером кластера, но не отказоустойчивым кластером Windows Server, например Linux Pacemaker.Set to EXTERNAL when the cluster is managed by a cluster manager that is not a Windows Server failover cluster, like Linux Pacemaker. Укажите NONE, если группа доступности не использует WSFC для координации кластера.Set to NONE when availability group not using WSFC for cluster coordination. Например, если группа доступности включает серверы Linux без диспетчера кластеров.For example, when an availability group includes Linux servers with no cluster manager.

DATABASE database_nameDATABASE database_name
Задает список из одной или нескольких пользовательских баз данных на локальном экземпляре SQL ServerSQL Server (то есть на экземпляре сервера, на котором создается группа доступности).Specifies a list of one or more user databases on the local SQL ServerSQL Server instance (that is, the server instance on which you are creating the availability group). Можно указать несколько баз данных для группы доступности, но каждая база данных может принадлежать только к одной группе доступности.You can specify multiple databases for an availability group, but each database can belong to only one availability group. Дополнительные сведения о типе баз данных, который поддерживают группы доступности, см. в разделе Предварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server).For information about the type of databases that an availability group can support, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server). Чтобы узнать, какие локальные базы данных уже принадлежат группе доступности, просмотрите столбец replica_id в представлении каталога sys.databases.To find out which local databases already belong to an availability group, see the replica_id column in the sys.databases catalog view.

Предложение DATABASE не является обязательным.The DATABASE clause is optional. Если параметр не указывается, новая группа доступности будет пустой.If you omit it, the new availability group is empty.

После создания группы доступности подключитесь к каждому экземпляру сервера, где размещается вторичная реплика, а затем подготовьте каждую базу данных-получатель и включите ее в группу доступности.After you have created the availability group, connect to each server instance that hosts a secondary replica and then prepare each secondary database and join it to the availability group. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя AlwaysOn (SQL Server).For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

Примечание

Затем можно добавлять готовые базы данных в экземпляре сервера, где размещается текущая первичная реплика, в группу доступности.Later, you can add eligible databases on the server instance that hosts the current primary replica to an availability group. Также можно удалять базу данных из группы доступности.You can also remove a database from an availability group. Дополнительные сведения см. в разделе ALTER AVAILABILITY GROUP (Transact-SQL).For more information, see ALTER AVAILABILITY GROUP (Transact-SQL).

REPLICA ONREPLICA ON
Указывает от одного до пяти экземпляров SQL Server для размещения реплик доступности в новой группе доступности.Specifies from one to five SQL server instances to host availability replicas in the new availability group. Каждая реплика задается по адресу экземпляра своего сервера, за которым следует предложение WITH (…).Each replica is specified by its server instance address followed by a WITH (...) clause. Как минимум необходимо указать экземпляр локального сервера, который станет начальной первичной репликой.Minimally, you must specify your local server instance, which becomes the initial primary replica. Дополнительно можно указать до четырех вторичных реплик.Optionally, you can also specify up to four secondary replicas.

Необходимо включить каждую вторичную реплику в группу доступности.You need to join every secondary replica to the availability group. Дополнительные сведения см. в разделе ALTER AVAILABILITY GROUP (Transact-SQL).For more information, see ALTER AVAILABILITY GROUP (Transact-SQL).

Примечание

Если при создании группы доступности будут заданы не все четыре вторичные реплики, дополнительные вторичные реплики можно добавить в любое время с помощью инструкции ALTER AVAILABILITY GROUPTransact-SQLTransact-SQL.If you specify less than four secondary replicas when you create an availability group, you can an additional secondary replica at any time by using the ALTER AVAILABILITY GROUPTransact-SQLTransact-SQL statement. Эту инструкцию также можно использовать для удаления любой вторичной реплики из существующей группы доступности.You can also use this statement this remove any secondary replica from an existing availability group.

<server_instance> Задает адрес экземпляра SQL ServerSQL Server, на котором размещена реплика.<server_instance> Specifies the address of the instance of SQL ServerSQL Server that is the host for an replica. Формат адреса зависит от вида экземпляра (именованный или по умолчанию) и типа экземпляра (изолированный или экземпляр отказоустойчивого кластера):The address format depends on whether the instance is the default instance or a named instance and whether it is a standalone instance or a failover cluster instance (FCI), as follows:

{ ' системное_имя [\имя_экземпляра ]' | ' сетевое_имя_FCI [\имя_экземпляра ]' }{ ' system_name [\instance_name ]' | ' FCI_network_name [\instance_name ]' }

Этот адрес состоит из следующих компонентов:The components of this address are as follows:

системное_имяsystem_name
Имя NetBIOS компьютера, на котором расположен целевой экземпляр SQL ServerSQL Server.Is the NetBIOS name of the computer system on which the target instance of SQL ServerSQL Server resides. Этот компьютер должен быть узлом кластера WSFC.This computer must be a WSFC node.

сетевое_имя_FCIFCI_network_name
Это сетевое имя, используемое для доступа к отказоустойчивому кластеру SQL ServerSQL Server.Is the network name that is used to access a SQL ServerSQL Server failover cluster. Используйте его, если экземпляр сервера является участником — партнером по обеспечению отработки отказа SQL ServerSQL Server.Use this if the server instance participates as a SQL ServerSQL Server failover partner. Выполнение SELECT @@SERVERNAME на экземпляре сервера FCI возвращает всю его строку ' FCI_network_name [\instance_name ]' (то есть полное имя реплики).Executing SELECT @@SERVERNAME on an FCI server instance returns its entire ' FCI_network_name [\instance_name ]' string (which is the full replica name).

instance_nameinstance_name
Имя экземпляра SQL ServerSQL Server, размещенного на system_name или FCI_network_name с включенной службой HADR.Is the name of an instance of a SQL ServerSQL Server that is hosted by system_name or FCI_network_name and that has HADR service is enabled. Для экземпляра сервера по умолчанию указывать параметр имя_экземпляра не обязательно.For a default server instance, instance_name is optional. В именах экземпляров не учитывается регистр символов.The instance name is case insensitive. На именованном экземпляре это имя значения совпадает со значением, возвращаемым при выполнении select ServerProperty(N'InstanceName');.On a named instance, this value name is the same as the value returned by executing select ServerProperty(N'InstanceName');.

\
Разделитель, используемый только при указании значения instance_name для отделения от аргументов system_name или FCI_network_name .Is a separator used only when specifying instance_name , in order to separate it from system_name or FCI_network_name .

Дополнительные сведения о предварительных требованиях для узлов WSFC и экземпляров серверов см. в статье Предварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server).For information about the prerequisites for WSFC nodes and server instances, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

ENDPOINT_URL =' TCP :// system-address : port 'ENDPOINT_URL =' TCP ://system-address:port'
Указывает путь URL для конечной точки зеркального отображения базы данных на экземпляре SQL ServerSQL Server, на котором размещается реплика доступности, заданная в текущем предложении REPLICA ON.Specifies the URL path for the database mirroring endpoint on the instance of SQL ServerSQL Server that hosts the availability replica that you are defining in your current REPLICA ON clause.

Предложение ENDPOINT_URL является обязательным.The ENDPOINT_URL clause is required. Дополнительные сведения см. в разделе Указание URL-адреса конечной точки при добавлении или изменении реплики доступности (SQL Server).For more information, see Specify the Endpoint URL When Adding or Modifying an Availability Replica (SQL Server).

' TCP :// system-address : port '' TCP ://system-address:port'
Задает URL-адрес для конечной точки или URL-адрес маршрутизации, доступный только для чтения.Specifies a URL for specifying an endpoint URL or read-only routing URL. Параметры URL-адреса:The URL parameters are as follows:

system-addresssystem-address
Это строка, такая как адрес системы, полное доменное имя или IP-адрес, однозначно идентифицирующий целевую компьютерную систему.Is a string, such as a system name, a fully qualified domain name, or an IP address, that unambiguously identifies the destination computer system.

portport
Номер порта, связанный с конечной точкой зеркального отображения экземпляра сервера-участника (для параметра ENDPOINT_URL), или номер порта, используемый компонентом Компонент Database EngineDatabase Engine в экземпляре сервера (для параметра READ_ONLY_ROUTING_URL).Is a port number that is associated with the mirroring endpoint of the partner server instance (for the ENDPOINT_URL option) or the port number used by the Компонент Database EngineDatabase Engine of the server instance (for the READ_ONLY_ROUTING_URL option).

AVAILABILITY_MODE = { {SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }AVAILABILITY_MODE = { {SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
SYNCHRONOUS_COMMIT или ASYNCHRONOUS_COMMIT Указывает, должна ли первичная реплика ждать подтверждения фиксации (записи) записей журнала на диск от вторичной реплики перед тем, как фиксировать транзакцию в указанной базе данных.SYNCHRONOUS_COMMIT or ASYNCHRONOUS_COMMIT specifies whether the primary replica has to wait for the secondary replica to acknowledge the hardening (writing) of the log records to disk before the primary replica can commit the transaction on a given primary database. Фиксация транзакций в других базах данных, расположенных в этой первичной реплике, может выполняться независимо.The transactions on different databases on the same primary replica can commit independently. В SQL Server 2017 с накопительным пакетом обновления 1 доступен новый вариант CONFIGURATION_ONLY.SQL Server 2017 CU 1 introduces CONFIGURATION_ONLY. Реплика CONFIGURATION_ONLY применяется только к группам доступности с CLUSTER_TYPE = EXTERNAL или CLUSTER_TYPE = NONE.CONFIGURATION_ONLY replica only applies to availability groups with CLUSTER_TYPE = EXTERNAL or CLUSTER_TYPE = NONE.

SYNCHRONOUS_COMMITSYNCHRONOUS_COMMIT
Указывает, что первичная реплика может фиксировать транзакции только после их записи на данной вторичной реплике (режим синхронной фиксации).Specifies that the primary replica waits to commit transactions until they have been hardened on this secondary replica (synchronous-commit mode). Вы можете указать SYNCHRONOUS_COMMIT не более чем для трех реплик, включая первичную.You can specify SYNCHRONOUS_COMMIT for up to three replicas, including the primary replica.

ASYNCHRONOUS_COMMITASYNCHRONOUS_COMMIT
Указывает, что первичная реплика фиксирует транзакции без ожидания записи журнала на данной вторичной реплике (режим доступности синхронной фиксации).Specifies that the primary replica commits transactions without waiting for this secondary replica to harden the log (synchronous-commit availability mode). Вы можете указать ASYNCHRONOUS_COMMIT не более чем для пяти реплик доступности, включая первичную реплику.You can specify ASYNCHRONOUS_COMMIT for up to five availability replicas, including the primary replica.

CONFIGURATION_ONLY указывает, что первичная реплика синхронно фиксирует метаданные конфигурации группы доступности в базе данных master этой реплики.CONFIGURATION_ONLY Specifies that the primary replica synchronously commit availability group configuration metadata to the master database on this replica. Реплика не будет содержать данные пользователя.The replica will not contain user data. Этот параметр:This option:

  • Может размещаться в любом выпуске SQL Server, включая экспресс-выпуск.Can be hosted on any edition of SQL Server, including Express Edition.

  • Требует, чтобы конечная точка зеркального отображения данных реплики CONFIGURATION_ONLY имела тип WITNESS.Requires the data mirroring endpoint of the CONFIGURATION_ONLY replica to be type WITNESS.

  • Не может быть изменен.Can not be altered.

  • Недопустим, когда CLUSTER_TYPE = WSFC.Is not valid when CLUSTER_TYPE = WSFC.

    Дополнительные сведения см. в разделе Реплика только с конфигурацией.For more information, see Configuration only replica.

Предложение AVAILABILITY_MODE является обязательным.The AVAILABILITY_MODE clause is required. Дополнительные сведения см. в разделе Режимы доступности (группы доступности AlwaysOn).For more information, see Availability Modes (Always On Availability Groups).

FAILOVER_MODE = { AUTOMATIC | MANUAL }FAILOVER_MODE = { AUTOMATIC | MANUAL }
Указывает режим отработки отказов определяемой реплики доступности.Specifies the failover mode of the availability replica that you are defining.

AUTOMATICAUTOMATIC
Включает автоматический переход на другой ресурс.Enables automatic failover. Этот параметр поддерживается только в том случае, если также указывается AVAILABILITY_MODE = SYNCHRONOUS_COMMIT.This option is supported only if you also specify AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Значение AUTOMATIC можно задать для двух реплик доступности, включая первичную.You can specify AUTOMATIC for two availability replicas, including the primary replica.

Примечание

Экземпляры отказоустойчивого кластера SQL Server не поддерживают автоматический переход на другой ресурс с учетом групп доступности, поэтому любая реплика доступности, размещенная в них, должна быть настроена для перехода на другой ресурс вручную.SQL Server Failover Cluster Instances (FCIs) do not support automatic failover by availability groups, so any availability replica that is hosted by an FCI can only be configured for manual failover.

MANUALMANUAL
Позволяет администратору базы данных осуществлять переход на другой ресурс вручную по плану или принудительно (обычно это называется принудительным переходом на другой ресурс ).Enables planned manual failover or forced manual failover (typically called forced failover ) by the database administrator.

Предложение FAILOVER_MODE является обязательным.The FAILOVER_MODE clause is required. Существует два вида перехода на другой ресурс вручную: переход на другой ресурс вручную без потери данных и принудительный переход на другой ресурс (с возможной потерей данных), которые поддерживаются в зависимости от различных условий.The two types of manual failover, manual failover without data loss and forced failover (with possible data loss), are supported under different conditions. Дополнительные сведения см. далее в подразделе Отработка отказа и режимы отработки отказа (группы доступности AlwaysOn).For more information, see Failover and Failover Modes (Always On Availability Groups).

SEEDING_MODE = { AUTOMATIC | MANUAL }SEEDING_MODE = { AUTOMATIC | MANUAL }
Указывает, как вторичная реплика изначально заполняется данными.Specifies how the secondary replica is initially seeded.

AUTOMATICAUTOMATIC
Включает прямое первоначальное заполнение.Enables direct seeding. Этот метод заполняет вторичную реплику начальными значениями по сети.This method seeds the secondary replica over the network. Этот метод не требует резервного копирования и восстановления копии базы данных-источника в реплике.This method does not require you to backup and restore a copy of the primary database on the replica.

Примечание

Для прямого присвоения начальных значений необходимо разрешить создание базы данных в каждой вторичной реплике с помощью инструкции ALTER AVAILABILITY GROUP с параметром GRANT CREATE ANY DATABASE .For direct seeding, you must allow database creation on each secondary replica by calling ALTER AVAILABILITY GROUP with the GRANT CREATE ANY DATABASE option.

MANUALMANUAL
Указывает на присвоение начальных значений вручную (по умолчанию).Specifies manual seeding (default). В этом методе вы создаете резервную копию базы данных на первичной реплике и вручную восстанавливаете эту резервную копию на вторичной реплике.This method requires you to create a backup of the database on the primary replica and manually restore that backup on the secondary replica.

BACKUP_PRIORITY = nBACKUP_PRIORITY = n
Указывает приоритет выполнения резервного копирования на данной реплике по отношению к другим репликам из той же группы доступности.Specifies your priority for performing backups on this replica relative to the other replicas in the same availability group. Значение представляет собой целое число в диапазоне от 0 до 100.The value is an integer in the range of 0..100. Данные величины имеют следующие значения:These values have the following meanings:

  • 1..100 показывает, что реплику доступности можно выбрать для выполнения резервного копирования.1..100 indicates that the availability replica could be chosen for performing backups. 1 указывает минимальный приоритет, 100 — наивысший приоритет.1 indicates the lowest priority, and 100 indicates the highest priority. При BACKUP_PRIORITY = 1 реплика доступности будет выбрана для создания резервных копий только в том случае, если реплики доступности с более высоким приоритетом отсутствуют.If BACKUP_PRIORITY = 1, the availability replica would be chosen for performing backups only if no higher priority availability replicas are currently available.

  • Значение 0 указывает, что эта реплика доступности не используется для создания резервных копий.0 indicates that this availability replica is not for performing backups. Этот параметр может быть полезным, например, для исключения удаленной реплики доступности, создание резервных копий на которой нежелательно.This is useful, for example, for a remote availability replica to which you never want backups to fail over.

Дополнительные сведения см. в статье Активные вторичные реплики: резервное копирование во вторичных репликах (группы доступности Always On).For more information, see Active Secondaries: Backup on Secondary Replicas (Always On Availability Groups).

SECONDARY_ROLE ( ... )SECONDARY_ROLE ( ... )
Задает параметры роли, которые будут действовать, если эта реплика доступности в данный момент имеет вторичную роль (то есть когда реплика является вторичной).Specifies role-specific settings that take effect if this availability replica currently owns the secondary role (that is, whenever it is a secondary replica). В скобках укажите один или два параметра вторичной роли.Within the parentheses, specify either or both secondary-role options. Если указываются оба параметра, используйте список с разделителями-запятыми.If you specify both, use a comma-separated list.

Параметры вторичной роли:The secondary role options are as follows:

ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }
Указывает, могут ли базы данных заданной реплики доступности, играющей роль вторичной (т. е. служащей вторичной репликой), принимать соединения от клиентов. Может принимать одно из следующих значений:Specifies whether the databases of a given availability replica that is performing the secondary role (that is, is acting as a secondary replica) can accept connections from clients, one of:

NONO
Для баз данных-получателей этой реплики соединения пользователя не разрешаются.No user connections are allowed to secondary databases of this replica. Для них не разрешен доступ для чтения.They are not available for read access. Это поведение по умолчанию.This is the default behavior.

READ_ONLYREAD_ONLY
Разрешаются только соединения с базами данных во вторичной реплике, у которых свойство "Назначение приложения" имеет значение ReadOnly .Only connections are allowed to the databases in the secondary replica where the Application Intent property is set to ReadOnly . Дополнительные сведения об этом свойстве см. в разделе Using Connection String Keywords with SQL Server Native Client.For more information about this property, see Using Connection String Keywords with SQL Server Native Client.

ALLALL
К базам данных во вторичной реплике разрешаются все соединения на доступ только для чтения.All connections are allowed to the databases in the secondary replica for read-only access.

Дополнительные сведения см. в статье Активные вторичные реплики: вторичные реплики для чтения (группы доступности Always On).For more information, see Active Secondaries: Readable Secondary Replicas (Always On Availability Groups).

READ_ONLY_ROUTING_URL =' TCP :// system-address : port 'READ_ONLY_ROUTING_URL =' TCP ://system-address:port'
Указывает URL-адрес, используемый для маршрутизации запросов на соединение с намерением чтения к этой реплике доступности.Specifies the URL to be used for routing read-intent connection requests to this availability replica. Этот URL-адрес прослушивается компонентом ядра СУБД SQL Server.This is the URL on which the SQL Server Database Engine listens. Обычно экземпляр по умолчанию компонента ядра СУБД SQL Server прослушивает TCP-порт 1433.Typically, the default instance of the SQL Server Database Engine listens on TCP port 1433.

Номер порта для именованного экземпляра вы можете получить, запросив столбцы port и type_desc динамического административного представления sys.dm_tcp_listener_states.For a named instance, you can obtain the port number by querying the port and type_desc columns of the sys.dm_tcp_listener_states dynamic management view. Экземпляр сервера использует прослушиватель Transact-SQL ( type_desc='TSQL' ).The server instance uses the Transact-SQL listener ( type_desc='TSQL' ).

Дополнительные сведения о вычислении URL-адреса маршрутизации только для чтения для реплики см. в разделе Вычисление значения read_only_routing_url для AlwaysOn.For more information about calculating the read-only routing URL for a replica, see Calculating read_only_routing_url for Always On.

Примечание

Для именованного экземпляра SQL ServerSQL Server прослушиватель Transact-SQL должен быть настроен для использования определенного порта.For a named instance of SQL ServerSQL Server, the Transact-SQL listener should be configured to use a specific port. Дополнительные сведения см. в разделе Настройка сервера для прослушивания указанного TCP-порта (диспетчер конфигурации SQL Server).For more information, see Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager).

PRIMARY_ROLE ( ... )PRIMARY_ROLE ( ... )
Задает параметры роли, которые будут действовать, если эта реплика доступности в данный момент имеет первичную роль (то есть когда реплика является первичной).Specifies role-specific settings that take effect if this availability replica currently owns the primary role (that is, whenever it is the primary replica). В скобках укажите один или два параметра первичной роли.Within the parentheses, specify either or both primary-role options. Если указываются оба параметра, используйте список с разделителями-запятыми.If you specify both, use a comma-separated list.

Параметры первичной роли:The primary role options are as follows:

ALLOW_CONNECTIONS = { READ_WRITE | ALL }ALLOW_CONNECTIONS = { READ_WRITE | ALL }
Указывает тип соединений, которые принимаются от клиентов базами данных заданной реплики доступности, которая играет роль первичной. Это может быть один из следующих типов:Specifies the type of connection that the databases of a given availability replica that is performing the primary role (that is, is acting as a primary replica) can accept from clients, one of:

READ_WRITEREAD_WRITE
Соединения, у которых свойство "Назначение приложения" равно ReadOnly , не разрешены.Connections where the Application Intent connection property is set to ReadOnly are disallowed. Если свойство «Назначение приложения» имеет значение ReadWrite или не задано, то соединение разрешено.When the Application Intent property is set to ReadWrite or the Application Intent connection property is not set, the connection is allowed. Дополнительные сведения о свойстве соединения «Назначение приложения» см. в разделе Using Connection String Keywords with SQL Server Native Client.For more information about Application Intent connection property, see Using Connection String Keywords with SQL Server Native Client.

ALLALL
Разрешаются все соединения с базами данных в первичной реплике.All connections are allowed to the databases in the primary replica. Это поведение по умолчанию.This is the default behavior.

READ_ONLY_ROUTING_LIST = { (' <server_instance> ' [ , ... n ] ) | NONE }. Задает список экземпляров сервера (с разделителями-запятыми), на которых будут размещаться реплики доступности для этой группы доступности, удовлетворяющие следующим требованиям при работе во вторичной роли.READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ , ... n ] ) | NONE } Specifies a comma-separated list of server instances that host availability replicas for this availability group that meet the following requirements when running under the secondary role:

  • Настроены для разрешения всех соединений или соединений только для чтения (см. выше аргумент ALLOW_CONNECTIONS параметра SECONDARY_ROLE).Be configured to allow all connections or read-only connections (see the ALLOW_CONNECTIONS argument of the SECONDARY_ROLE option, above).

  • Определен URL-адрес маршрутизации только для чтения (см. выше аргумент READ_ONLY_ROUTING_URL параметра SECONDARY_ROLE).Have their read-only routing URL defined (see the READ_ONLY_ROUTING_URL argument of the SECONDARY_ROLE option, above).

READ_ONLY_ROUTING_LIST имеет следующие значения.The READ_ONLY_ROUTING_LIST values are as follows:

<server_instance> Задает адрес экземпляра SQL ServerSQL Server, где размещается вторичная реплика доступности, которая доступна для чтения при работе во вторичной роли.<server_instance> Specifies the address of the instance of SQL ServerSQL Server that is the host for a replica that is a readable secondary replica when running under the secondary role.

Используйте список с разделителями-запятыми, чтобы указать все экземпляры сервера, где может размещаться доступная для чтения вторичная реплика.Use a comma-separated list to specify all the server instances that might host a readable secondary replica. При маршрутизации только для чтения будет учитываться порядок, в котором экземпляры сервера заданы в списке.Read-only routing follows the order in which server instances are specified in the list. Если включить экземпляр сервера, где размещается реплика, в список маршрутизации только для чтения, то обычно рекомендуется поместить этот экземпляр сервера в конец списка, чтобы подключения с намерением чтения направлялись на вторичную реплику, если она доступна.If you include a replica's host server instance on the replica's read-only routing list, placing this server instance at the end of the list is typically a good practice, so that read-intent connections go to a secondary replica, if one is available.

Начиная с версии SQL Server 2016 (13.x);SQL Server 2016 (13.x) вы можете сбалансировать нагрузку запросов на чтение на вторичных репликах для чтения.Beginning with SQL Server 2016 (13.x);SQL Server 2016 (13.x), you can load-balance read-intent requests across readable secondary replicas. Для этого поместите реплики во вложенный набор с круглыми скобками в список маршрутизации только для чтения.You specify this by placing the replicas in a nested set of parentheses within the read-only routing list. Дополнительные сведения и примеры см. в разделе Настройка балансировки нагрузки между репликами только для чтения.For more information and examples, see Configure load-balancing across read-only replicas.

NoneNONE
Указывает, что, когда эта реплика доступности является первичной, маршрутизация только для чтения не поддерживается.Specifies that when this availability replica is the primary replica, read-only routing is not supported. Это поведение по умолчанию.This is the default behavior.

READ_WRITE_ROUTING_URL = { (' <server_instance> ') }READ_WRITE_ROUTING_URL = { ('<server_instance>') }
Область применения: SQL Server (начиная с версии SQL Server 2019 (15.x))Applies to: SQL Server (Starting with SQL Server 2019 (15.x))

Определяет экземпляры сервера, на которых размещаются реплики доступности для этой группы доступности в соответствии со следующими требованиями при выполнении в первичной роли.Specifies server instances that host availability replicas for this availability group that meet the following requirements when running under the primary role:

  • Спецификация реплики PRIMARY_ROLE содержит READ_WRITE_ROUTING_URL.The replica spec PRIMARY_ROLE includes READ_WRITE_ROUTING_URL.
  • Строке подключения задается значение ReadWrite. Для этого параметру ApplicationIntent задается значение ReadWrite или не задается ничего, чтобы использовалось значение по умолчанию (ReadWrite).The connection string is ReadWrite either by defining ApplicationIntent as ReadWrite or by not setting ApplicationIntent and letting the default (ReadWrite) take effect.

Дополнительные сведения см. в статье Перенаправление подключения с правами на чтение и запись с вторичной на первичную реплику (группы доступности AlwaysOn).For more information, see Secondary to primary replica read/write connection redirection (Always On Availability Groups).

SESSION_TIMEOUT = integerSESSION_TIMEOUT = integer
Указывает интервал времени ожидания сеанса в секундах.Specifies the session-timeout period in seconds. Если этот параметр не определить, интервал времени по умолчанию — 10 секунд.If you do not specify this option, by default, the time period is 10 seconds. Минимальное значение составляет 5 секунд.The minimum value is 5 seconds.

Важно!

Рекомендуется установить интервал времени ожидания в 10 секунд или более.We recommend that you keep the time-out period at 10 seconds or greater.

Дополнительные сведения о периоде времени ожидания сеанса см. в разделе Обзор групп доступности AlwaysOn (SQL Server).For more information about the session-timeout period, see Overview of Always On Availability Groups (SQL Server).

AVAILABILITY GROUP ONAVAILABILITY GROUP ON
Указывает две группы доступности, составляющие распределенную группу доступности .Specifies two availability groups that constitute a distributed availability group . Каждая группа доступности является частью своего отказоустойчивого кластера Windows Server (WSFC).Each availability group is part of its own Windows Server Failover Cluster (WSFC). Когда вы создаете распределенную группу доступности, группа доступности на текущем экземпляре SQL Server становится первичной группой доступности.When you create a distributed availability group, the availability group on the current SQL Server Instance becomes the primary availability group. Вторая группа доступности становится вторичной группой доступности.The second availability group becomes the secondary availability group.

Присоедините вторичную группу доступности к распределенной группе доступности.You need to join the secondary availability group to the distributed availability group. Дополнительные сведения см. в разделе ALTER AVAILABILITY GROUP (Transact-SQL).For more information, see ALTER AVAILABILITY GROUP (Transact-SQL).

<ag_name> Указывает имя группы доступности, составляющей половину распределенной группы доступности.<ag_name> Specifies the name of the availability group that makes up one half of the distributed availability group.

LISTENER =' TCP :// system-address : port 'LISTENER =' TCP ://system-address:port'
Указывает URL-адрес пути для прослушивателя, связанного с группой доступности.Specifies the URL path for the listener associated with the availability group.

Требуется предложение LISTENER.The LISTENER clause is required.

' TCP :// system-address : port '' TCP ://system-address:port'
Указывает URL-адрес для прослушивателя, связанного с группой доступности.Specifies a URL for the listener associated with the availability group. Параметры URL-адреса:The URL parameters are as follows:

system-addresssystem-address
Это строка, такая как имя системы, полное доменное имя или IP-адрес, однозначно идентифицирующая прослушивателя.Is a string, such as a system name, a fully qualified domain name, or an IP address, that unambiguously identifies the listener.

portport
Номер порта, связанный с конечной точкой зеркального отображения группы доступности.Is a port number that is associated with the mirroring endpoint of the availability group. Это не порт прослушивателя.Note that this is not the port of the listener.

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
Указывает, должна ли первичная реплика ждать подтверждения фиксации (записи) записей журнала на диск от вторичной группы доступности перед тем, как фиксировать транзакцию в указанной базе данных.Specifies whether the primary replica has to wait for the secondary availability group to acknowledge the hardening (writing) of the log records to disk before the primary replica can commit the transaction on a given primary database.

SYNCHRONOUS_COMMITSYNCHRONOUS_COMMIT
Указывает, что первичная реплика может фиксировать транзакции только после их записи во вторичной группе доступности.Specifies that the primary replica waits to commit transactions until they have been hardened on the secondary availability group. Вы можете указать SYNCHRONOUS_COMMIT не более чем для двух групп доступности, включая первичную группу доступности.You can specify SYNCHRONOUS_COMMIT for up to two availability groups, including the primary availability group.

ASYNCHRONOUS_COMMITASYNCHRONOUS_COMMIT
Указывает, что первичная реплика фиксирует транзакции без ожидания записи журнала от вторичной группы доступности.Specifies that the primary replica commits transactions without waiting for this secondary availability group to harden the log. Вы можете указать ASYNCHRONOUS_COMMIT не более чем для двух групп доступности, включая первичную группу доступности.You can specify ASYNCHRONOUS_COMMIT for up to two availability groups, including the primary availability group.

Предложение AVAILABILITY_MODE является обязательным.The AVAILABILITY_MODE clause is required.

FAILOVER_MODE = { MANUAL }FAILOVER_MODE = { MANUAL }
Указывает режим отработки отказа распределенной группы доступности.Specifies the failover mode of the distributed availability group.

MANUALMANUAL
Позволяет администратору базы данных осуществлять переход на другой ресурс вручную по плану или принудительно (обычно это называется принудительным переходом на другой ресурс ).Enables planned manual failover or forced manual failover (typically called forced failover ) by the database administrator.

Предложение FAILOVER_MODE является обязательным, а единственный параметр — MANUAL.The FAILOVER_MODE clause is required, and the only option is MANUAL. Во вторичной группе доступности автоматический переход на другой ресурс не поддерживается.Automatic failover to the secondary availability group is not supported.

SEEDING_MODE = { AUTOMATIC | MANUAL }SEEDING_MODE = { AUTOMATIC | MANUAL }
Указывает, как вторичная группа доступности изначально заполняется данными.Specifies how the secondary availability group is initially seeded.

AUTOMATICAUTOMATIC
Включает прямое первоначальное заполнение.Enables direct seeding. Этот метод будет заполнять вторичную группу доступности начальными значениями по сети.This method seeds the secondary availability group over the network. Этот метод не требует резервного копирования и восстановления копии базы данных-источника в репликах вторичной группы доступности.This method does not require you to backup and restore a copy of the primary database on the replicas of the secondary availability group.

MANUALMANUAL
Указывает на присвоение начальных значений вручную (по умолчанию).Specifies manual seeding (default). В этом методе вы создаете резервную копию базы данных на первичной реплике и вручную восстанавливаете эту резервную копию на репликах вторичной группы доступности.This method requires you to create a backup of the database on the primary replica and manually restore that backup on the replica(s) of the secondary availability group.

LISTENER ' dns_имя '( <listener_option> ) Определяет новый прослушиватель группы доступности.LISTENER 'dns_name'( <listener_option> ) Defines a new availability group listener for this availability group. Аргумент LISTENER является необязательным.LISTENER is an optional argument.

Важно!

Перед созданием первого прослушивателя настоятельно рекомендуется ознакомиться со статьей Создание или настройка прослушивателя группы доступности (SQL Server).Before you create your first listener, we strongly recommend that you read Create or Configure an Availability Group Listener (SQL Server).

После создания прослушивателя для заданной группы доступности настоятельно рекомендуется выполнить следующие действия.After you create a listener for a given availability group, we strongly recommend that you do the following:

  • Попросите сетевого администратора зарезервировать IP-адрес, который будет использоваться только этим прослушивателем.Ask your network administrator to reserve the listener's IP address for its exclusive use.
  • Передайте имя узла DNS прослушивателя разработчикам приложения для использования в строке подключения при запросе клиентских соединений к данной группе доступности.Give the listener's DNS host name to application developers to use in connection strings when requesting client connections to this availability group.

dns_namedns_name
Указывает имя узла DNS для прослушивателя группы доступности.Specifies the DNS host name of the availability group listener. Имя DNS прослушивателя должно быть уникальным в домене и в NetBIOS.The DNS name of the listener must be unique in the domain and in NetBIOS.

dns_name является строковым значением.dns_name is a string value. Это имя может содержать только буквы, цифры, дефисы (-) и знаки подчеркивания () в любом порядке.This name can contain only alphanumeric characters, dashes (-), and hyphens (), in any order. В именах узлов DNS учитывается регистр.DNS host names are case insensitive. Максимальная длина равна 63 символам.The maximum length is 63 characters.

Мы рекомендуем указывать строку, которая поддается толкованию.We recommend that you specify a meaningful string. Например, для группы доступности с именем AG1понятным именем узла DNS будет ag1-listener.For example, for an availability group named AG1, a meaningful DNS host name would be ag1-listener.

Важно!

NetBIOS распознает только первые 15 символов в dns_name.NetBIOS recognizes only the first 15 chars in the dns_name. При наличии двух кластеров WSFC, которые управляются одной службой Active Directory, и попытке создать в обоих кластерах прослушивателей группы доступности с именами, содержащими более 15 символов, и одинаковым префиксом из 15 символов возникнет ошибка, указывающая, что не удалось подключиться к ресурсу с именем виртуальной сети.If you have two WSFC clusters that are controlled by the same Active Directory and you try to create availability group listeners in both clusters using names with more than 15 characters and an identical 15 character prefix, an error reports that the Virtual Network Name resource could not be brought online. Дополнительные сведения о правилах именования префиксов для имен DNS см. в разделе Присвоение имен доменов.For information about prefix naming rules for DNS names, see Assigning Domain Names.

<listener_option> LISTENER принимает один из следующих параметров <listener_option>.<listener_option> LISTENER takes one of the following <listener_option> options:

WITH DHCP [ ON { (' four_part_ipv4_address ',' four_part_ipv4_mask ') } ]WITH DHCP [ ON { ('four_part_ipv4_address','four_part_ipv4_mask') } ]
Указывает, что прослушиватель группы доступности использует протокол DHCP.Specifies that the availability group listener uses the Dynamic Host Configuration Protocol (DHCP). Дополнительно можно использовать предложение ON, чтобы определить сеть, для которой создается прослушиватель.Optionally, use the ON clause to identify the network on which this listener is created. Протокол DHCP имеет ограничение на работу только с одной подсетью для каждого экземпляра сервера, на котором размещается реплика в группе доступности.DHCP is limited to a single subnet that is used for every server instances that hosts a replica in the availability group.

Важно!

Использовать протокол DHCP в производственной среде не рекомендуется.We do not recommend DHCP in production environment. Если во время простоя аренда IP-адреса протокола DHCP истечет, то на регистрацию нового сетевого IP-адреса протокола DHCP, связанного с именем DNS-прослушивателя, уйдет дополнительное время, что скажется на производительности клиента.If there is a down time and the DHCP IP lease expires, extra time is required to register the new DHCP network IP address that is associated with the listener DNS name and impact the client connectivity. Однако протокол DHCP полезен при настройке среды разработки и проверки и позволяет проверить базовые функции групп доступности и их интеграцию с приложениями.However, DHCP is good for setting up your development and testing environment to verify basic functions of availability groups and for integration with your applications.

Пример:For example:

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 ]WITH IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ... n ] ) [ , PORT =listener_port ]
Указывает, что вместо использования протокола DHCP прослушиватель группы доступности использует один или несколько статических IP-адресов.Specifies that, instead of using DHCP, the availability group listener uses one or more static IP addresses. Чтобы создать группу доступности, охватывающую несколько подсетей, в конфигурации прослушивателя должен присутствовать один статический IP-адрес для каждой подсети.To create an availability group across multiple subnets, each subnet requires one static IP address in the listener configuration. Для конкретной подсети статический IP-адрес может иметь формат IPv4 или IPv6.For a given subnet, the static IP address can be either an IPv4 address or an IPv6 address. Свяжитесь с администратором сети, чтобы получить статический IP-адрес для каждой подсети, в которой будет размещена реплика для новой группы доступности.Contact your network administrator to get a static IP address for each subnet that hosts a replica for the new availability group.

Пример:For example:

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

ip4_addressip4_address
Задает IPv4-адрес, состоящий из четырех частей, для прослушивателя группы доступности.Specifies an IPv4 four-part address for an availability group listener. Например, 10.120.19.155.For example, 10.120.19.155.

ipv4_maskipv4_mask
Задает IPv4-маску, состоящую из четырех частей, для прослушивателя группы доступности.Specifies an IPv4 four-part mask for an availability group listener. Например, 255.255.254.0.For example, 255.255.254.0.

ipv6_addressipv6_address
Задает IPv6-адрес для прослушивателя группы доступности.Specifies an IPv6 address for an availability group listener. Например, 2001::4898:23:1002:20f:1fff:feff:b3a3.For example, 2001::4898:23:1002:20f:1fff:feff:b3a3.

PORT = listener_portPORT = listener_port
Указывает номер порта listener_port для использования прослушивателем группы доступности, который задается предложением WITH IP.Specifies the port number- listener_port -to be used by an availability group listener that is specified by a WITH IP clause. Параметр PORT является необязательным.PORT is optional.

По умолчанию поддерживается номер порта 1433.The default port number, 1433, is supported. Однако из соображений безопасности, рекомендуется использовать другой номер порта.However, if you have security concerns, we recommend using a different port number.

Например: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777For example: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777

Требования и ограниченияPrerequisites and Restrictions

Сведения о предварительных требованиях к созданию групп доступности см. в разделе Предварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server).For information about the prerequisites for creating an availability group, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

Сведения об ограничениях на инструкции AVAILABILITY GROUP языка Transact-SQL см. в разделе Общие сведения об инструкциях Transact-SQL для групп доступности AlwaysOn (SQL Server).For information about restrictions on the AVAILABILITY GROUP Transact-SQL statements, see Overview of Transact-SQL Statements for Always On Availability Groups (SQL Server).

БезопасностьSecurity

РазрешенияPermissions

Требуется членство в фиксированной роли сервера sysadmin и одно из разрешений: CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP или CONTROL SERVER.Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

ПримерыExamples

A.A. Настройка резервного копирования на вторичных репликах, гибкие политики обработки отказов и доступ к соединениюConfiguring Backup on Secondary Replicas, Flexible Failover Policy, and Connection Access

В следующем примере создается группа доступности MyAg для двух пользовательских баз данных, ThisDatabase и ThatDatabase.The following example creates an availability group named MyAg for two user databases, ThisDatabase and ThatDatabase. В следующей таблице представлена сводка значений для параметров, установленных для группы доступности в целом.The following table summarizes the values specified for the options that are set for the availability group as a whole.

Параметр группыGroup Option ПараметрSetting ОписаниеDescription
AUTOMATED_BACKUP_PREFERENCEAUTOMATED_BACKUP_PREFERENCE SECONDARYSECONDARY Параметр предпочтения автоматического резервного копирования указывает, что резервное копирование должно выполняться на вторичной реплике, за исключением тех случаев, когда в режиме «в сети» находится только первичная реплика (это режим по умолчанию).This automated backup preference indicates that backups should occur on a secondary replica except when the primary replica is the only replica online (this is the default behavior). Чтобы параметр AUTOMATED_BACKUP_PREFERENCE как-то влиял на работу, необходимо создать скрипт заданий резервного копирования для баз данных доступности, чтобы они принимали в расчет предпочтения автоматического резервного копирования.For the AUTOMATED_BACKUP_PREFERENCE setting to have any effect, you need to script backup jobs on the availability databases to take the automated backup preference into account.
FAILURE_CONDITION_LEVELFAILURE_CONDITION_LEVEL 33 Настройка уровня условия сбоя указывает, что следует запустить автоматический переход на другой ресурс в случае появления критических внутренних ошибок SQL Server, таких как потерянные спин-блокировки, серьезные нарушения доступа для записи или формирование слишком больших дампов.This failure condition level setting specifies that an automatic failover should be initiated on critical SQL Server internal errors, such as orphaned spinlocks, serious write-access violations, or too much dumping.
HEALTH_CHECK_TIMEOUTHEALTH_CHECK_TIMEOUT 600 000600000 Значение времени ожидания проверки работоспособности в 60 секунд указывает, что кластер WSFC будет ожидать в течение 60 000 миллисекунд, пока системная хранимая процедура sp_server_diagnostics не вернет сведения о работоспособности экземпляра сервера, на котором размещена реплика с синхронной фиксацией с автоматическим копированием, а затем кластер предположит, что экземпляр основного сервера работает медленно или завис.This health check timeout value, 60 seconds, specifies that the WSFC cluster waits 60000 milliseconds for the sp_server_diagnostics system stored procedure to return server-health information about a server instance that is hosting a synchronous-commit replica with automatic before the cluster assumes that the host server instance is slow or not responding. (Значение по умолчанию — 30 000 миллисекунд).(The default value is 30000 milliseconds).

Три реплики доступности должны быть размещены на экземплярах сервера по умолчанию на компьютерах с именами COMPUTER01, COMPUTER02 и COMPUTER03.Three availability replicas are to be hosted by the default server instances on computers named COMPUTER01, COMPUTER02, and COMPUTER03. В следующей таблице приведена сводка значений, указанных в качестве параметров каждой реплики.The following table summarizes the values specified for the replica options of each replica.

Параметр репликиReplica Option Настройка на COMPUTER01Setting on COMPUTER01 Настройка на COMPUTER02Setting on COMPUTER02 Настройка на COMPUTER03Setting on COMPUTER03 ОписаниеDescription
ENDPOINT_URLENDPOINT_URL TCP:// COMPUTER01:5022TCP:// COMPUTER01:5022 TCP:// COMPUTER02:5022TCP:// COMPUTER02:5022 TCP:// COMPUTER03:5022TCP:// COMPUTER03:5022 В этом примере системы находятся в одном домене, поэтому URL-адреса конечной точки могут использовать имена компьютерной системы в качестве системного адреса.In this example, the systems are the same domain, so the endpoint URLs can use the name of the computer system as the system address.
AVAILABILITY_MODEAVAILABILITY_MODE SYNCHRONOUS_COMMITSYNCHRONOUS_COMMIT SYNCHRONOUS_COMMITSYNCHRONOUS_COMMIT ASYNCHRONOUS_COMMITASYNCHRONOUS_COMMIT Две реплики используют режим синхронной фиксации.Two of the replicas use synchronous-commit mode. При синхронизации они поддерживают отработку отказа без потери данных.When synchronized, they support failover without data loss. Третья реплика использует режим доступности с асинхронной фиксацией.The third replica, which uses asynchronous-commit availability mode.
FAILOVER_MODEFAILOVER_MODE AUTOMATICAUTOMATIC AUTOMATICAUTOMATIC MANUALMANUAL Реплики с синхронной фиксацией поддерживают автоматический переход на другой ресурс и запланированный переход на другой ресурс вручную.The synchronous-commit replicas support automatic failover and planned manual failover. Реплика режима доступности с синхронной фиксацией поддерживает только принудительный переход на другой ресурс вручную.The synchronous-commit availability mode replica supports only forced manual failover.
BACKUP_PRIORITYBACKUP_PRIORITY 3030 3030 9090 Более высокий приоритет со значением 90 назначается реплике с асинхронной фиксацией, а не репликам с синхронной фиксацией.A higher priority, 90, is assigned to the asynchronous-commit replica, than to the synchronous-commit replicas. События резервного копирования чаще происходят на том экземпляре сервера, на котором размещена реплика с асинхронной фиксацией.Backups tend to occur on the server instance that hosts the asynchronous-commit replica.
SECONDARY_ROLESECONDARY_ROLE ( ALLOW_CONNECTIONS = NO,( ALLOW_CONNECTIONS = NO,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' )READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' )
( ALLOW_CONNECTIONS = NO,( ALLOW_CONNECTIONS = NO,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' )READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' )
( ALLOW_CONNECTIONS = READ_ONLY,( ALLOW_CONNECTIONS = READ_ONLY,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' )READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' )
В качестве вторичной реплики с доступом для чтения может служить только реплика с асинхронной фиксацией.Only the asynchronous-commit replica serves as a readable secondary replica.

Указывает имя компьютера и номер порта компонента ядра СУБД по умолчанию (1433).Specifies the computer name and default Database Engine port number (1433).

Этот аргумент является необязательным.This argument is optional.
PRIMARY_ROLEPRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE,( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) )READ_ONLY_ROUTING_LIST = (COMPUTER03) )
( ALLOW_CONNECTIONS = READ_WRITE,( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) )READ_ONLY_ROUTING_LIST = (COMPUTER03) )
( ALLOW_CONNECTIONS = READ_WRITE,( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = NONE )READ_ONLY_ROUTING_LIST = NONE )
В основной роли все реплики отвергают попытки подключения, направленные на чтение данных.In the primary role, all the replicas reject read-intent connection attempts.

Запросы на соединение с намерением чтения направляются на компьютер COMPUTER03, если локальная реплика работает с вторичной ролью.Read-intent connection requests are routed to COMPUTER03 if the local replica is running under the secondary role. Если эта реплика работает с первичной ролью, то маршрутизация только для чтения отключается.When that replica runs under the primary role, read-only routing is disabled.

Этот аргумент является необязательным.This argument is optional.
SESSION_TIMEOUTSESSION_TIMEOUT 1010 1010 1010 В этом примере указано значение времени ожидания завершения сеанса по умолчанию (10).This example specifies the default session timeout value (10). Этот аргумент является необязательным.This argument is optional.

И наконец, в примере указано необязательное предложение LISTENER, предназначенное для создания прослушивателя группы доступности для новой группы доступности.Finally, the example specifies the optional LISTENER clause to create an availability group listener for the new availability group. Для этого прослушивателя задается уникальное имя DNS — MyAgListenerIvP6.A unique DNS name, MyAgListenerIvP6, is specified for this listener. Две реплики находятся в разных подсетях, поэтому прослушивателю необходимо использовать статические IP-адреса.The two replicas are on different subnets, so the listener must use static IP addresses. Для каждой из двух реплик доступности предложение WITH IP указывает статический IP-адрес 2001:4898:f0:f00f::cf3c и 2001:4898:e0:f213::4ce2, использующий формат IPv6.For each of the two availability replicas, the WITH IP clause specifies a static IP address, 2001:4898:f0:f00f::cf3c and 2001:4898:e0:f213::4ce2, which use the IPv6 format. В этом примере также указывается и используется необязательный параметр PORT, указывающий порт 60173 в качестве порта прослушивателя.This example also specifies uses the optional PORT argument to specify port 60173 as the listener port.

CREATE AVAILABILITY GROUP MyAg   
   WITH (  
      AUTOMATED_BACKUP_PREFERENCE = SECONDARY,  
      FAILURE_CONDITION_LEVEL  =  3,   
      HEALTH_CHECK_TIMEOUT = 600000  
       )  
  
   FOR   
      DATABASE  ThisDatabase, ThatDatabase   
   REPLICA ON   
      'COMPUTER01' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER01:5022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC,  
         BACKUP_PRIORITY = 30,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' ),
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),  
         SESSION_TIMEOUT = 10  
         ),   
  
      'COMPUTER02' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER02:5022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC,  
         BACKUP_PRIORITY = 30,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' ),  
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),  
         SESSION_TIMEOUT = 10  
         ),   
  
      'COMPUTER03' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER03:5022',  
         AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,  
         FAILOVER_MODE =  MANUAL,  
         BACKUP_PRIORITY = 90,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' ),  
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = NONE ),  
         SESSION_TIMEOUT = 10  
         );
GO  
ALTER AVAILABILITY GROUP [MyAg]
  ADD LISTENER 'MyAgListenerIvP6' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 );   
GO  

См. также:See Also

ALTER AVAILABILITY GROUP (Transact-SQL) ALTER AVAILABILITY GROUP (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL) ALTER DATABASE SET HADR (Transact-SQL)
DROP AVAILABILITY GROUP (Transact-SQL) DROP AVAILABILITY GROUP (Transact-SQL)
Поиск и устранение неисправностей конфигурации групп доступности AlwaysOn (SQL Server) Troubleshoot Always On Availability Groups Configuration (SQL Server)
Обзор групп доступности AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server)Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)