Quando dovrei usare il modello di recupero completo e quando dovrei usare il modello di recupero semplice per i database?
È necessario utilizzare il modello di recupero completo quando è necessario il ripristino temporizzato del database. È necessario utilizzare un modello di recupero semplice quando non è necessario il ripristino temporizzato del database e quando l'ultimo backup completo o differenziale è sufficiente come punto di ripristino. (Nota: esiste un altro modello di recupero, registrato in blocco. Per ulteriori informazioni sul modello di recupero registrato in blocco, consultare questo riferimento )
Provider Microsoft OLE DB per SQL Server (0x80040E14) Il registro delle transazioni per il database "DATABASE NAME" è pieno. Per scoprire perché lo spazio nel registro non può essere riutilizzato, consultare la colonna log_reuse_wait_desc in sys.d Database
Il motivo per cui hai riscontrato quell'errore (molto probabilmente) è perché non hai eseguito il backup del registro delle transazioni. Quando non viene eseguito il backup, continuerà a crescere fisicamente il file di registro delle transazioni (a condizione che l'autogrowth sia abilitato e maxsize lo consenta) perché non può riutilizzare nessuna delle "porzioni" del registro delle transazioni (file di registro virtuali). Può solo contrassegnare quei VLF per il riutilizzo e consentire la natura "avvolgente" del registro delle transazioni quando si esegue un backup del registro delle transazioni (e alcuni altri requisiti, come nessuna transazione attiva, alcuni aspetti della replica, ecc.).
Per ridurre il registro e rendere nuovamente accessibile il database, ho modificato il modello di recupero da COMPLETO a SEMPLICE e ridotto il registro del file logico, con il seguente comando
......
Mi ha aiutato, ma ora ho bisogno di capire PERCHÉ ha aiutato, COME è iniziata questa situazione e COME prevenirla in futuro?
Questo ti ha aiutato perché impostando il database sul modello di recupero semplice hai detto a SQL Server che non ti interessa più il recupero temporizzato e il requisito di garantire che i file di registro virtuali non debbano più essere conservati e contrassegnati come attivi, ora un processo di checkpoint contrassegna questi VLF come inattivi.
Estratto / preventivo tratto da questo riferimento MSDN :
Nel modello di recupero semplice, a meno che alcuni fattori non ritardino il troncamento del registro, un checkpoint automatico tronca la sezione inutilizzata del registro delle transazioni. Al contrario, con i modelli di recupero completo e con registrazione di massa, una volta stabilita una catena di backup del registro, i checkpoint automatici non causano il troncamento del registro.
Quindi è stato ridotto un file di database fisico e poiché ora c'era spazio libero nel registro delle transazioni, è stato in grado di ridurre fisicamente il file NTFS.
Vale la pena leggere un po 'di tempo su:
- Modelli di recupero
- Gestione dei registri delle transazioni (Gail Shaw)
- Fattori che possono ritardare il troncamento del registro
MODIFICA dopo la modifica :
Il nuovo modello di recupero e databaseshrink saranno in conflitto con questo script?
Tale BACKUP DATABASE
comando funzionerà con entrambi i modelli di recupero. Per quanto riguarda la riduzione del database di routine ... NON FARLO !!!! Seriamente, ridimensiona il database di conseguenza e, se utilizzi il modello di recupero completo, assicurati di eseguire file di registro delle transazioni frequenti e di routine, non solo per tenere a bada le dimensioni del registro delle transazioni ma anche per soddisfare gli oggetti del punto di ripristino.
Non stiamo eseguendo alcun altro tipo di backup dei database, e quindi non dei registri delle transazioni, dovremmo?
Se il tuo database utilizza il modello di recupero completo, quindi sì, dovresti eseguire backup del registro delle transazioni. Se il database si trova in un semplice ripristino, non è possibile eseguire fisicamente un backup del registro delle transazioni.
Per quanto riguarda quale modello di recupero utilizzare (semplice o completo), non possiamo prendere questa decisione per te. Solo tu, il tuo team aziendale e i tuoi SLA puoi farlo.