Sospensione e ripresa del mirroring del database (SQL Server)Pausing and Resuming Database Mirroring (SQL Server)

Il proprietario del database può sospendere una sessione di mirroring del database, riprenderla in qualsiasi momentoThe database owner can pause and later resume a database mirroring session at any time. e preservare così lo stato della sessione durante la sospensione del mirroring.Pausing preserves the session state while suspending mirroring. In caso di colli di bottiglia, la sospensione può essere utile per migliorare le prestazioni del server principale.During bottlenecks, pausing might be useful to improve performance on the principal server.

Quando si sospende una sessione, il database principale resta disponibile.When a session is paused, the principal database remains available. In caso di sospensione, lo stato della sessione di mirroring viene impostato su SUSPENDED e il database mirror perde la sincronizzazione con il database principale, che viene quindi eseguito in una condizione nota come esposizione senza mirroring.Pausing sets the state of the mirroring session to SUSPENDED, and the mirror database no longer keeps up with the principal database, causing the principal database to run exposed.

È consigliabile riprendere una sessione sospesa il più rapidamente possibile poiché, fintanto che la sessione di mirroring del database rimane sospesa, non è possibile troncare il log delle transazioni.We recommend that you resume a paused session quickly, because as long as a database mirroring session remains paused, the transaction log cannot be truncated. Se la sessione di mirroring del database resta sospesa troppo a lungo, lo spazio del log delle transazioni può esaurirsi rendendo il database non disponibile.Therefore, if a database mirroring session is paused for too long, the transaction log fills up, making the database unavailable. Per una spiegazione di questo problema, vedere "Impatto della sospensione e ripresa sul troncamento del log" di seguito in questo argomento.For an explanation of why this happens, see "How Pausing and Resuming Affect Log Truncation," later in this topic.

Importante

In un servizio forzato, quando il server principale originale esegue nuovamente la connessione il mirroring viene sospeso.Following a forced service, when the original principal server reconnects mirroring is suspended. Se si riprende il mirroring in questa situazione, è possibile che si verifichi una perdita di dati nel server principale originale.Resuming mirroring in this situation could possibly cause data loss on the original principal server. Per informazioni sulla gestione della potenziale perdita di dati, vedere Database Mirroring Operating Modes.For information about managing the potential data loss, see Database Mirroring Operating Modes.

Contenuto dell'argomento:In this Topic:

Impatto della sospensione e ripresa sul troncamento del log How Pausing and Resuming Affect Log Truncation

In genere, quando su un database viene eseguito un checkpoint automatico, il relativo log delle transazioni viene troncato in corrispondenza di tale checkpoint dopo il successivo backup del log.Normally, when an automatic checkpoint is performed on a database, its transaction log is truncated to that checkpoint after the next log backup. Durante il periodo in cui una sessione di mirroring del database rimane sospesa, tutti i record del log corrente restano attivi poiché il server principale è in attesa di inviarli al server mirror.While a database mirroring session remains paused, all of the current log records remain active because the principal server is waiting to send them to the mirror server. I record del log non inviati si accumulano nel log delle transazioni del database principale fino alla ripresa della sessione e al momento dell'invio dei record del log dal server principale al server mirror.The unsent log records accumulate in the transaction log of the principal database until the session resumes and the principal server has sent the log records to the mirror server.

Quando la sessione viene ripresa, il server principale inizia immediatamente a inviare i record del log accumulati al server mirror.When the session is resumed, the principal server immediately begins sending the accumulated log records to the mirror server. Dopo la conferma da parte del server mirror che il record del log corrispondente al checkpoint automatico meno recente è stato accodato, il server principale tronca il log del database principale fino a tale checkpoint.After the mirror server confirms that it has queued the log record corresponding to the oldest automatic checkpoint, the principal server truncates the log of the principal database to that checkpoint. Il server mirror tronca la coda di rollforward in corrispondenza dello stesso record del log.The mirror server truncates the redo queue at the same log record. Poiché questo processo viene ripetuto per ogni checkpoint successivo, il log viene troncato in più fasi per i singoli checkpoint.As this process is repeated for each successive checkpoint, the log is truncated in stages, checkpoint by checkpoint.

Nota

Per altre informazioni sui checkpoint e sul troncamento del log, vedere Checkpoint di database (SQL Server).For more information about the checkpoints and log truncation, see Database Checkpoints (SQL Server).

Evitare il riempimento del log delle transazioni Avoid a Full Transaction Log

Se il log si riempie, perché raggiunge le dimensioni massime o l'istanza del server esaurisce lo spazio, il database non può eseguire ulteriori aggiornamenti.If the log fills up (either because it reaches its maximum size or the server instance runs out of space), the database cannot perform any more updates. Per evitare questo problema, è possibile procedere in due modi:To avoid this problem, you have two alternatives:

  • Riprendere la sessione di mirroring del database prima che il log esaurisca lo spazio, oppure aggiungere spazio di log.Resume the database mirroring session before the log fills up, or add more log space. Se si riprende il mirroring, il server principale invia il log cumulativo attivo al server mirror e il database mirror viene posto in stato SYNCHRONIZING.Resuming database mirroring lets the principal server send its accumulated active log to the mirror server and puts the mirror database in the SYNCHRONIZING state. Il server mirror può quindi salvare il log su disco e avviarne il rollforward.The mirror server can then harden the log to disk and start to redo it.

  • Arrestare la sessione di mirroring del database rimuovendo il mirroring.Stop the database mirroring session by removing mirroring.

    A differenza della sospensione di una sessione, la rimozione del mirroring provoca l'eliminazione di tutte le informazioni relative alla sessione di mirroring.Unlike pausing a session, removing mirroring drops all information about the mirroring session. Ogni istanza del server partner mantiene la sua copia del database.Each partner server instance retains its own copy of the database. Se recuperata, pertanto, la copia precedente del database mirror può risultare diversa dalla copia precedente del database principale e indicare un periodo di tempo inferiore rispetto a quello trascorso dalla sospensione della sessione.If the former mirror copy is recovered, it will have diverged from the former principal copy and be behind by the amount of time that has elapsed since the session was paused. Per altre informazioni, vedere Rimozione del mirroring del database (SQL Server).For more information, see Removing Database Mirroring (SQL Server).

Per sospendere o riprendere il mirroring del databaseTo pause or resume database mirroring

Vedere ancheSee Also

ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Mirroring del database (SQL Server) Database Mirroring (SQL Server)
Rimozione del mirroring del database (SQL Server)Removing Database Mirroring (SQL Server)