AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 337973
Accepted
variable
variable
Asked: 2024-03-24 01:23:01 +0800 CST2024-03-24 01:23:01 +0800 CST 2024-03-24 01:23:01 +0800 CST

Como lidar com o cluster de site primário se houver um problema de rede devido ao qual eu invoco um failover forçado para o site de DR?

  • 772

Supondo que eu tenha AG em um cluster de 4 nós, com 2 nós no site primário e 2 nós no site de DR, 1 testemunha de nuvem. O modo failover é manual.

Agora, por algum motivo, suponha que a rede do site primário caia, especificamente, não consigo me conectar ao data center primário.

Caso 1: o primário tem quorum, pois ainda é capaz de se comunicar com a testemunha da nuvem. Como há algum problema de rede no site primário, o SQL ainda está em execução no site primário e pensa que é o primário.

Caso 2: o primário não consegue se comunicar com a testemunha da nuvem e perdeu o quorum. Testemunho dinâmico e quórum dinâmico podem entrar em ação.

Suponha que agora eu me conecte a um dos nós de DR e invoque um failover manual forçado.

O SQL no site de DR pensará que é o principal, pois invoquei o failover manual. Tecnicamente, este é um cenário de cluster dividido.

O cenário de divisão no caso 1 é óbvio. No caso 2, pode ser devido ao testemunho dinâmico e ao início do quórum dinâmico.

Quando a rede primária for restabelecida, o que preciso fazer para lidar com esse cenário? Porque se o que estou pensando estiver certo, ambos os sites pensarão que possui o servidor SQL primário.

sql-server
  • 1 1 respostas
  • 41 Views

1 respostas

  • Voted
  1. Best Answer
    Sean Gallardy
    2024-03-26T21:25:12+08:002024-03-26T21:25:12+08:00

    Suponha que agora eu me conecte a um dos nós de DR e invoque um failover manual forçado. [...] Quando a rede primária for restabelecida, o que preciso fazer para lidar com esse cenário?

    Caso 1: o primário tem quorum, pois ainda é capaz de se comunicar com a testemunha da nuvem. Como há algum problema de rede no site primário, o SQL ainda está em execução no site primário e pensa que é o primário.

    Você também está com o cérebro dividido de propósito. Como o lado DR não terá quorum, ele precisaria ser forçado, o que significa que quando todos esses nós se comunicarem novamente, o lado primário original verá o quorum forçado e o lado primário irá imediatamente cair e reiniciar para sincronizar com os novos bancos de dados de cluster do lado de DR que foi forçado. Isto terá o efeito de derrubar o AG no lado primário. O problema é que agora você tem o potencial (embora seja quase uma garantia) de que o primário original tenha dados que o lado DR não possui devido à divisão do cérebro que você forçou.

    Isso significa que você precisará reconciliar manualmente os dados e colocá-los no banco de dados de DR, a partir do banco de dados primário original. Ninguém pode lhe dizer as operações necessárias, pois serão específicas para seu banco de dados e sua empresa.

    Depois que os dados tiverem sido (ou decidido não ser) reconciliados, as réplicas provavelmente precisarão ser reinicializadas porque as bifurcações de recuperação estão muito distantes umas das outras e a última bifurcação comum será a partir da data e hora em que o problema ocorreu. Como o failover forçado foi usado, os bancos de dados precisarão ter a movimentação de dados retomada ou ser completamente removidos para serem propagados automaticamente (ou você pode propagar manualmente). Você não será capaz de registrar restaurações magicamente ou qualquer coisa aqui, pois os bancos de dados se bifurcaram em seus caminhos de recuperação.

    Caso 2: o primário não consegue se comunicar com a testemunha da nuvem e perdeu o quorum. Testemunho dinâmico e quórum dinâmico podem entrar em ação.

    O lado primário não terá os votos, não permanecerá no poder. Se o lado DR conseguir obter acesso à testemunha, então deverá ter os votos e o quórum deverá ser alcançado. Se o failover automático estiver definido para uma réplica no local de DR, então ele deverá falhar automaticamente; caso contrário, será necessário fazer o failover normalmente (se for um parceiro de commit síncrono) ou forçado (parceiro de commit assíncrono). Em seguida, você precisará retomar a movimentação de dados em cada réplica ainda ativa no lado da DR. Dependendo de quanto tempo eles estão fora de comunicação, pode ser necessário descartar as réplicas no lado primário original.

    Assim que o AG for forçado, quando as comunicações retornarem, o AG verá se foi forçado ou não. Se tiver, todas as comunicações serão feitas com os bancos de dados em cada réplica no lado primário original, presumindo que as réplicas não foram descartadas. Se estivessem, você precisará adicioná-los novamente ao AG.

    • 2

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve