Restaurar um banco de dados de grupo de disponibilidade existente participando de grupos de disponibilidade Always On do SQL Server

Restaurar um banco de dados de grupo de disponibilidade existente participando de grupos de disponibilidade Always On do SQL Server

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Nestes 20º artigo da série Grupo de disponibilidade Always On do SQL Server, abordaremos as etapas para restaurar um banco de dados de grupo de disponibilidade existente.

Requerimento

Suponha que temos vários ambientes de banco de dados para um aplicativo crítico. Esses ambientes podem ser de desenvolvimento, estágio, UAT (teste de aceitação do usuário). Você pode ter configurado o banco de dados de desenvolvimento também em uma configuração de grupo de disponibilidade. Normalmente, os desenvolvedores pedem para atualizar os bancos de dados de desenvolvimento dos dados de produção. Isso os ajuda a testar o código para dados de produção antes da implementação de produção real. Atualizar os bancos de dados de ambiente inferior também pode ser uma atividade regular (mensal), portanto, você pode automatizar as etapas facilmente usando os scripts SQL.

Você pode ter uma pergunta aqui– Podemos fazer backup do banco de dados de produção e restaurá-lo no banco de dados de desenvolvimento. Que diferença isso faz em uma restauração de banco de dados independente ou restauração de banco de dados de grupo de disponibilidade?

A restauração do banco de dados funciona com o banco de dados independente, mas se o banco de dados estiver configurado no grupo de disponibilidade, não podemos restaurar o banco de dados diretamente. Requer etapas adicionais devido às configurações de AG. Nosso banco de dados também deve estar no mesmo estado (AG sincronizado) após a restauração do banco de dados.

Neste artigo, vamos cobrir as etapas para restaurar um banco de dados de grupo de disponibilidade existente no Grupo de Disponibilidade Always On do SQL Server.

Pré-requisitos

Você deve ter dois ou mais nós na configuração do Grupo de Disponibilidade Always On do SQL Server.

Neste artigo, temos o seguinte ambiente para fins de demonstração,

  • Nós: SQLAG1 e SQLAG2
  • Grupo de disponibilidade: [SQLLogShipAG]
  • Base de dados: [SQLShackDemo]
  • Estado de sincronização: sincronizado
  • Modo de failover: automático
  • Painel AG: Saudável

Painel do Grupo de disponibilidade Always On do SQL Server

Você pode seguir a série Grupo de disponibilidade Always On do SQL Server (ToC na parte inferior) para preparar o ambiente AG completo para este artigo. Você também deve compreender os conceitos do grupo de disponibilidade para se familiarizar com sua terminologia.

Leia Também  E se você realmente precisar reduzir um banco de dados?

Etapas para restaurar um banco de dados de grupo de disponibilidade em grupos de disponibilidade Always On do SQL Server

Suponha que você precise restaurar o [SQLShackDemo] banco de dados da produção ao ambiente de desenvolvimento. Em meu ambiente de desenvolvimento, o banco de dados faz parte do grupo de disponibilidade.

Peguei o backup completo do banco de dados de produção e copiei o arquivo de backup no servidor de desenvolvimento. Para restaurar este backup em uma instância de desenvolvimento, clique com o botão direito no [SQLShackDemo] banco de dados e navegue até Tarefas -> Restaurar-> Banco de dados. No assistente de restauração do banco de dados, especifique o local do arquivo de backup e clique em ok. Você receberá a seguinte mensagem de erro.

restaurar um banco de dados de grupo de disponibilidade

De acordo com a mensagem de erro, não podemos restaurar o banco de dados porque ele faz parte de um grupo de disponibilidade. Para restaurar o banco de dados do grupo de disponibilidade, precisamos remover o banco de dados do grupo de disponibilidade, restaurar o banco de dados e adicionar o grupo de disponibilidade. Vamos explorar a etapa de detalhes e restaurar o banco de dados.

Etapa 1: remover o banco de dados de um grupo de disponibilidade nos grupos de disponibilidade Always On do SQL Server

Conecte-se à instância de réplica primária no SSMS e expanda os bancos de dados de disponibilidade. Você pode ter vários grupos de disponibilidade em uma instância SQL. Você precisa remover o banco de dados específico do grupo de disponibilidade.

Clique com o botão direito no banco de dados e clique em Remover banco de dados do grupo de disponibilidade

Remover banco de dados do grupo de disponibilidade

Ele abre o seguinte banco de dados de remoção do assistente de grupo de disponibilidade.

assistente de grupo de disponibilidade

Você também pode gerar o script a partir deste assistente. Usa o Alterar grupo de disponibilidade instrução com a cláusula Remove database.

Ele remove o banco de dados do grupo de disponibilidade, portanto, se você atualizar o painel AG, ele mostrará o seguinte erro e avisos. Ele mostra o status de sincronização também como Não Sincronizando no painel.

Erro de painel

Clique no erro crítico no estado do grupo de disponibilidade. Isso não indica que não há banco de dados no grupo de disponibilidade. Ele diz que algumas réplicas de disponibilidade não estão sincronizando dados.

