Troca de banco de dados para aumentar a disponibilidade durante a atualização do banco de dados

1

Eu tenho um banco de dados do servidor SQL com dados fornecidos por terceiros. Eles fornecem uma ferramenta para atualizar os dados do banco de dados semanalmente. A ferramenta é bem antiga e usa o ODBC. A atualização pode demorar várias horas. Para ter alta disponibilidade, sugeriu-se ter dois bancos de dados SQL e armazenar uma configuração de "banco de dados ativo" em outro banco de dados para determinar quais dos dois aplicativos de banco de dados devem ser usados (enquanto o outro poderia estar sendo atualizado).

Um problema que estamos enfrentando é: Como fazer referência ao banco de dados ativo em procedimentos armazenados em outros bancos de dados?

Esta é a abordagem correta, ou existe uma maneira melhor?

Notas: As atualizações podem ser incrementais ou podem excluir todos os dados do banco de dados e, em seguida, recriar os dados. Bancos de dados são atualmente somente leitura além da ferramenta de atualização.

    
por foson 15.11.2010 / 21:24

1 resposta

1

Que solução DELTAMENTE CONVOLVIDA eles oferecem - Tente o seguinte:

  • Ter dois servidores de banco de dados, A & B
  • Ter um endereço IP do banco de dados (além dos endereços IP básicos de seus sistemas)
    • Atribua o endereço IP do banco de dados ao servidor de banco de dados que você deseja que as consultas acessem

Quando chega a hora da atualização:

  • Atualizar a máquina inativa ("Máquina B")
  • Troque o endereço IP do banco de dados para "Máquina B"
  • Atualizar "Máquina A"

Observe que isso é suscetível a problemas de cache do ARP. Você também pode obter os mesmos resultados com o DNS & um TTL (muito) curto (supondo que seus TTLs de DNS sejam respeitados), um pacote de alta disponibilidade que usa um MAC virtual ou com um front-end de balanceamento de carga.

    
por 15.11.2010 / 22:21