Partilhar via


Suspender um banco de dados de disponibilidade (SQL Server)

Você pode suspender um banco de dados de disponibilidade no Grupos de Disponibilidade AlwaysOn usando SQL Server Management Studio, Transact-SQL ou PowerShell no SQL Server 2012. Observe que um comando para suspender precisa ser emitido na instância do servidor que hospeda o banco de dados para ser suspenso ou retomado.

O efeito de um comando de suspensão depende de se você suspende um banco de dados secundário ou um banco de dados primário, da seguinte maneira:

Banco de dados suspenso

Efeito do comando de suspensão

Banco de dados secundário

Somente o banco de dados secundário local é suspenso e seu estado de sincronização torna-se NOT SYNCHRONIZING. Outros bancos de dados secundários não são afetados. O banco de dados suspenso para de receber e aplicar dados (registros de log) e começa ficar desatualizado em relação ao banco de dados primário. Conexões existentes nas secundários legíveis permanecem utilizáveis. Novas conexões para o banco de dados suspenso na secundário legível não serão permitidas até que o movimento de dados seja continuado.

O banco de dados primário permanece disponível. Se você suspender cada um dos bancos de dados secundários correspondentes, o banco de dados primário será executado exposto.

Observação importanteImportante

Enquanto um banco de dados secundário permanece suspenso, a fila de envio do banco de dados primário correspondente acumula registros de log de transação não enviados. As conexões para a réplica secundária retornam dados que estavam disponíveis no momento em que o movimento de dados foi suspenso.

Banco de dados primário

O banco de dados primário para o movimento de dados para todos os bancos de dados secundários conectados. O banco de dados primário continua sendo executado em um modo exposto. O banco de dados primário permanece disponível para clientes, e as conexões existentes em um banco de dados secundário legível permanecem utilizáveis e novas conexões podem ser feitas.

ObservaçãoObservação

Suspender um banco de dados secundário AlwaysOn não afetam diretamente a disponibilidade do banco de dados primário. Porém, suspender um banco de dados secundário pode afetar os recursos de redundância e failover para o banco de dados primário. Isto está em contraste com o espelhamento de banco de dados, onde o estado de espelhamento é suspenso no banco de dados espelho e no banco de dados principal. Suspender um banco de dados secundário AlwaysOn suspende o movimento de dados em todos os bancos de dados secundários correspondentes, e os recursos de failover e a redundância são eliminados para esse banco de dados até que o banco de dados primário seja retomado.

  • Antes de começar:

    Limitações e restrições

    Pré-requisitos

    Recomendações

    Segurança

  • Para suspender um banco de dados usando:  

  • SQL Server Management Studio

    Transact-SQL

    PowerShell

  • Acompanhamento:  Evitando um log de transações completo

  • Tarefas relacionadas

Antes de começar

Limitações e restrições

O comando SUSPEND retorna assim que é aceito pela réplica que hospeda o banco de dados de destino, mas, na verdade, a suspensão do banco de dados ocorre de forma assíncrona.

Pré-requisitos

Você deve estar conectado à instância de servidor que hospeda o banco de dados a ser suspenso. Para suspender um banco de dados primários e os bancos de dados secundários correspondentes, conecte-se à instância de servidor que hospeda a réplica primária. Para suspender um banco de dados secundário deixando o banco de dados primário disponível, conecte-se à réplica secundária.

Recomendações

Durante afunilamentos, a suspensão de um ou mais bancos de dados secundários brevemente poderá ser útil para melhorar temporariamente o desempenho na réplica primária. Desde que um banco de dados secundário permaneça suspenso, o log de transações do banco de dados primário correspondente não poderá ser truncado. Isso faz com que os registros de log sejam acumulados no banco de dados primário. Portanto, é recomendável retomar ou remover um banco de dados secundário suspenso rapidamente. Para obter mais informações, consulte Acompanhamento: evitando um log de transações cheio, posteriormente neste tópico.

Segurança

Permissões

Requer a permissão ALTER no banco de dados.

Requer a permissão ALTER AVAILABILITY GROUP no grupo de disponibilidade, a permissão CONTROL AVAILABILITY GROUP, a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.

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

Usando o SQL Server Management Studio

Para suspender um banco de dados

  1. No Pesquisador de Objetos, conecte-se à instância de servidor que hospeda a réplica de disponibilidade na qual você deseja suspender um banco de dados e expanda a árvore de servidores. Para obter mais informações, consulte Pré-requisitos anteriormente neste tópico.

  2. Expanda os nós Alta Disponibilidade AlwaysOn e Grupos de Disponibilidade.

  3. Expanda o grupo de disponibilidade.

  4. Expanda o nó Bancos de dados de Disponibilidade, clique com o botão direito do mouse no banco de dados e clique Suspender a Movimentação de Dados.

  5. Na caixa de diálogo Suspender a Movimentação de Dados, clique em OK.

    O Pesquisador de Objetos indica que o banco de dados está suspenso alterando o ícone de banco de dados para exibir um indicador de pausa.

ObservaçãoObservação

Para suspender bancos de dados adicionais neste local de réplica, repita as etapas 4 e 5 para cada banco de dados.

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

Usando Transact-SQL

Para suspender um banco de dados

  1. Conecte-se à instância do servidor que hospeda a réplica cujo banco de dados você deseja suspender. Para obter mais informações, consulte Pré-requisitos anteriormente neste tópico.

  2. Suspenda o banco de dados usando a seguinte instrução ALTER DATABASE:

    ALTER DATABASE database_name SET HADR SUSPEND

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

Usando o PowerShell

Para suspender um banco de dados

  1. Altere o diretório (cd) para a instância do servidor que hospeda a réplica cujo banco de dados você deseja suspender. Para obter mais informações, consulte Pré-requisitos anteriormente neste tópico.

  2. Use o cmdlet Suspend-SqlAvailabilityDatabase para suspender o grupo de disponibilidade.

    Por exemplo, o comando a seguir suspende a sincronização dos dados para o banco de dados de disponibilidade MyDb3 no grupo de disponibilidade MyAg na instância de servidor chamada Computer\Instance.

    Suspend-SqlAvailabilityDatabase ` 
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3
    
    ObservaçãoObservação

    Para exibir a sintaxe 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.

Para configurar e usar o provedor do SQL Server PowerShell

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

Acompanhamento: evitando um log de transações completo

Normalmente, quando um ponto de verificação automático é executado em um banco de dados, seu log de transações é truncado àquele ponto de verificação após o próximo backup de log. Porém, enquanto um banco de dados secundário está suspenso, todos os registros de log atuais permanecem ativos no banco de dados primário. Se o log de transações ficar cheio (por ter atingido seu tamanho máximo ou porque a instância de servidor ficou sem espaço), o banco de dados não poderá executar mais nenhuma atualização.

Para evitar esse problema, você deverá proceder da seguinte maneira:

Para solucionar problemas de um log de transações completo

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

Tarefas relacionadas

Consulte também

Conceitos

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

Retomar um banco de dados de disponibilidade (SQL Server)