New-SqlAvailabilityReplica
Cria uma réplica de disponibilidade.
Sintaxe
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>]
Description
O cmdlet New-SqlAvailabilityReplica cria uma réplica de disponibilidade. Execute este cmdlet na instância do SQL Server que hospeda a réplica primária.
Para criar uma réplica de disponibilidade antes de criar um grupo de disponibilidade, especifique o parâmetro
Exemplos
Exemplo 1: Cria uma representação de uma réplica de disponibilidade
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
Este exemplo cria uma representação na memória de uma réplica de disponibilidade. Nenhuma alteração é confirmada no servidor. Você pode usar essa réplica como um valor para o parâmetro AvailabilityReplica de New-SqlAvailabilityGroup
O primeiro comando obtém uma instância do servidor primário.
O segundo comando cria a réplica de disponibilidade. Essa réplica usa o ponto de extremidade de espelhamento de banco de dados localizado na URL especificada para se comunicar com outras réplicas no grupo de disponibilidade. Essa réplica dá suporte ao failover automático e ao modo de disponibilidade de confirmação síncrona. O parâmetro Version especifica a versão da instância do servidor que hospedará essa nova réplica.
Exemplo 2: Cria uma réplica de disponibilidade que dá suporte ao failover manual e ao assíncrono
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
Este exemplo cria uma representação na memória de uma réplica de disponibilidade. Nenhuma alteração é confirmada no servidor.
O primeiro comando obtém uma instância do servidor primário.
O segundo comando cria a réplica de disponibilidade. Essa réplica usa o ponto de extremidade de espelhamento de banco de dados localizado na URL especificada para se comunicar com outras réplicas no grupo de disponibilidade. Essa réplica dá suporte ao failover manual e ao modo de disponibilidade de confirmação assíncrona. O parâmetro Version especifica a versão da instância do servidor que hospedará essa nova réplica.
Exemplo 3: adicionar uma réplica de disponibilidade a um grupo de disponibilidade
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"
Esse comando adiciona uma réplica de disponibilidade a um grupo de disponibilidade existente chamado 'MainAG'. Essa réplica dá suporte ao failover manual e ao modo de disponibilidade de confirmação assíncrona. Na função secundária, essa réplica dá suporte a conexões de acesso de leitura. Essa configuração permite descarregar o processamento somente leitura para essa réplica.
Parâmetros
-AccessToken
O token de acesso usado para autenticar no SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.
Isso pode ser usado, por exemplo, para se conectar a SQL Azure DB
e SQL Azure Managed Instance
usando um Service Principal
ou um Managed Identity
.
O parâmetro a ser usado pode ser uma cadeia de caracteres que representa o token ou um objeto PSAccessToken
conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Esse parâmetro é novo na v22 do módulo.
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AsTemplate
Indica que esse cmdlet cria um objeto AvailabilityReplica
Se você especificar
Se você especificar esse parâmetro, também deverá especificar uma versão do SQL Server para o parâmetro versão
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AvailabilityMode
Especifica o modo de disponibilidade da réplica.
Você pode especificar um valor de $Null.
Tipo: | AvailabilityReplicaAvailabilityMode |
Valores aceitos: | AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-BackupPriority
Especifica a prioridade desejada das réplicas na execução de backups. Os valores aceitáveis para esse parâmetro são inteiros de 0 a 100. Do conjunto de réplicas que estão online e disponíveis, a réplica que tem a prioridade mais alta executa o backup.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Confirm
Solicita a confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ConnectionModeInPrimaryRole
Especifica como a réplica de disponibilidade lida com conexões quando está na função primária.
Os valores aceitáveis para este parâmetro são:
- AllowReadWriteConnections. Permite conexões de leitura/gravação
- AllowAllConnections. Permite todas as conexões
Tipo: | AvailabilityReplicaConnectionModeInPrimaryRole |
Valores aceitos: | AllowAllConnections, AllowReadWriteConnections, Unknown |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ConnectionModeInSecondaryRole
Especifica como a réplica de disponibilidade lida com conexões quando na função secundária. Os valores aceitáveis para este parâmetro são:
- AllowNoConnections. Não permite conexões
- AllowReadIntentConnectionsOnly. Permite apenas conexões de intenção de leitura
- AllowAllConnections. Permite todas as conexões
Tipo: | AvailabilityReplicaConnectionModeInSecondaryRole |
Valores aceitos: | AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Encrypt
O tipo de criptografia a ser usado ao se conectar ao SQL Server.
Esse valor é mapeado para a propriedade Encrypt
SqlConnectionEncryptOption
no objeto SqlConnection do driver Microsoft.Data.SqlClient.
Na v22 do módulo, o padrão é Optional
(para compatibilidade com v21). Na v23+ do módulo, o valor padrão será 'Obrigatório', o que pode criar uma alteração significativa para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Tipo: | String |
Valores aceitos: | Mandatory, Optional, Strict |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-EndpointUrl
Especifica a URL do ponto de extremidade de espelhamento de banco de dados. Essa URL é um endereço TCP no seguinte formulário:
TCP://system-address:port
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-FailoverMode
Especifica o modo de failover.
Você pode especificar um valor de $Null
Tipo: | AvailabilityReplicaFailoverMode |
Valores aceitos: | Automatic, Manual, External, Unknown |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-HostNameInCertificate
O nome do host a ser usado na validação do certificado TLS/SSL do SQL Server. Você deve passar esse parâmetro se a instância do SQL Server estiver habilitada para o Force Encryption e quiser se conectar a uma instância usando nome de host/nome curto. Se esse parâmetro for omitido, passar o FQDN (Nome de Domínio Totalmente Qualificado) para -ServerInstance será necessário para se conectar a uma instância do SQL Server habilitada para o Force Encryption.
Esse parâmetro é novo na v22 do módulo.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica o grupo de disponibilidade, como um objeto AvailabilityGroup, ao qual a réplica pertence.
Tipo: | AvailabilityGroup |
Cargo: | 2 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-LoadBalancedReadOnlyRoutingList
Especifica a lista de roteamento somente leitura com balanceamento de carga.
A lista de roteamento é uma lista de conjuntos com balanceamento de carga, que, por sua vez, são listas de réplicas.
Por exemplo, passar um valor como
@('Server1','Server2'),@('Server3'),@('Server4')
significa o que estamos passando 3 conjuntos com balanceamento de carga: 1 com 2 réplicas (Server1 e Server2) e 2 com apenas um (Server3 e Server4, respectivamente).
No runtime, o SQL Server examinará sequencialmente todos os conjuntos com balanceamento de carga até encontrar um de modo que pelo menos na réplica esteja disponível e use-o para balanceamento de carga.
Portanto, no exemplo acima, se o Server1 e o Server2 não estiverem disponíveis, mas o Server3 estiver, o SQL Server escolherá Server3.
Esse cmdlet define apenas a lista de roteamento somente leitura e não verifica a disponibilidade das réplicas especificadas.
Tipo: | String[][] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Name
Especifica um nome para a réplica de disponibilidade no seguinte formato: Computador\Instância
Tipo: | String |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Path
Especifica o caminho do grupo de disponibilidade ao qual a réplica pertence. Se você não especificar esse parâmetro, esse cmdlet usará o local de trabalho atual.
Tipo: | String |
Cargo: | 2 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ProgressAction
Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.
Tipo: | ActionPreference |
Aliases: | proga |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ReadonlyRoutingConnectionUrl
Especifica o FQDN (nome de domínio totalmente qualificado) e a porta a serem usadas ao rotear para a réplica para conexões somente leitura, como no exemplo a seguir: TCP://DBSERVER8.manufacturing.Contoso.com:7024
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ReadOnlyRoutingList
Especifica uma lista ordenada de nomes de servidor de réplica que representam a sequência de investigação para o diretor de conexão usar ao redirecionar conexões somente leitura por meio dessa réplica de disponibilidade. Esse parâmetro se aplica se a réplica de disponibilidade é a réplica primária atual do grupo de disponibilidade.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Script
Indica que esse cmdlet retorna um script Transact-SQL que executa a tarefa executada por esse cmdlet.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SeedingMode
Especifica como a réplica secundária será inicialmente propagada.
Valores permitidos:
- Automático. Habilita a propagação direta. Esse método propagará a réplica secundária pela rede. Esse método não exige que você faça backup e restaure uma cópia do banco de dados primário na réplica.
- Manual. Especifica a propagação manual. Esse método exige que você crie um backup do banco de dados na réplica primária e restaure manualmente esse backup na réplica secundária.
Tipo: | AvailabilityReplicaSeedingMode |
Valores aceitos: | Automatic, Manual |
Cargo: | Named |
Valor padrão: | Manual |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SessionTimeout
Especifica a quantidade de tempo, em segundos, para aguardar uma resposta entre a réplica primária e essa réplica antes que a conexão falhe.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-TrustServerCertificate
Indica se o canal será criptografado ao ignorar a cadeia de certificados para validar a confiança.
Na v22 do módulo, o padrão é $true
(para compatibilidade com v21). Na v23+ do módulo, o valor padrão será "$false", o que pode criar uma alteração significativa para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Version
Especifica uma versão do SQL Server. Se você especificar o parâmetro AsTemplate, deverá especificar uma versão. O objeto de modelo é criado no modo de design em um servidor que inclui essa versão. Você pode especificar um inteiro ou uma cadeia de caracteres, como nos exemplos a seguir (SQL Server 2017):
- 14
- '14.0.0'
Tipo: | ServerVersion |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Microsoft.SqlServer.Management.Smo.AvailabilityGroup
Você pode passar um grupo de disponibilidade para este cmdlet.
Saídas
Microsoft.SqlServer.Management.Smo.AvailabilityReplica
Esse cmdlet retorna uma réplica de disponibilidade.