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.
Si applica a:SQL Server
Attenzione
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Per la disponibilità elevata, usare invece gruppi di disponibilità AlwaysOn.
Importante
Il mirroring del database in SQL Server è una tecnologia distinta rispetto al mirroring del database di Microsoft Fabric. Il mirroring su Fabric offre prestazioni analitiche migliori, la possibilità di unificare il patrimonio di dati con OneLake in Fabric e di aprire l'accesso ai dati in formato Delta Parquet.
Con il mirroring in Microsoft Fabric, è possibile replicare continuamente il patrimonio di dati esistente direttamente in OneLake in Fabric, inclusi i dati di SQL Server 2016+, database SQL di Azure, Istanza gestita di SQL di Azure, Cosmos DB, Oracle, Snowflake e altro ancora.
Il mirroring del database è una soluzione per aumentare la disponibilità di un database SQL Server. Il mirroring viene implementato a livello di singolo database e funziona solo con database che utilizzano il modello di recupero con registrazione completa.
Per informazioni sul supporto per il mirroring del database, nonché su restrizioni, prerequisiti e consigli per la configurazione dei server partner e per la distribuzione del mirroring del database, vedere Prerequisiti, restrizioni e indicazioni per il mirroring del database.
Vantaggi del mirroring del database
Il mirroring del database è una semplice strategia che offre i vantaggi seguenti:
Maggiore disponibilità di un database.
In caso di emergenza, il failover automatico in modalità a protezione elevata attiva rapidamente la modalità online per la copia di standby del database (senza alcuna perdita di dati). Nelle altre modalità operative l'amministratore del database può scegliere se forzare il servizio (con possibile perdita di dati) nella copia di standby del database. Per ulteriori informazioni, vedere Cambio di ruolo, più avanti in questo argomento.
Maggiore protezione dei dati.
Il mirroring del database offre una ridondanza dei dati completa o quasi completa, in base al fatto che la modalità operativa sia a protezione elevata o a prestazioni elevate. Per ulteriori informazioni, vedere Modalità operativedi seguito in questo argomento.
Un partner di mirroring di database in esecuzione in SQL Server 2008 (10.0.x) o versioni successive cerca di risolvere alcuni tipi di errori che impediscono la lettura di una pagina di dati. Il partner che non è in grado di leggere una pagina ne richiede una copia aggiornata all'altro. Se la richiesta viene soddisfatta, la pagina illeggibile viene sostituita dalla copia e l'errore viene risolto. Per altre informazioni, vedere Correzione automatica della pagina (Gruppi di disponibilità/Mirroring del database).
Migliore disponibilità del database di produzione durante gli aggiornamenti.
Per contenere il tempo di inattività di un database con mirroring, è possibile aggiornare in sequenza le istanze di SQL Server che ospitano i partner di failover. Ciò genererà il tempo di inattività di un solo failover. Questa modalità di aggiornamento è noto come aggiornamento in sequenza. Per altre informazioni, vedere Aggiornamento di istanze con mirroring.
Termini e definizioni del mirroring del database
Failover automatico
Processo attraverso il quale, quando il server principale non è disponibile, il server mirror assume il ruolo di server principale e attiva la modalità online per la propria copia del database come database principale.
Partner di failover
Le due istanze del server (il server principale o il server mirror) che vengono utilizzate come partner nel cambio di ruolo per un database con mirroring.
Servizio forzato
Failover avviato dal proprietario del database in caso di errore del server principale che trasferisce il servizio al database mirror mentre si trova in uno stato sconosciuto.
Modalità a prestazioni elevate
La sessione di mirroring del database viene eseguita in modo asincrono e utilizza unicamente il server principale e il server mirror. L'unica forma di cambio di ruolo è il servizio forzato (con possibile perdita di dati).
Modalità a sicurezza elevata
La sessione di mirroring del database viene eseguita in modo asincrono e facoltativamente utilizza un server di controllo, nonché il server principale e il server mirror.
Failover manuale
Failover iniziato dal proprietario del database, mentre il server principale è ancora in esecuzione, per trasferire il servizio dal database principale al database mirror mentre si trovano in uno stato sincronizzato.
Database mirror
Copia del database che in genere è completamente sincronizzata con il database principale.
Server mirror
In una configurazione di mirroring del database, istanza del server in cui risiede il database mirror.
Database principale
Nel mirroring del database, database di lettura/scrittura il cui log delle transazioni viene applicato a una copia di sola lettura del database (database mirror).
Server principale
Nel mirroring del database, partner il cui database è attualmente il database principale.
Coda di rollforward
Record del log delle transazioni ricevuto in attesa sul disco di un server mirror.
Ruolo
Il server principale e il server mirror eseguono ruoli mirror e principali complementari. Facoltativamente, il ruolo del server di controllo del mirroring viene eseguito da una terza istanza di server.
Cambio di ruolo
Assunzione del ruolo principale da parte del mirror.
Invia coda
Record del log delle transazioni non inviato che si sono accumulati sul disco del log del server principale.
Session
Relazione che si verifica durante il mirroring del database tra il server principale, il server mirror e il server di controllo del mirroring, se presente.
All'avvio o alla ripresa di una sessione di mirroring, processo in cui i record di log del database principale accumulati nel server principale vengono inviati al server mirror, che li scrive sul disco il più rapidamente possibile in modo da non rimanere indietro rispetto al server principale.
Livello di sicurezza delle transazioni
Proprietà del database specifica del mirroring che determina l'esecuzione della sessione di mirroring del database in modalità sincrona o asincrona. Esistono due livelli di sicurezza: FULL e OFF.
Controllo
Per l'utilizzo nella sola modalità a sicurezza elevata. Istanza facoltativa di SQL Server che consente al server mirror di stabilire quando avviare un failover automatico. A differenza dei due partner di failover, il server di controllo del mirroring non gestisce il database. Il supporto del failover automatico è l'unico ruolo del server di controllo del mirroring.
Panoramica del mirroring del database
Il mirroring del database gestisce due copie di un singolo database che si trovano in istanze diverse del motore di database di SQL Server. In genere, queste istanze si trovano in computer in posizioni diverse. All'avvio del mirroring del database, un'istanza avvia una relazione, nota come sessione di mirroring del database, con un'altra istanza.
Un'istanza del server gestisce il database per i client (il server principale). L'altra istanza agisce come server warm standby o hot standby (il server mirror), a seconda della configurazione e dello stato della sessione di mirroring. Quando viene sincronizzata una sessione di mirroring del database, il mirroring del database rende disponibile un server di hot standby che supporta il failover rapido senza perdita di dati da transazioni di cui è stato eseguito il commit. Quando la sessione non è sincronizzata, il server mirror è in genere disponibile come server warm standby (con possibile perdita di dati).
Il server principale e il server mirror comunicano e cooperano come partner in una sessione di mirroring del database. I due partner svolgono ruoli complementari nella sessione: il ruolo principale e il ruolo mirror. In ogni momento, un partner svolge il ruolo principale, l'altro il ruolo mirror. Ogni partner è definito proprietario del suo ruolo corrente. Il partner proprietario del ruolo principale è definito server principalee la sua copia del database è il database principale corrente. Il partner proprietario del ruolo mirror è definito server mirrore la sua copia del database è il database mirror corrente. Quando il mirroring del database è distribuito in un ambiente di produzione, il database principale è il database di produzione.
Il mirroring del database include il rollforward sul database mirror di tutte le operazioni di inserimento, aggiornamento ed eliminazione eseguite sul database principale il più rapidamente possibile. Il rollforward viene eseguito inviando un flusso di record del log delle transazioni attivi al server mirror, il quale applica i record del log al database mirror, in sequenza, il più rapidamente possibile. Diversamente dalla replica, che opera a livello logico, il mirroring del database opera a livello dei record del log fisico. A partire da SQL Server 2008 (10.0.x), il server principale comprime il flusso di record del log delle transazioni prima di inviarlo al server mirror. Questa compressione del log si verifica in tutte le sessioni di mirroring.
Nota
Una determinata istanza del server può prendere parte a più sessioni di mirroring del database simultanee con lo stesso partner o con partner diversi. Una determinata istanza del server può essere partner in alcune sessioni e server di controllo del mirroring in altre. L'istanza del server mirror deve eseguire la stessa edizione di SQL Server.
Contenuto della sezione
Modalità operative
Una sessione di mirroring del database può essere eseguita in un'operazione sincrona o asincrona. In modalità asincrona il commit delle transazioni viene eseguito senza attendere che il server mirror salvi il log su disco, ottimizzando così le prestazioni. L'operazione sincrona assicura che il commit di una transazione venga eseguito su entrambi i partner, ma con il rischio di aumentare la latenza delle transazioni.
Per il mirroring del database sono disponibili due modalità operative. Una di esse, la modalità a protezione elevata supporta l'operazione sincrona. In modalità a protezione elevata, all'avvio di una sessione, il server mirror sincronizza il database mirror con il database principale il più rapidamente possibile. Quando i database sono sincronizzati, il commit di una transazione viene eseguito su entrambi i partner, ma con il rischio di aumentare la latenza delle transazioni.
La seconda modalità operativa, la modalità a prestazioni elevate, prevede l'esecuzione in modo asincrono. Il server mirror tenta di restare sincronizzato con i record del log inviati dal server principale. Il database mirror potrebbe avere un certo ritardo rispetto al database principale. Tale divario tra i due database tuttavia è in genere piuttosto limitato. ma può diventare significativo se il server principale è soggetto a un ingente carico di lavoro o se il sistema del server mirror è sottoposto a overload.
In modalità a prestazioni elevate, non appena il server principale invia un record del log al server mirror, il server principale invia una conferma al client. Non attende un riconoscimento dal server mirror. Il commit delle transazioni viene pertanto eseguito senza attendere che il server mirror salvi il log su disco. L'operazione asincrona consente l'esecuzione del server principale con una latenza minima per le transazioni, ma comporta il rischio potenziale di perdita dei dati.
Tutte le sessioni di mirroring del database supportano solo un server principale e un server mirror. La configurazione è illustrata nella figura seguente.
La modalità a prestazioni elevate con failover automatico richiede la presenza di una terza istanza del server, nota come server di controllo. A differenza dei due partner, il server di controllo del mirroring non gestisce il database. ma supporta il failover automatico mediante la verifica dell'efficienza del server principale. Il server mirror avvia il failover automatico solo se il server mirror e il server di controllo del mirroring rimangono connessi tra loro dopo la disconnessione di entrambi dal server principale.
Nella figura seguente viene illustrata una configurazione che include un server di controllo del mirroring.
Per ulteriori informazioni, vedere Cambio di ruolo, più avanti in questo argomento.
Nota
Per avviare una nuova sessione di mirroring o aggiungere un server di controllo del mirroring a una configurazione di mirroring esistente, è necessario che in tutte le istanze server coinvolte venga eseguita la stessa versione di SQL Server. Tuttavia, quando si esegue l'aggiornamento a SQL Server 2008 (10.0.x) o versione successiva, le versioni delle istanze interessate possono variare. Per altre informazioni, vedere Aggiornamento di istanze con mirroring.
Sicurezza delle transazioni e modalità operative
La modalità operativa può essere sincrona o asincrona in base all'impostazione del livello di protezione delle transazioni. Se si usa esclusivamente SQL Server Management Studio per configurare il mirroring del database, le impostazioni di protezione delle transazioni vengono configurate automaticamente quando si seleziona la modalità operativa.
Se si usa Transact-SQL per configurare il mirroring del database, è necessario conoscere la procedura di impostazione della protezione delle transazioni. La sicurezza delle transazioni è controllata dalla SAFETY proprietà dell'istruzione ALTER DATABASE . In un database di cui viene eseguito il mirroring, SAFETY è FULL o OFF.
Se l'opzione è impostata su FULL, l'operazione
SAFETYdi mirroring del database è sincrona, dopo la fase di sincronizzazione iniziale. Se un server di controllo del mirroring è in modalità a protezione elevata, la sessione supporta il failover automatico.Se l'opzione è impostata su
SAFETY, l'operazioneOFFdi mirroring del database è asincrona. La sessione viene eseguita in modalità a prestazioni elevate e l'opzioneWITNESSdeve essereOFFanche .
Per altre informazioni, vedere Database Mirroring Operating Modes.
Cambio di ruolo
Nel contesto di una sessione di mirroring del database, in genere i ruoli principale e mirror sono intercambiabili tramite un processo denominato cambio di ruolo. Il cambio di ruolo comporta il trasferimento del ruolo principale al server mirror. In un cambio di ruolo, il server mirror funge da partner di failover per il server principale. Quando si verifica un cambio di ruolo, il server mirror assume il ruolo principale e attiva la modalità online per la propria copia del database come nuovo database principale. Il server principale precedente, quando disponibile, assume il ruolo di mirror e il suo database diventa il nuovo database mirror. Potenzialmente, i ruoli possono essere scambiati ripetutamente nei due sensi.
Esistono le tre forme seguenti di cambio di ruolo.
Failover automatico
Richiede la modalità a protezione elevata e la presenza di un server mirror e di un server per il controllo del mirroring. Il database deve essere già sincronizzato e il server di controllo del mirroring deve essere connesso al server mirror.
Il ruolo del server di controllo del mirroring consiste nel verificare il funzionamento di un determinato server partner. Se il server mirror perde la connessione al server principale, ma il server di controllo del mirroring è ancora connesso al server principale, il server mirror non avvia un failover. Per altre informazioni, vedere Server di controllo del mirroring del database.
Failover manuale
Richiede la modalità a protezione elevata. I partner devono essere connessi tra loro e il database deve essere già sincronizzato.
Servizio forzato (con possibile perdita di dati)
In modalità a prestazioni elevate e a protezione elevata senza failover automatico, è possibile forzare il servizio se il server principale non è disponibile e il server mirror è disponibile.
Importante
La modalità a prestazioni elevate è destinata all'utilizzo senza un server di controllo del mirroring. Tuttavia, se è disponibile un server per il controllo del mirroring, per poter forzare il servizio è necessario che il server di controllo del mirroring sia connesso al server mirror.
In qualsiasi scenario di cambio di ruolo, quando il nuovo database principale è online, le applicazioni client possono eseguire un rapido recupero tramite la riconnessione al database.
Sessioni simultanee
Una determinata istanza del server può prendere parte a più sessioni di mirroring del database simultanee (una volta per ogni database con mirroring) con la stessa istanza o istanze diverse del server. Spesso, un'istanza del server funge esclusivamente da server partner o da server di controllo del mirroring in tutte le relative sessioni di mirroring del database. Poiché tuttavia ogni sessione è indipendente dalle altre, un'istanza del server può fungere da server partner in alcune sessioni e da server di controllo del mirroring in altre. Si considerino ad esempio le quattro sessioni seguenti tra tre istanze del server (SSInstance_1, SSInstance_2e SSInstance_3). Ogni istanza del server funge da partner in alcune sessioni e da server di controllo del mirroring in altre:
| Istanza del server | Sessione per il database A | Sessione per il database B | Sessione per il database C | Sessione per il database D |
|---|---|---|---|---|
SSInstance_1 |
Controllo | Partner | Partner | Partner |
SSInstance_2 |
Partner | Controllo | Partner | Partner |
SSInstance_3 |
Partner | Partner | Controllo | Controllo |
Nella figura seguente vengono illustrate due istanze del server che partecipano come partner a due sessioni di mirroring. Una sessione è relativa al database denominato Db_1, l'altra al database denominato Db_2.
Ogni database è indipendente dagli altri. Ad esempio, un'istanza del server inizialmente può rappresentare il server mirror per due database. Se uno dei database esegue il failover, l'istanza del server diventa il server principale per il database con failover, rimanendo contemporaneamente il server mirror per l'altro database.
Sempre a titolo di esempio, si consideri un'istanza del server che rappresenta il server principale per due o più database in esecuzione in modalità a sicurezza elevata con failover automatico. In caso di errore dell'istanza del server, tutti i database eseguiranno automaticamente il failover ai rispettivi database mirror.
Quando si configura un'istanza del server per operare sia come partner che come server di controllo del mirroring, assicurarsi che l'endpoint del mirroring del database supporti entrambi i ruoli (per altre informazioni, vedere Endpoint del mirroring del database (SQL Server)). Assicurarsi inoltre che il sistema disponga di risorse sufficienti per ridurre la contesa tra risorse.
Nota
Poiché i database con mirroring sono indipendenti tra loro, i database non possono eseguire il failover come gruppo.
Connessioni client
Le connessioni client per le sessioni di mirroring del database sono supportate da Microsoft .NET Data Provider per SQL Server. Per altre informazioni, vedere Connettere client a una sessione di mirroring del database (SQL Server).
Effetti della sospensione di una sessione sul log delle transazioni principale
Il proprietario del database può sospendere una sessione in qualsiasi momento e, in questo modo, preservare lo stato della sessione mentre si rimuove il mirroring. Quando una sessione viene sospesa, il server principale non invia nuovi record di log al server mirror. Tali record restano attivi e si accumulano nel log delle transazioni del database principale. Finché una sessione di mirroring del database rimane sospesa, il log delle transazioni non può essere troncato. Se la sessione di mirroring del database resta sospesa troppo a lungo, dunque, lo spazio del log può esaurirsi.
Per ulteriori informazioni, vedere Sospensione e ripresa del mirroring del database (SQL Server).
Configurare la sessione di mirroring del database
Prima di iniziare una sessione di mirroring, è necessario che il proprietario del database oppure l'amministratore di sistema crei il database mirror, imposti gli endpoint e gli account di accesso e, in alcuni casi, crei e imposti i certificati. Per altre informazioni, vedere Impostazione del mirroring del database (SQL Server).
Interoperabilità e coesistenza con altre funzionalità del motore di database
È possibile usare il mirroring del database con i componenti e le funzionalità di SQL Server seguenti.
In questa sezione
Prerequisiti, restrizioni e consigli per il mirroring del database Vengono descritti i prerequisiti e le raccomandazioni per la configurazione del mirroring del database.
Modalità operative del mirroring del database Contiene informazioni sulle modalità operative sincrone e asincrone per le sessioni di mirroring del database e sul cambio di ruoli partner durante una sessione di mirroring del database.
Mirroring del database Descrive il ruolo di un server di controllo del mirroring nel mirroring del database, come usare un singolo server di controllo in più sessioni di mirroring, raccomandazioni software e hardware per i testimoni e il ruolo del server di controllo del mirroring nel failover automatico. Sono inoltre contenute informazioni sull'aggiunta o la rimozione di un server di controllo.
Cambio di ruolo durante una sessione di mirroring del database (SQL Server) Contiene informazioni sul cambio di ruoli partner durante una sessione di mirroring del database, tra cui failover automatico, failover manuale e servizio forzato (con possibile perdita di dati). Sono inoltre incluse informazioni sulla stima relativa all'interruzione del servizio durante il cambio di ruoli.
Possibili errori durante il mirroring del database Vengono illustrati i problemi fisici, del sistema operativo e di SQL Server, inclusi gli errori rigidi e gli errori soft, che possono causare un errore in una sessione di mirroring del database. Viene illustrato come il meccanismo di timeout del mirroring risponde agli errori software.
Endpoint del mirroring del database (SQL Server) Viene illustrato come funziona l'endpoint del mirroring del database.
Configurazione del mirroring del database (SQL Server) Contiene argomenti sui prerequisiti, le raccomandazioni e i passaggi per la configurazione del mirroring del database.
Connettere i client a una sessione di mirroring del database (SQL Server) Contiene argomenti relativi agli attributi della stringa di connessione client e agli algoritmi per la connessione e la riconnessione di un client a un database con mirroring.
Sospensione e ripresa del mirroring del database (SQL Server) Illustra cosa accade durante la sospensione del mirroring del database, incluso l'impatto sul troncamento del log delle transazioni e contiene descrizioni su come sospendere e riprendere il mirroring del database.
Rimozione del mirroring del database (SQL Server) Illustra l'impatto della rimozione del mirroring e contiene descrizioni su come terminare una sessione
Monitoraggio del mirroring del database (SQL Server) Contiene informazioni sull'uso di Monitoraggio mirroring del database o delle stored procedure dbmmonitor per monitorare il mirroring o le sessioni del database.
Attività correlate
Attività di configurazione
Utilizzo di SQL Server Management Studio
Avviare la Configurazione guidata sicurezza mirroring del database
Stabilire una sessione di mirroring del database - Autenticazione di Windows
Utilizzo di Transact-SQL
Mirroring del database - Consenti accesso alla rete - Autenticazione di Windows
Mirroring del database - Usare i certificati per le connessioni in uscita
Mirroring del database - Usare i certificati per le connessioni in ingresso
Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL)
Configurare un database mirror per l'uso della proprietà Trustworthy (Transact-SQL)
Utilizzo di Transact-SQL o SQL Server Management Studio
Attività amministrative
Transact-SQL
Modifica della protezione delle transazioni in una sessione di mirroring del database (Transact-SQL)
Failover manuale in una sessione di mirroring del database (Transact-SQL)
Uso forzato del servizio in una sessione di mirroring del database (Transact-SQL)
Sospendere o riprendere una sessione di mirroring del database (SQL Server)
SQL Server Management Studio
Failover manuale di una sessione di mirroring del database (SQL Server Management Studio)
Sospendere o riprendere una sessione di mirroring del database (SQL Server)
Contenuti correlati
- Endpoint del mirroring del database (SQL Server)
- Correzione di pagina automatica (Gruppi di disponibilità/Mirroring del database)
- Risolvere i problemi relativi alla configurazione del mirroring del database (SQL Server)
- Mirroring del database: Interoperabilità e coesistenza (SQL Server)
- Prerequisiti, restrizioni e indicazioni per il mirroring del database
- Cos’è il gruppo di disponibilità Always On?
- Informazioni sul log shipping (SQL Server)