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.
Если указать
Если этот параметр указан, необходимо также указать версию 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.
Это значение сопоставляется со свойством Encrypt
SqlConnectionEncryptOption
в объекте 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
Этот командлет возвращает реплику доступности.