Compartilhar via


O impacto de um nome de parceiro de failover desatualizado

O administrador do banco de dados pode alterar o parceiro de failover a qualquer momento. Portanto, um nome de parceiro de failover fornecido pelo cliente pode estar obsoleto ou desatualizado. Por exemplo, considere um nome de parceiro de failover Partner_B que é substituído por outra instância de servidor, Partner_C. Se um cliente fornecer Partner_B como o nome do parceiro de failover, este nome estará desatualizado. Quando o nome do parceiro de failover fornecido pelo cliente está desatualizado, o comportamento do provedor de acesso de dados é equiparado ao caso em que um nome de parceiro de failover não é fornecido pelo cliente.

Por exemplo, considere uma situação em que um cliente usa uma cadeia de conexão para uma série de quatro tentativas de conexão. Na cadeia de conexão, o nome do parceiro inicial é Partner_A e o nome do parceiro de failover é Partner_B:

"Server=Partner_A; Failover Partner=Partner_B; Database=AdventureWorks"

A tabela a seguir mostra quatro configurações de parceiro e indica para cada uma se essa cadeia de conexão funciona para conexão com o cliente pela primeira vez.

ObservaçãoObservação

Um aplicativo pode rastrear alterações de configuração e alterar sua cadeia de conexão. Isso requer código extra, mas reduz a carga administrativa.

Configuração

Servidor principal

Servidor espelho

Comportamento ao tentar conexão especificando Partner_A e Partner_B

Configuração de espelhamento original.

Partner_A

Partner_B

O Partner_A é armazenado em cache como o nome do parceiro inicial. O cliente tem sucesso na conexão com o Partner_A. O cliente baixa o nome do servidor espelho, Partner_B, e o coloca em cache, ignorando o nome do parceiro de failover fornecido pelo cliente.

O Partner_A experimenta um problema de hardware e ocorre failover (desconectando clientes).

Partner_B

nenhum

O Partner_A ainda está no cache como o nome do parceiro inicial, mas o nome do parceiro de failover fornecido pelo cliente, Partner_B, permite que o cliente faça conexão com o servidor principal atual.

O administrador do banco de dados interrompe o espelhamento (desconectando os clientes), substitui Partner_A por Partner_C e reinicializa o espelhamento.

Partner_B

Partner_C

O cliente tenta se conectar com o Partner_A e não consegue; então o cliente tenta o Partner_B (o servidor principal atual) e tem sucesso. O provedor de acesso de dados carrega o nome do servidor espelho atual, Partner_C, e o coloca em cache como o nome do parceiro de failover atual.

O failover do serviço é enviado manualmente para o Partner_C (desconectando os clientes).

Partner_C

Partner_B

O cliente tenta conexão com o Partner_A inicialmente, e depois com o Partner_B. Os dois nomes falham e finalmente o tempo limite da solicitação é ultrapassado e ocorre um erro.