Leia Também  Um guia abrangente para a função Formato SQL

Mensagem de erro detalhada

Etapa 2: restaurar o banco de dados do backup de produção nos grupos de disponibilidade Always On do SQL Server

Agora, você pode restaurar o banco de dados de maneira semelhante a um banco de dados independente. O banco de dados está no status online na réplica primária; portanto, no assistente de restauração, ele solicita o backup do final do log.

Restaurar o banco de dados

Clique em Opções e execute as seguintes tarefas.

  • Remova o carrapato do Faça backup do final do log antes da restauração. Não queremos nenhum backup do final do log e queremos restaurar o backup do banco de dados de produção. Você pode consultar Backup e Restauração do Tail-Log no SQL Server para obter mais detalhes sobre backups do Tail-Log
  • Coloque um cheque no Feche as conexões existentes com o banco de dados de destino. Ele remove todas as conexões de banco de dados existentes e disponibiliza o banco de dados para a restauração. Se você não fizer essa verificação no assistente de restauração e o banco de dados tiver conexões existentes, receberá uma mensagem de erro sobre as conexões existentes. Nesse caso, você deve fechar todas as conexões existentes usando a instrução KILL SPID manualmente

faça backup do log

Clique em Ok para iniciar a restauração do banco de dados. Você obtém outro erro porque o banco de dados está online e temos um backup de log final desabilitado. Precisamos substituir o banco de dados usando a cláusula WITH REPLACE na instrução de restauração do banco de dados.

Erro de restauração

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Para substituir o banco de dados, verifique o Sobrescrever o banco de dados existente (WITH REPLACE).

Sobrescrever o banco de dados existente

Ele restaura o [SQLShackDemo] com sucesso. O tempo de restauração do banco de dados depende do tamanho do banco de dados e do IOPS do disco de armazenamento.

Restauração de banco de dados bem-sucedida

Etapa 3: adicione o banco de dados de volta ao grupo de disponibilidade Always On do SQL Server

Na etapa anterior, restauramos o banco de dados na réplica primária. Esse banco de dados precisa ser adicionado novamente ao grupo de disponibilidade.

No grupo de disponibilidade de réplica primária, clique com o botão direito nos bancos de dados de disponibilidade e adicione o banco de dados.

Adicione o banco de dados de volta ao grupo de disponibilidade Always On do SQL Server

No Adicionar banco de dados ao grupo de disponibilidade assistente, selecione o banco de dados SQLShackDemo. Este banco de dados atende aos pré-requisitos para o AG.

Status do banco de dados

Conecte-se a réplicas secundárias existentes.

Conecte-se a réplicas secundárias existentes

Na próxima parte, precisamos selecionar como a sincronização de dados ocorre da réplica primária para a secundária. Você pode preparar seu banco de dados antes de adicioná-lo ao grupo de disponibilidade.

sincronização de dados

Para preparar o banco de dados secundário, você pode executar as seguintes tarefas.

Leia Também  Metadados TempDB com otimização de memória no SQL Server 2019

  • Faça um backup completo do log de transações na réplica primária
  • Restaure este backup na réplica secundária no modo NORECOVERY

Neste artigo, usamos a propagação automática que cria o banco de dados secundário automaticamente. Ele também sincroniza réplicas primárias e secundárias. Você deve ter boa largura de banda de rede para a propagação automática de dados, especialmente para um vasto banco de dados.

No meu caso, o tamanho do banco de dados é pequeno, então podemos prosseguir com a propagação automática. Na próxima etapa, ele executa a validação.

Recebemos uma mensagem de erro na imagem abaixo. Na etapa 1, removemos o banco de dados do grupo de disponibilidade de réplica primária. Ele despeja o banco de dados do AG, mas não remove o banco de dados de réplica secundário. O banco de dados de réplica secundário entra no modo de restauração.

Precisamos nos conectar à instância de réplica secundária e excluir o banco de dados manualmente se você usar a propagação automática. No caso de restauração de backup, podemos usar a cláusula WITH REPLACE para substituir o banco de dados existente.

Validação de banco de dados

Para resolver esse erro, execute o seguinte script na instância de réplica secundária.

  • Exclui o histórico de backup para o [SQLShackDemo] banco de dados do MSDB
  • Ele elimina o banco de dados

Depois de eliminar o banco de dados, clique em reexecutar a validação e ele mostra as validações bem-sucedidas.

Descartar bancos de dados

Verifique suas opções no assistente para adicionar banco de dados. Podemos notar que adiciona [SQLShackDemo] banco de dados no [SQLLogShipAG] grupo de disponibilidade usando propagação automática.

Verifique as escolhas

Na próxima etapa, verifique os resultados. Ele adiciona o banco de dados ao grupo de disponibilidade.

adicionar o banco de dados em AG

Verifique o banco de dados do grupo de disponibilidade no explorador de objetos e no painel.

Painel do Healthy AG

Conclusão

Neste artigo, exploramos o processo geral para restaurar um banco de dados de grupo de disponibilidade no SQL Server Always On Availability Group.

Índice

Rajendra Gupta
Últimos posts de Rajendra Gupta (ver tudo)