Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa funzionalità verrà rimossa in una versione futura di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece Always On gruppi di disponibilità.
Il mirroring del database, introdotto in SQL Server 2005, è una soluzione per aumentare la disponibilità e la ridondanza dei dati del database. SQL Server Native Client offre il supporto implicito per il mirroring del database, pertanto lo sviluppatore non deve scrivere codice o eseguire altre azioni dopo che è stato configurato per il database.
Il mirroring del database, implementato per ogni database, mantiene una copia di un database di produzione di SQL Server in un server di standby. Questo server è un server hot o warm standby, a seconda della configurazione e dello stato della sessione di mirroring del database. Un server hot standby supporta il failover rapido senza perdita di transazioni di cui è stato eseguito il commit e un server warm standby supporta il servizio forzato (con possibile perdita di dati).
Il database di produzione è denominato database principale e la copia di standby viene chiamata database mirror. Il database principale e il database mirror devono risiedere in istanze separate di SQL Server (istanze del server) e devono risiedere in computer separati, se possibile.
L'istanza del server di produzione, denominata server principale, comunica con l'istanza del server standby, denominata server mirror. I server principale e mirror fungono da partner all'interno di una sessione di mirroring del database. Se il server principale ha esito negativo, il server mirror può rendere il database nel database principale tramite un processo denominato failover. Ad esempio, Partner_A e Partner_B sono due server partner, con il database principale inizialmente in Partner_A come server principale e il database mirror che risiede in Partner_B come server mirror. Se Partner_A diventa offline, il database in Partner_B può diventare il database principale corrente. Quando Partner_A rielabora la sessione di mirroring, diventa il server mirror e il database diventa il database mirror.
Le configurazioni alternative del mirroring del database offrono livelli diversi di prestazioni e sicurezza dei dati e supportano diverse forme di failover. Per altre informazioni, vedere Mirroring del database (SQL Server).
È possibile usare un alias quando si specifica il nome del database mirror.
Annotazioni
Per informazioni sui tentativi di connessione iniziali e sui tentativi di riconnessione a un database con mirroring, vedere Connettere i client a una sessione di mirroring del database (SQL Server).
Considerazioni sulla programmazione
Quando il server di database principale ha esito negativo, l'applicazione client riceve errori in risposta alle chiamate API, che indicano che la connessione al database è stata persa. In questo caso, eventuali modifiche di cui non è stato eseguito il commit nel database vengono perse e viene eseguito il rollback della transazione corrente. In questo caso, l'applicazione deve chiudere la connessione (o rilasciare l'oggetto origine dati) e riaprirla. La connessione viene reindirizzato in modo trasparente al database mirror, che ora funge da server principale.
Quando viene stabilita una connessione, il server principale invia l'identità del proprio partner di failover al client da utilizzare quando si verifica il failover. Se un'applicazione ha tentato di stabilire una connessione dopo che il server principale non è riuscito, il client non conosce l'identità del partner di failover. Per consentire ai client di gestire questo scenario, una proprietà di inizializzazione e una parola chiave della stringa di connessione associata consentono al client di specificare l'identità del partner di failover autonomamente. L'attributo client viene usato solo in questo scenario; se il server principale è disponibile, non viene usato. Se il server partner di failover fornito dal client non fa riferimento a un server che funge da partner di failover, la connessione viene rifiutata dal server. Per consentire alle applicazioni di adattarsi alle modifiche di configurazione, è possibile determinare l'identità del partner di failover effettivo controllando l'attributo dopo aver stabilito la connessione. È consigliabile memorizzare nella cache le informazioni del partner per aggiornare la stringa di connessione o definire una strategia di ripetizione nel caso in cui il primo tentativo di effettuare una connessione non riesca.
Annotazioni
È necessario specificare in modo esplicito il database da utilizzare da una connessione se si desidera utilizzare questa funzionalità in un DSN, una stringa di connessione o una proprietà/attributo di connessione. SQL Server Native Client non tenterà di eseguire il failover nel database partner se questa operazione non viene eseguita.
Il mirroring è una funzionalità del database. Le applicazioni che usano più database potrebbero non essere in grado di sfruttare questa funzionalità.
Inoltre, i nomi dei server non fanno distinzione tra maiuscole e minuscole, ma i nomi dei database fanno distinzione tra maiuscole e minuscole. È quindi necessario assicurarsi di usare la stessa combinazione di maiuscole e minuscole nelle DSN e nelle stringhe di connessione.
Provider OLE DB di SQL Server Native Client
Il provider OLE DB di SQL Server Native Client supporta il mirroring del database tramite attributi di connessione e stringa di connessione. La proprietà SSPROP_INIT_FAILOVERPARTNER è stata aggiunta al set di proprietà DBPROPSET_SQLSERVERDBINIT e la FailoverPartner parola chiave è un nuovo attributo della stringa di connessione per DBPROP_INIT_PROVIDERSTRING. Per altre informazioni, vedere Uso delle parole chiave della stringa di connessione con SQL Server Native Client.
La cache di failover viene mantenuta finché il provider viene caricato, ovvero fino a quando non viene chiamato CoUninitialize o finché l'applicazione dispone di un riferimento a un oggetto gestito dal provider OLE DB di SQL Server Native Client, ad esempio un oggetto origine dati.
Per informazioni dettagliate sul supporto del provider OLE DB di SQL Server Native Client per il mirroring del database, vedere Initialization and Authorization Properties.For details about SQL Server Native Client OLE DB provider support for database mirroring, see Initialization and Authorization Properties.
Driver ODBC di SQL Server Native Client
Il driver ODBC di SQL Server Native Client supporta il mirroring del database tramite attributi di connessione e stringa di connessione. In particolare, l'attributo SQL_COPT_SS_FAILOVER_PARTNER è stato aggiunto per l'uso con le funzioni SQLSetConnectAttr e SQLGetConnectAttr ; e la Failover_Partner parola chiave è stata aggiunta come nuovo attributo della stringa di connessione.
La cache di failover viene mantenuta purché l'applicazione disponga di almeno un handle di ambiente allocato. Al contrario, viene perso quando l'ultimo handle di ambiente viene deallocato.
Annotazioni
Gestione driver ODBC è stato migliorato per supportare la specifica del nome del server di failover.
Vedere anche
Funzionalità di SQL Server Native Client
Connettere i client a una sessione di mirroring del database (SQL Server)
Mirroring del database (SQL Server)