Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este tópico descreve como usar cmdlets do PowerShell para criar e configurar um grupo de disponibilidade Always On usando o PowerShell no SQL Server. Um grupo de disponibilidade define um conjunto de bancos de dados de usuário que serão transferidos em caso de falha como uma única unidade e um conjunto de parceiros de failover, conhecidos como réplicas de disponibilidade, que oferecem suporte à transferência em caso de falha.
Observação
Para obter uma introdução aos grupos de disponibilidade, consulte Visão geral dos grupos de disponibilidade Always On (SQL Server).
Observação
Como alternativa ao uso de cmdlets do PowerShell, você pode usar o assistente Criar Grupo de Disponibilidade ou o Transact-SQL. Para obter mais informações, consulte Usar a caixa de diálogo Novo Grupo de Disponibilidade (SQL Server Management Studio) ou Criar um Grupo de Disponibilidade (Transact-SQL).
Antes de começar
Pré-requisitos, restrições e recomendações
- Antes de criar um grupo de disponibilidade, verifique se cada instância de host do SQL Server reside em um nó diferente dentro de um único cluster de failover WSFC (Cluster de Failover do Windows Server). Além disso, verifique se as instâncias do servidor atenderam aos outros pré-requisitos da instância do servidor e se todos os outros requisitos dos grupos de disponibilidade Always On foram atendidos e se você está ciente das recomendações. Para obter mais informações, é altamente recomendável ler Pré-requisitos, restrições e recomendações para grupos de disponibilidade Always On (SQL Server).
Permissions
Requer associação à função de servidor fixa sysadmin e as permissões de servidor CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP ou CONTROL SERVER.
Usando o PowerShell para criar e configurar um grupo de disponibilidade
A tabela a seguir lista as tarefas básicas envolvidas na configuração de um grupo de disponibilidade e indica aquelas que são suportadas pelos cmdlets do PowerShell. As tarefas dos grupos de disponibilidade Always On devem ser executadas na sequência em que são apresentadas na tabela.
| Tarefa | Cmdlets do PowerShell (caso disponíveis) ou instrução do Transact-SQL | Onde executar a tarefa |
|---|---|---|
| Criar uma endpoint de espelhamento de base de dados (uma vez por instância de SQL Server) | New-SqlHadrEndPoint | Execute em cada instância do servidor que não possui ponto de extremidade de espelhamento de banco de dados. Para alterar um ponto de extremidade de espelhamento de banco de dados existente, use Set-SqlHadrEndpoint. |
| Criar grupo de disponibilidade | Primeiro, use o cmdlet New-SqlAvailabilityReplica com o parâmetro -AsTemplate para criar um objeto de réplica de disponibilidade na memória para cada uma das duas réplicas de disponibilidade que você planeja incluir no grupo de disponibilidade. Em seguida, crie o grupo de disponibilidade usando o cmdlet New-SqlAvailabilityGroup e fazendo referência aos seus objetos de réplica de disponibilidade. |
Execute na instância do servidor que hospedará a réplica primária inicial. |
| Associar réplica secundária ao grupo de disponibilidade | Join-SqlAvailabilityGroup | Execute em cada instância do servidor que hospeda uma réplica secundária. |
| Preparar o banco de dados secundário | Backup-SqlDatabase e Restore-SqlDatabase | Crie backups na instância do servidor que hospeda a réplica primária. Restaure backups em cada instância do servidor que hospeda uma réplica secundária, usando o parâmetro de restauração NoRecovery . Se os caminhos de arquivo forem diferentes entre os computadores que hospedam a réplica primária e a réplica secundária de destino, use também o parâmetro de restauração RelocateFile . |
| Inicie a sincronização de dados associando cada banco de dados secundário ao grupo de disponibilidade | Add-SqlAvailabilityDatabase | Execute em cada instância do servidor que hospeda uma réplica secundária. |
Observação
Para executar as tarefas fornecidas, altere o diretório (cd) para a instância ou instâncias do servidor indicadas.
Usando o PowerShell
Configure e use o Provedor do SQL Server PowerShell.
Observação
Para exibir a sintaxe e um exemplo de um determinado cmdlet, use o cmdlet Get-Help no ambiente do SQL Server PowerShell. Para obter mais informações, consulte Obter ajuda do SQL Server PowerShell.
Altere o diretório (cd) para a instância do servidor que hospedará a réplica primária.
Crie um objeto de réplica de disponibilidade na memória para a réplica primária.
Crie um objeto de réplica de disponibilidade na memória para cada uma das réplicas secundárias.
Crie o grupo de disponibilidade.
Observação
O comprimento máximo para um nome de grupo de disponibilidade é de 128 caracteres.
Junte a nova réplica secundária ao grupo de disponibilidade, consulte Associar uma réplica secundária a um grupo de disponibilidade (SQL Server).
Para cada banco de dados no grupo de disponibilidade, crie um banco de dados secundário restaurando backups recentes do banco de dados primário, usando RESTORE WITH NORECOVERY.
Junte cada novo banco de dados secundário ao grupo de disponibilidade, consulte Associar uma réplica secundária a um grupo de disponibilidade (SQL Server).
(facultativo) Use o comando dir do Windows para verificar o conteúdo do novo grupo de disponibilidade.
Observação
Se as contas de serviço do SQL Server das instâncias de servidor forem executadas sob contas de usuário de domínios diferentes, em cada instância de servidor, crie um logon para a outra instância de servidor e conceda a esse logon a permissão de CONNECT ao ponto de extremidade de espelhamento do banco de dados local.
Example
O exemplo do PowerShell a seguir cria e configura um grupo de disponibilidade simples nomeado <myAvailabilityGroup> com duas réplicas de disponibilidade e um banco de dados de disponibilidade. O exemplo:
Efetua o backup de
<myDatabase>e o seu log de transações.Restaura
<myDatabase>e seu log de transações, usando a opção -NoRecovery .Cria uma representação na memória da réplica primária, que será hospedada pela instância local do SQL Server (chamada
PrimaryComputer\Instance).Cria uma representação na memória da réplica secundária, que será hospedada por uma instância do SQL Server (chamada
SecondaryComputer\Instance).Cria um grupo de disponibilidade chamado
<myAvailabilityGroup>.Associa a réplica secundária ao grupo de disponibilidade.
Associa o banco de dados secundário ao grupo de disponibilidade.
# Backup my database and its log on the primary
Backup-SqlDatabase `
-Database "<myDatabase>" `
-BackupFile "\\share\backups\<myDatabase>.bak" `
-ServerInstance "PrimaryComputer\Instance"
Backup-SqlDatabase `
-Database "<myDatabase>" `
-BackupFile "\\share\backups\<myDatabase>.log" `
-ServerInstance "PrimaryComputer\Instance" `
-BackupAction Log
# Restore the database and log on the secondary (using NO RECOVERY)
Restore-SqlDatabase `
-Database "<myDatabase>" `
-BackupFile "\\share\backups\<myDatabase>.bak" `
-ServerInstance "SecondaryComputer\Instance" `
-NoRecovery
Restore-SqlDatabase `
-Database "<myDatabase>" `
-BackupFile "\\share\backups\<myDatabase>.log" `
-ServerInstance "SecondaryComputer\Instance" `
-RestoreAction Log `
-NoRecovery
# Create an in-memory representation of the primary replica.
$primaryReplica = New-SqlAvailabilityReplica `
-Name "PrimaryComputer\Instance" `
-EndpointURL "TCP://PrimaryComputer.domain.com:5022" `
-AvailabilityMode "SynchronousCommit" `
-FailoverMode "Automatic" `
-Version 12 `
-AsTemplate
# Create an in-memory representation of the secondary replica.
$secondaryReplica = New-SqlAvailabilityReplica `
-Name "SecondaryComputer\Instance" `
-EndpointURL "TCP://SecondaryComputer.domain.com:5022" `
-AvailabilityMode "SynchronousCommit" `
-FailoverMode "Automatic" `
-Version 12 `
-AsTemplate
# Create the availability group
New-SqlAvailabilityGroup `
-Name "<myAvailabilityGroup>" `
-Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `
-AvailabilityReplica @($primaryReplica,$secondaryReplica) `
-Database "<myDatabase>"
# Join the secondary replica to the availability group.
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "<myAvailabilityGroup>"
# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -Database "<myDatabase>"
Tarefas relacionadas
Para configurar uma instância de servidor para Grupos de Disponibilidade Always On
Para configurar o grupo de disponibilidade e as propriedades de réplica
Alterar o modo de disponibilidade de uma réplica de disponibilidade (SQL Server)
Alterar o modo de failover de uma réplica de disponibilidade (SQL Server)
Criar ou configurar um ouvinte do grupo de disponibilidade (SQL Server)
Configurar backup em Réplicas de Disponibilidade (SQL Server)
Configurar o acesso Read-Only em uma réplica de disponibilidade (SQL Server)
Configurar o roteamento de Read-Only para um grupo de disponibilidade (SQL Server)
Alterar o período de timeout da sessão para réplica de disponibilidade (SQL Server)
Para concluir a configuração do grupo de disponibilidade
Associar uma réplica secundária a um grupo de disponibilidade (SQL Server)
Preparar manualmente um banco de dados secundário para um grupo de disponibilidade (SQL Server)
Associar um banco de dados secundário a um grupo de disponibilidade (SQL Server)
Criar ou configurar um ouvinte do grupo de disponibilidade (SQL Server)
Formas alternativas de criar um grupo de disponibilidade
Usar o Assistente de Grupo de Disponibilidade (SQL Server Management Studio)
Usar a caixa de diálogo Novo Grupo de Disponibilidade (SQL Server Management Studio)
Para solucionar problemas de configuração de Grupos de Disponibilidade Always On
Solucionar problemas de configuração de grupos de disponibilidade Always On (SQL Server)
Solucionar problemas de uma operação de Add-File com falha (grupos de disponibilidade Always On)
Conteúdo relacionado
Blogues:
Configurando o Always On com o SQL Server PowerShell
Blogs da Equipe Always On do SQL Server: O Blog Oficial da Equipe Always On do SQL Server
Whitepapers:
Ver também
O endpoint de espelhamento de base de dados (SQL Server)
Visão geral dos grupos de disponibilidade Always On (SQL Server)