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