Поделиться через


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>]
   [-ProgressAction <ActionPreference>]
   [-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>]
   [-ProgressAction <ActionPreference>]
   [-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>]
   [-ProgressAction <ActionPreference>]
   [-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

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

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

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

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

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-адресу, для взаимодействия с другими репликами в группе доступности. Эта реплика поддерживает отработку отказа вручную и режим доступности асинхронной фиксации. Параметр версии указывает версию экземпляра сервера, на котором будет размещена новая реплика.

Пример 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. Эта реплика поддерживает режим доступности отработки отказа вручную и асинхронной фиксации. В вторичной роли эта реплика поддерживает подключения для чтения. Эта конфигурация позволяет выгрузить обработку только для чтения в эту реплику.

Параметры

-AccessToken

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

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

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

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

Тип:PSObject
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsTemplate

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AvailabilityMode

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

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

Тип:AvailabilityReplicaAvailabilityMode
Допустимые значения:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-BackupPriority

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

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

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ConnectionModeInPrimaryRole

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

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

  • AllowReadWriteConnections. Разрешает подключения для чтения и записи
  • AllowAllConnections. Разрешает все подключения
Тип:AvailabilityReplicaConnectionModeInPrimaryRole
Допустимые значения:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ConnectionModeInSecondaryRole

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

  • AllowNoConnections. Запретить подключения
  • AllowReadIntentConnectionsOnly. Разрешает только подключения с намерением чтения
  • AllowAllConnections. Разрешает все подключения
Тип:AvailabilityReplicaConnectionModeInSecondaryRole
Допустимые значения:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Encrypt

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

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

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

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

Тип:String
Допустимые значения:Mandatory, Optional, Strict
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EndpointUrl

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

TCP://system-address:port

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FailoverMode

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

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

Тип:AvailabilityReplicaFailoverMode
Допустимые значения:Automatic, Manual, External, Unknown
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-HostNameInCertificate

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

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

Тип:AvailabilityGroup
Position:2
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-LoadBalancedReadOnlyRoutingList

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

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

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

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

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

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

Таким образом, в приведенном выше примере, если сервер1 и Server2 недоступны, но сервер 3 — sql Server будет выбирать Server3.

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

Тип:String[][]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Name

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

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

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

Тип:String
Position:2
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ProgressAction

Определяет, как PowerShell реагирует на обновления хода выполнения, созданные скриптом, командлетом или поставщиком, например индикаторами хода выполнения, созданными командлетом Write-Progress. Командлет Write-Progress создает индикаторы хода выполнения, показывающие состояние команды.

Тип:ActionPreference
Aliases:proga
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ReadonlyRoutingConnectionUrl

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ReadOnlyRoutingList

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

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Script

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SeedingMode

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

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

  • Автоматически. Включает прямое сеяние. Этот метод будет заполнять вторичную реплику по сети. Этот метод не требует резервного копирования и восстановления копии базы данных-источника на реплике.
  • Вручную. Указывает начальное значение вручную. Для этого метода необходимо создать резервную копию базы данных на первичной реплике и вручную восстановить резервную копию на вторичной реплике.
Тип:AvailabilityReplicaSeedingMode
Допустимые значения:Automatic, Manual
Position:Named
Default value:Manual
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SessionTimeout

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TrustServerCertificate

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

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Version

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

  • 14
  • '14.0.0'
Тип:ServerVersion
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

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

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

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

Microsoft.SqlServer.Management.Smo.AvailabilityGroup

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

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

Microsoft.SqlServer.Management.Smo.AvailabilityReplica

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