Condividi tramite


Sospensione e ripresa del mirroring del database (SQL Server)

Il proprietario del database può sospendere e riprendere successivamente una sessione di mirroring del database in qualsiasi momento. La pausa mantiene lo stato della sessione mentre sospende il mirroring. Durante i colli di bottiglia, mettere in pausa potrebbe risultare utile per migliorare le prestazioni sul server principale.

Quando una sessione viene sospesa, il database principale rimane disponibile. La sospensione imposta lo stato della sessione di mirroring su SOSPESO e il database mirror non riesce più a tenere il passo con il database principale, facendo sì che il database principale sia in esecuzione senza protezione.

È consigliabile riprendere rapidamente una sessione sospesa perché, purché una sessione di mirroring del database rimanga sospesa, il log delle transazioni non può essere troncato. Pertanto, se una sessione di mirroring del database è sospesa per troppo tempo, il log delle transazioni si riempie, rendendo il database non disponibile. Per una spiegazione del motivo per cui questo accade, vedere "Come la Sospensione e la Ripresa Influiscono sul Troncamento dei Log" più avanti in questo argomento.

Importante

Dopo un servizio forzato, il mirroring viene sospeso quando il server principale originale si riconnette. La ripresa del mirroring in questa situazione potrebbe causare la perdita di dati nel server principale originale. Per informazioni sulla gestione della potenziale perdita di dati, vedere Modalità operative di mirroring del database.

Contenuto dell'argomento

Come la sospensione e la ripresa influiscono sul troncamento del registro

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. Mentre una sessione di mirroring del database rimane sospesa, tutti i record di log correnti rimangono attivi perché il server principale è in attesa di inviarli al server mirror. I record di log non inviati si accumulano nel log delle transazioni del database principale fino a quando la sessione non riprende e il server principale ha inviato i record di log al server mirror.

Quando la sessione viene ripresa, il server principale inizia immediatamente a inviare i record di log accumulati al server mirror. Dopo che il server mirror conferma di aver accodato il record di log corrispondente al checkpoint automatico meno recente, il server principale tronca il log del database principale fino a quel checkpoint. Il server mirror tronca la coda di rollforward nello stesso record di log. Poiché questo processo viene ripetuto per ogni checkpoint successivo, il log viene troncato in fasi, checkpoint per checkpoint.

Annotazioni

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 un log delle transazioni completo

Se il log si riempie (perché raggiunge le dimensioni massime o l'istanza del server esaurisce lo spazio), il database non può eseguire altri aggiornamenti. Per evitare questo problema, sono disponibili due alternative:

  • Riprendi la sessione di mirroring del database prima che il log si riempia, o aggiungi più spazio per il log. La ripresa del mirroring del database consente al server principale di inviare il log attivo accumulato al server mirror e di inserire il database mirror nello stato SYNCHRONIZING. Il server mirror può quindi consolidare il log su disco e iniziare a ripeterlo.

  • Arrestare la sessione di mirroring del database rimuovendo il mirroring.

    A differenza della sospensione di una sessione, la rimozione del mirroring elimina tutte le informazioni sulla sessione di mirroring. Ogni istanza del server partner mantiene la propria copia del database. Se la copia mirror precedente viene recuperata, la copia dell'entità precedente sarà divergente rispetto alla copia principale precedente e sarà indietro per il periodo di tempo trascorso dopo la sospensione della sessione. Per altre informazioni, vedere Rimozione del mirroring del database (SQL Server).

Attività correlate

Per sospendere o riprendere il mirroring del database

Per arrestare il mirroring del database

Vedere anche

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