Il file di registro del database di distribuzione di SQL Server aumenta in modo incontrollato dopo il backup completo del database


8

Abbiamo un ambiente di replica di tipo merge che sta inviando 8 abbonati. Funziona benissimo. Il nostro database di distribuzione è impostato in modalità di ripristino semplice. Abbiamo un piano di manutenzione che eseguirà il backup di tutti i database ogni giorno alle 00:30. Una volta completato questo processo, il file di registro di distribuzione aumenta nei successivi 30 minuti e assorbe tutto lo spazio rimanente sul disco rigido (circa 90 GB)

Quello che succede allora è che il database di distribuzione viene visualizzato come "Ripristino in sospeso" e non possiamo fare nulla fino a quando non riavvieremo la macchina. Dopo questo posso ridurre il file di registro fino a 2 MB.

Non ho idea del perché questo stia accadendo. Il file di registro viene eseguito a circa 10 MB durante il giorno. La dimensione del database è di 15 GB.


2
Che cosa è il piano di manutenzione facendo? E qual è il sys.databases.log_reuse_wait_descvalore durante quei 30 minuti mentre il registro cresce?
Remus Rusanu,

Cosa sta portando il database in uno stato di recupero in sospeso? Ciò non dovrebbe accadere per un backup completo.
mrdenny,

1
ok, quindi sembra che quando questo lavoro viene eseguito "Pulizia cronologia agente: distribuzione" il file di registro cresce ... È possibile che il backup avvenga mentre questo lavoro è ancora in esecuzione. Non sono sicuro se ciò causerà il problema. Ho impostato la pulizia della cronologia in modo che venga eseguita un'ora prima. Vedrà quali sono i risultati
Koenyn,

Qualche ricostruzione degli indici?
Carol Baker West

Risposte:


2

Sembra che ci sia un elevato volume di transazioni in corso con la replica. In tal caso, quel lavoro di "pulizia: distribuzione" dovrebbe probabilmente essere eseguito molto più spesso. Mi sembra che stia succedendo una volta al giorno. Sul mio server di replica delle transazioni elevate lo eseguo ogni 15 minuti per mantenere solo le ultime 36 ore. In questo modo si muove da solo e non si impantana.

Ecco un articolo che potrebbe aiutare - http://www.sqlservergeeks.com/blogs/singhsatnam84/sql-server-bi/563/sql-server-controlling-growth-of-a-distribution-database


1
sì, lo eseguiamo una volta al giorno. Ora ho limitato la dimensione del file di registro a 15 GB. Sembra aver aiutato molto. Non è necessario troncarlo adesso e il nostro server non si arresta in modo anomalo. Quali sono i rischi nell'esecuzione del lavoro ogni 15 minuti?
Koenyn,

La pulizia è una semplice chiamata proc memorizzata. Eseguendolo più spesso, la dimensione del batch è inferiore. Se la conservazione è impostata correttamente, non c'è alcun rischio che ho trovato. Mantiene basso il ritardo di replica, secondo la mia esperienza. dbo.sp_MSdistribution_cleanup
Cate Donoghue,

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.