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çã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. |
Consulte também