Eu tenho um grupo de disponibilidade (AG) com vários bancos de dados (DB-A, DB-B, DB-C) e vários secundários (SEC-B, SEC-C) e um dos bancos de dados não retomará a sincronização em apenas um dos os secundários.
Para este exemplo, o DB-C não está sincronizando no SEC-C e nenhuma quantidade de reinicialização do SQL Server ou retomada do HADR fará com que ele seja iniciado novamente.
Eu não quero remover a réplica (secundária SEC-C) do AG porque eu teria que ressincronizar todos os bancos de dados (DB-A, DB-B e DB-C), e isso levaria mais tempo do que é necessário.
Também não quero remover completamente o banco de dados (DB-C) do AG porque existem outros secundários (SEC-B) onde não há problema e não quero ter que ressincronizá-lo ou perder temporariamente meu HADR no secundário onde está funcionando.
Como posso remover apenas este banco de dados secundário do AG, ressincronizá-lo e adicioná-lo novamente ao AG?
Isso pode ser feito simplesmente removendo o banco de dados secundário do grupo de disponibilidade (AG), restaurando backups para sincronizá-lo novamente e adicionando-o novamente ao AG. O SQL Server Management Studio tem suporte para remover um banco de dados secundário de um AG e adicioná-lo novamente, mas não tem um assistente (no momento da redação deste artigo) para executar todas as etapas necessárias para fazer backup, restaurar e reingressar.
Remova o banco de dados secundário do AG executando o seguinte T-SQL no secundário (SEC-C no exemplo do OP) onde o banco de dados não está sincronizando:
ALTER DATABASE DB-C SET HADR OFF
Consulte Remover um banco de dados secundário de um grupo de disponibilidade . Você também pode executar esta etapa no SSMS fazendo drill down no banco de dados sob o AG no secundário , clicando com o botão direito do mouse e selecionando a opção para removê-lo.
Solte o banco de dados do secundário.
Faça um backup completo e pelo menos um backup de log em uma das réplicas de banco de dados que ainda está no AG e sincronizada e restaure-as no secundário. Se for um banco de dados grande e ocupado e você estiver restaurando em um site de DR, isso poderá levar mais de um dia. Certifique-se de deixar o banco de dados no modo de recuperação (restaure com NORECOVERY)!
Consulte Preparar um banco de dados secundário para um grupo de disponibilidade Always On .
Quando você tiver o banco de dados secundário atualizado com o backup de log mais recente restaurado, junte-o ao AG executando o seguinte comando no secundário (SEC-C no exemplo do OP):
ALTER DATABASE DB-C SET HADR AVAILABILITY GROUP = AG_name
Consulte Ingressar em um banco de dados secundário a um grupo de disponibilidade Always On para obter mais informações, incluindo como realizar esta etapa no SSMS.
Esta resposta pretende ser um guia sucinto e de alto nível. Tudo isso está bem documentado pela Microsoft, mas está espalhado por várias páginas, que obviamente têm muito mais informações, e as páginas estão em diferentes categorias. A página para remover um banco de dados secundário está em:
Continuidade de negócios -> Grupos de disponibilidade Always On -> Instruções -> Operação
e as outras páginas referenciadas estão sob
Continuidade de negócios -> Grupos de disponibilidade Always On -> Instruções -> Configurar grupo de disponibilidade.
Você também pode usar dbatools.
Abaixo obterá um banco de dados de um determinado grupo de disponibilidade e o removerá.
em seguida, adicione o banco de dados de volta ao grupo ag.