New-SqlAvailabilityReplica

Создает реплику доступности.

Синтаксис

New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-Name] <String>
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-AsTemplate]
   [-Version <ServerVersion>]
   [-Name] <String>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-Name] <String>
   [-InputObject] <AvailabilityGroup>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

Командлет New-SqlAvailabilityReplica создает реплика доступности. Выполните этот командлет на экземпляре SQL Server, на котором размещен основной реплика.

Чтобы создать реплика доступности перед созданием группы доступности, укажите параметр AsTemplate. Чтобы добавить реплика в существующую группу доступности, параметр InputObject или Path указывает группу доступности.

Примеры

Пример 1. Создание представления реплика доступности

PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "PrimaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate -Version $ServerObject.Version

В этом примере создается представление реплики доступности в памяти. Никакие изменения на сервере не фиксируются. Этот реплика можно использовать в качестве значения параметра AvailabilityReplicaобъекта New-SqlAvailabilityGroup.

Первая команда получает экземпляр сервера-источника.

Вторая команда создает реплика доступности. Этот реплика использует конечную точку зеркального отображения базы данных, расположенную по указанному URL-адресу, для взаимодействия с другими репликами в группе доступности. Эта реплика поддерживает автоматический переход на другой ресурс и режим доступности «Synchronous Commit». Параметр Version указывает версию экземпляра сервера, на котором будет размещаться эта новая реплика.

Пример 2. Создание реплика доступности, поддерживающей отработку отказа вручную и асинхронную отработку отказа.

PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -AsTemplate -Version $ServerObject.Version

В этом примере создается представление реплики доступности в памяти. Никакие изменения на сервере не фиксируются.

Первая команда получает экземпляр сервера-источника.

Вторая команда создает реплика доступности. Этот реплика использует конечную точку зеркального отображения базы данных, расположенную по указанному URL-адресу, для взаимодействия с другими репликами в группе доступности. Данная реплика поддерживает переход на другой ресурс вручную и режим доступности «Asynchronous Commit». Параметр Version указывает версию экземпляра сервера, на котором будет размещаться эта новая реплика.

Пример 3. Добавление реплика доступности в группу доступности

PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -ConnectionModeInSecondaryRole AllowAllConnections -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"

Эта команда добавляет реплика доступности в существующую группу доступности с именем MainAG. Данная реплика поддерживает переход на другой ресурс вручную и режим доступности «Asynchronous Commit». Во вторичной роли это реплика поддерживает подключения доступа на чтение. Эта конфигурация позволяет выгрузить обработку только для чтения в этот реплика.

Параметры

-AccessToken

Маркер доступа, используемый для проверки подлинности для SQL Server в качестве альтернативы проверке подлинности пользователя или пароля или проверки подлинности Windows.

Это можно использовать, например, для подключения к SQL Azure DB и SQL Azure Managed Instance с помощью Service Principal или Managed Identity.

Используемый параметр может быть строкой, представляющей маркер, или объектом, PSAccessToken возвращенным при выполнении .Get-AzAccessToken -ResourceUrl https://database.windows.net

Этот параметр является новым в версии 22 модуля.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsTemplate

Указывает, что этот командлет создает временный объект AvailabilityReplica в памяти. Укажите этот параметр, чтобы создать группу доступности перед созданием реплика доступности. Создайте группу доступности с помощью командлета New-SqlAvailabilityGroup . Укажите временную реплика доступности в качестве значения параметра AvailabilityReplica.

Если указать AsTemplate, этот командлет игнорирует значения параметров InputObject и Path .

При указании этого параметра необходимо также указать версию SQL Server для параметра Version, иначе текущий сеанс должен иметь активное подключение к экземпляру.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilityMode

Указывает режим доступности реплика.

Можно указать значение $Null.

Type:AvailabilityReplicaAvailabilityMode
Accepted values:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BackupPriority

Указывает требуемый приоритет реплик при выполнении резервного копирования. Допустимыми значениями для этого параметра являются целые числа от 0 до 100. Из набора реплик, которые находятся в сети и доступны, резервное копирование выполняет реплика с наивысшим приоритетом.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Запрос подтверждения перед выполнением командлета.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInPrimaryRole

Указывает, как реплика доступности обрабатывает подключения в основной роли.

Допустимые значения для этого параметра:

  • AllowReadWriteConnections. Разрешает подключения для чтения и записи
  • AllowAllConnections. разрешить все соединения.
Type:AvailabilityReplicaConnectionModeInPrimaryRole
Accepted values:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInSecondaryRole

Указывает, как реплика доступности обрабатывает подключения во вторичной роли. Допустимые значения для этого параметра:

  • AllowNoConnections. запретить соединения;
  • AllowReadIntentConnectionsOnly. разрешить только соединения для чтения;
  • AllowAllConnections. разрешить все соединения.
