Share via


Criar um Grupo de disponibilidade (SQL Server PowerShell)

Esse tópico descreve como usar os cmdlets do PowerShell para criar e configurar um grupo de disponibilidade AlwaysOn usando o PowerShell no SQL Server 2012. Um grupo de disponibilidade define um conjunto de bancos de dados de usuários que realizará o failover como uma única unidade e um conjunto de parceiros de failover, conhecido como réplicas de disponibilidade, que oferece suporte a failover.

ObservaçãoObservação

Para obter uma introdução aos grupos de disponibilidade, consulte Visão geral de grupos de disponibilidade AlwaysOn (SQL Server).

  • Antes de começar:  

    Pré-requisitos, restrições e recomendações

    Segurança

    Resumo de tarefas e cmdlets de PowerShell correspondentes

    Para configurar e usar o provedor do SQL Server PowerShell

  • Para criar e configurar um grupo de disponibilidade usando:  Usando o PowerShell para criar e configurar um grupo de disponibilidade

  • **Exemplos: ** Usando o PowerShell para criar um grupo de disponibilidade

  • Tarefas relacionadas

  • Conteúdo relacionado

ObservaçãoObservação

Como alternativa para o uso dos cmdlets do PowerShell, você pode usar o assistente para 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

É recomendável que você leia esta seção antes de tentar criar seu primeiro grupo de disponibilidade.

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 do WSFC (Windows Server Failover Clustering) de um único cluster de failover do WSFC. Verifique também se suas instâncias de servidor atendem aos outros pré-requisitos de instância de servidor, se todos os outros requisitos do Grupos de Disponibilidade AlwaysOn são atendidos e se você está ciente das recomendações. Para mais informações, nós recomendamos fortemente que você leia Pré-requisitos, restrições e recomendações para grupos de disponibilidade AlwaysOn (SQL Server).

Ícone de seta usado com o link Voltar ao Início[Top]

Segurança

Permissões

Requer associação na função de servidor fixa sysadmin e a permissão de servidor CREATE AVAILABILITY GROUP, ou a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.

Ícone de seta usado com o link Voltar ao Início[Top]

Resumo de tarefas e cmdlets de PowerShell correspondentes

A tabela a seguir lista as tarefas básicas envolvidas na configuração de um grupo de disponibilidade e indica as tarefas com suporte nos cmdlets do PowerShell. As tarefas Grupos de Disponibilidade AlwaysOn devem ser executadas na sequência em que são apresentadas na tabela.

Tarefa

Cmdlets do PowerShell (se disponíveis) ou instrução Transact-SQL

Onde executar a tarefa*

Criar ponto de extremidade de espelhamento de banco de dados (uma vez por instância do SQL Server)

New-SqlHadrEndPoint

Executar em cada instância de servidor que não tem ponto de extremidade de espelhamento de banco de dados.

ObservaçãoObservação

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 da réplica de disponibilidade na memória para cada uma das duas réplicas de disponibilidade que você pretende incluir no grupo de disponibilidade.

Em seguida, crie o grupo de disponibilidade usando o cmdlet New-SqlAvailabilityGroup e referenciando os objetos da réplica de disponibilidade.

Execute na instância de servidor que deve hospedar a réplica primária inicial.

Unir a réplica secundária ao grupo de disponibilidade

Join-SqlAvailabilityGroup

Execute em cada instância de servidor que hospeda uma réplica secundária.

Preparar os banco de dados secundários

Backup-SqlDatabase e Restore-SqlDatabase

Crie backups na instância de servidor que hospeda a réplica primária.

Restaure backups em cada instância de servidor que hospeda uma réplica secundária, usando o parâmetro de restauração NoRecovery. Se os caminhos dos arquivos forem diferentes nos 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.

Iniciar a sincronização de dados unindo cada banco de dados secundário ao grupo de disponibilidade

Add-SqlAvailabilityDatabase

Execute em cada instância de servidor que hospeda uma réplica secundária.

* Para executar uma tarefa específica, altere o diretório (cd) para as instâncias de servidor indicadas.

Ícone de seta usado com o link Voltar ao Início[Top]

Para configurar e usar o provedor do SQL Server PowerShell

Ícone de seta usado com o link Voltar ao Início[Top]

Usando o PowerShell para criar e configurar um grupo de disponibilidade

ObservaçãoObservação

Para exibir a sintaxe e um exemplo de um cmdlet, use o cmdlet Get-Help no ambiente do SQL Server PowerShell. Para obter mais informações, consulte Obter Ajuda do SQL Server PowerShell.

  1. Altere o diretório (cd) para a instância do servidor que hospeda a réplica primária.

  2. Crie um objeto da réplica de disponibilidade na memória para a réplica primária.

  3. Crie um objeto da réplica de disponibilidade na memória para cada réplica secundária.

  4. Crie o grupo de disponibilidade.

    ObservaçãoObservação

    O tamanho máximo de um nome de grupo de disponibilidade é 128 caracteres.

  5. Una a nova réplica secundária ao grupo de disponibilidade. Para obter mais informações, consulte Unir uma réplica secundária a um grupo de disponibilidade (SQL Server).

  6. Para cada banco de dados do grupo de disponibilidade, crie um banco de dados secundário restaurando backups recentes do banco de dados primário, usando RESTORE WITH NORECOVERY.

  7. Una cada novo banco de dados secundário ao grupo de disponibilidade. Para obter mais informações, consulte Unir uma réplica secundária a um grupo de disponibilidade (SQL Server).

  8. Se desejar, use o comando dir do Windows para verificar o conteúdo do novo grupo de disponibilidade.

ObservaçãoObservação

Se as contas de serviço do SQL Server das instâncias de servidor forem executadas em 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 CONNECT ao ponto de extremidade de espelhamento de banco de dados local.

Ícone de seta usado com o link Voltar ao Início[Top]

Exemplo: usando o PowerShell para criar um grupo de disponibilidade

O exemplo doe PowerShell a seguir cria e configura um grupo de disponibilidade simples denominado MyAG com duas réplicas de disponibilidade e um banco de dados de disponibilidade. O exemplo:

  1. Faz backup do MyDatabase e de seu log de transações.

  2. Restaura o MyDatabase e seu log de transação, usando a opção -NoRecovery.

  3. Cria uma representação na memória da réplica primária, que será hospedada pela instância local do SQL Server (denominada PrimaryComputer\Instance).

  4. Cria uma representação na memória da réplica secundária, que será hospedada por uma instância do SQL Server (denominada SecondaryComputer\Instance).

  5. Cria um grupo de disponibilidade denominado MyAG.

  6. Une a réplica secundária ao grupo de disponibilidade.

  7. Une 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 11 `
    -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 11 `
    -AsTemplate

# Create the availability group
New-SqlAvailabilityGroup `
    -Name "MyAG" `
    -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 "MyAG"

# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "MyDatabase"

Tarefas relacionadas

Para configurar uma instância de servidor para grupos de disponibilidade AlwaysOn

Para configurar um grupo de disponibilidade e propriedades de réplica

Para concluir a configuração do grupo de disponibilidade

Maneiras alternativas de criar um grupo de disponibilidade

Para solucionar problemas de configuração de grupos de disponibilidade AlwaysOn

Ícone de seta usado com o link Voltar ao Início[Top]

Conteúdo relacionado

Ícone de seta usado com o link Voltar ao Início[Top]

Consulte também

Conceitos

O ponto de extremidade de espelhamento de banco de dados (SQL Server)

Visão geral de grupos de disponibilidade AlwaysOn (SQL Server)