Il registro delle transazioni si ridurrà automaticamente in SQL Server?


10

Quando il database SQL Server è in modalità SEMPLICE, non è necessario preoccuparsi dei bakcups del registro delle transazioni. Ma in modalità SEMPLICE, il registro delle transazioni sembra crescere come in modalità COMPLETA. Il tronco viene troncato automaticamente in qualche momento? O devo troncarlo / ridurlo manualmente?

Risposte:


19

Si troncerà automaticamente, ma è molto diverso da ridurre. Il troncamento recupera lo spazio del registro per il riutilizzo, la riduzione fisica riduce la dimensione del file per liberare spazio nel sistema operativo. Se il registro è cresciuto fino alle dimensioni attuali è probabile che cresca di nuovo se lo riduci.

Suggerirei di capire quale sia l'utilizzo tipico e massimo del registro per il tuo sistema. La query seguente (non mia, potenziata dagli script DMV di Glen Berrys) potrebbe essere eseguita manualmente oppure è possibile acquisire l'output in una tabella tramite un processo agente. Se lo registri su una tabella per circa una settimana, otterrai un'immagine dell'utilizzo tipico e, cosa ancora più importante, quando un processo fa sì che il registro cresca oltre ciò che ti aspetti.

SELECT 
     db.[name] AS [Database Name]
   , db.recovery_model_desc AS [Recovery Model]
   , db.log_reuse_wait_desc AS [Log Reuse Wait Description]
   , ls.cntr_value AS [Log Size (KB)]
   , lu.cntr_value AS [Log Used (KB)]
   , CAST(
        CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) 
        AS DECIMAL(18,2)
     ) * 100 AS [Log Used %]
   , db.[compatibility_level] AS [DB Compatibility Level]
   , db.page_verify_option_desc AS [Page Verify Option]
   , db.is_auto_create_stats_on, db.is_auto_update_stats_on
   , db.is_auto_update_stats_async_on, db.is_parameterization_forced
   , db.snapshot_isolation_state_desc, db.is_read_committed_snapshot_on
FROM sys.databases AS db
   INNER JOIN sys.dm_os_performance_counters AS lu 
     ON db.name = lu.instance_name
   INNER JOIN sys.dm_os_performance_counters AS ls 
     ON db.name = ls.instance_name
WHERE lu.counter_name LIKE N'Log File(s) Used Size (KB)%' 
   AND ls.counter_name LIKE N'Log File(s) Size (KB)%'
   AND ls.cntr_value > 0 
OPTION (RECOMPILE);

Troncamento del registro delle transazioni descrive sia il troncamento del registro quando sia perché.

Se i record di registro non sono mai stati eliminati dal registro delle transazioni, alla fine riempirebbe tutto lo spazio su disco disponibile per i file di registro fisici. Il troncamento del registro libera automaticamente lo spazio nel registro logico per il riutilizzo da parte del registro delle transazioni.

Fattori che possono ritardare il troncamento del registro è un riferimento utile per comprendere perché il registro potrebbe non riuscire a troncarsi e quindi crescere più del previsto.


4

No e no

  • non si ridurrà o troncerà (nel senso fisico del LDF, lo farà logicamente)
  • deve essere delle dimensioni, quindi non lo si restringe

Se lo riduci, crescerà di nuovo e avrai un file frammentato


0

Come accennato in precedenza, no non si ridurrà automaticamente. Pulirà comunque un po 'di immondizia.

Il motivo è che nel modello di recupero completo si dice a SQL che si desidera eseguire backup di tlog per il recupero temporizzato, quindi mantiene un registro di tutte le transazioni effettuate su un database.

Dal momento che stai dicendo che vuoi il ripristino temporizzato, devi eseguire backup completi e backup tlog. Una volta completati i backup di tlog, scaricherà il contenuto del registro (oltre alla coda) e ricomincerà.

Può essere utile se si considera questi file come contenitori.

Il mio suggerimento è che se i tlog sono diventati grandi e ingestibili, tagliare un backup completo. Passare al modello di recupero SEMPLICE e SHRINK il file tlog. Tornare al modello di recupero completo ed eseguire la manutenzione della frammentazione *. Come altri hanno pubblicato, questa non è la migliore delle pratiche e porterà a livelli elevati di frammentazione.

Pianifica e avvia un regime di backup successivamente.


* Indice operazioni di ricostruzione / riorganizzazione e deframmentazione a livello di disco . Non fa parte della manutenzione dei registri: mantieni i tuoi registri T eseguendone il backup. Sono contenitori che crescono quando si avvicinano alla capacità. La ricostruzione / riorganizzazione può aiutare a recuperare da una gestione dei registri impropria che porta all'utilizzo di unità di grandi dimensioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.