Type:AvailabilityReplicaConnectionModeInSecondaryRole
Accepted values:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Тип шифрования, используемый при подключении к SQL Server.

Это значение сопоставляется со свойством EncryptSqlConnectionEncryptOption объекта SqlConnection драйвера Microsoft.Data.SqlClient.

В версии 22 модуля по умолчанию используется Optional значение (для совместимости с версией 21). В версии 23+ модуля значением по умолчанию будет "Обязательно", что может привести к критическому изменению для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EndpointUrl

Указывает URL-адрес конечной точки зеркального отображения базы данных. Этот URL-адрес является TCP-адресом в следующей форме:

TCP://системный адрес:порт

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FailoverMode

Указывает режим отработки отказа.

Можно указать значение $Null

Type:AvailabilityReplicaFailoverMode
Accepted values:Automatic, Manual, External, Unknown
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Имя узла используется для проверки TLS/SSL-сертификата SQL Server. Этот параметр необходимо передать, если экземпляр SQL Server включен для принудительного шифрования и вы хотите подключиться к экземпляру с помощью hostname/shortname. Если этот параметр опущен, для подключения к экземпляру SQL Server, включенного для принудительного шифрования, необходимо передать полное доменное имя (FQDN) в параметр -ServerInstance.

Этот параметр является новым в версии 22 модуля.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает группу доступности в виде объекта AvailabilityGroup, к которой принадлежит реплика.

Type:AvailabilityGroup
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LoadBalancedReadOnlyRoutingList

Задает список маршрутизации только для чтения с балансировкой нагрузки.

Список маршрутизации — это список наборов с балансировкой нагрузки, которые, в свою очередь, являются списками реплик.

Например, при передаче значения, например

@('Server1','Server2'),@('Server3'),@('Server4')

означает, что мы отдаем 3 набора с балансировкой нагрузки: 1 с 2 репликами (Server1 и Server2) и 2 с одним (Server3 и Server4 соответственно).

Во время выполнения SQL Server будет последовательно смотреть на все наборы с балансировкой нагрузки, пока не найдет такой набор, который будет доступен по крайней мере на реплика в нем, и будет использовать его для балансировки нагрузки.

Таким образом, в приведенном выше примере, если оба сервера Server1 и Server2 недоступны, но Server3, SQL Server выберите Server3.

Этот командлет задает только список маршрутизации только для чтения и не проверка на доступность указанных реплик.

Type:String[][]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Указывает имя для реплика доступности в следующем формате: Компьютер\Экземпляр

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

Указывает путь к группе доступности, к которой принадлежит реплика. Если этот параметр не указан, этот командлет использует текущее рабочее расположение.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadonlyRoutingConnectionUrl

Указывает полное доменное имя (FQDN) и порт, используемые при маршрутизации в реплика для подключений только для чтения, как показано в следующем примере: TCP://DBSERVER8.manufacturing.Contoso.com:7024

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadOnlyRoutingList

Задает упорядоченный список имен серверов реплика, представляющих последовательность проб, которую директор подключений использует при перенаправлении подключений только для чтения через этот реплика доступности. Этот параметр применяется, если реплика доступности является текущим основным реплика группы доступности.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

Указывает, что этот командлет возвращает скрипт Transact-SQL, который выполняет задачу, выполняемую этим командлетом.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SeedingMode

Указывает, как вторичная реплика изначально заполняется данными.

Допустимые значения:

  • Автоматический. Включает прямое первоначальное заполнение. Этот метод будет заполнять вторичную реплику начальными значениями по сети. Этот метод не требует резервного копирования и восстановления копии базы данных-источника в реплике.
  • Вручную. Задает присвоение начальных значений вручную. В этом методе вы создаете резервную копию базы данных на первичной реплике и вручную восстанавливаете эту резервную копию на вторичной реплике.
Type:AvailabilityReplicaSeedingMode
Accepted values:Automatic, Manual
Position:Named
Default value:Manual
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionTimeout

Указывает время (в секундах) ожидания ответа между основным реплика и этим реплика до сбоя подключения.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.

В версии 22 модуля по умолчанию используется $true значение (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "$false", что может привести к критическому изменению для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Version

Указывает версию SQL Server. Если указан параметр AsTemplate , необходимо указать версию. Объект шаблона создается в режиме конструктора на сервере, который включает эту версию. Можно указать целое число или строку, как показано в следующих примерах (SQL Server 2017 г.):

  • 14
  • '14.0.0'
Type:ServerVersion
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

Microsoft.SqlServer.Management.Smo.AvailabilityGroup

В этот командлет можно передать группу доступности.

Выходные данные

Microsoft.SqlServer.Management.Smo.AvailabilityReplica

Этот командлет возвращает реплика доступности.