Condividi tramite


Impatto di un nome partner di failover non aggiornato

L'amministratore del database può modificare il partner di failover in qualunque momento. Pertanto, un nome partner di failover specificato dal client potrebbe essere non aggiornato. Si consideri ad esempio la sostituzione di un partner di failover denominato Partner_B da parte di un'altra istanza di server, Partner_C. Se un client specifica Partner_B come nome partner di failover, tale nome risulterà non aggiornato. Se il nome partner di failover specificato dal client non è aggiornato, il provider di accesso ai dati si comporta come se il client non avesse fornito alcun nome partner di failover.

Si consideri ad esempio la situazione in cui un client utilizza una stringa di connessione per una serie di quattro tentativi di connessione. Nella stringa di connessione il nome partner iniziale è Partner_A e il nome partner di failover è Partner_B:

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

Nella tabella seguente sono riportate quattro configurazioni partner, per ognuna delle quali viene indicato se la stringa di connessione specificata consente la connessione del client per la prima volta.

[!NOTA]

Un'applicazione può tenere traccia delle modifiche alla configurazione e modificare di conseguenza la propria stringa di connessione. Questo richiede codice aggiuntivo ma riduce il carico amministrativo.

Configurazione

Server principale

Server mirror

Comportamento al tentativo di connessione specificando Partner_A e Partner_B

Configurazione di mirroring originale.

Partner_A

Partner_B

Partner_A viene memorizzato nella cache come nome partner iniziale. Il client riesce a connettersi a Partner_A. Il client scarica il nome del server mirror, Partner_B, e lo memorizza nella cache, ignorando il nome partner di failover specificato dal client.

In Partner_A si verifica un errore hardware, che provoca il failover, disconnettendo i client.

Partner_B

nessuno

Partner_A è ancora memorizzato nella cache come nome partner iniziale, ma il nome partner di failover specificato dal client, Partner_B, consente al client di connettersi al server principale corrente.

L'amministratore del database interrompe il mirroring, disconnettendo i client, sostituisce Partner_A con Partner_C e riavvia il mirroring.

Partner_B

Partner_C

Il client tenta di connettersi senza successo a Partner_A. Il client tenta quindi di connettersi a Partner_B, ovvero il server principale corrente, e la connessione ha esito positivo. Il provider di accesso ai dati scarica il nome del server mirror corrente, Partner_C, e lo memorizza nella cache come nome partner di failover corrente.

Viene eseguito il failover manuale del servizio su Partner_C, disconnettendo i client.

Partner_C

Partner_B

Il client tenta inizialmente di connettersi a Partner_A e quindi a Partner_B. Entrambi i nomi non risultano corretti e infine si verifica il timeout della richiesta di connessione.