Principale utente con più risposte
FILE LDF di dimensioni allucinanti. Come ridurlo?

Domanda
-
Ciao a tutti.
Dopo circa 1 anno dall'installazione del sql 2008r2 mi accorgo che il database è cresciuto in dimensioni molto.
Purtroppo causa mia dimenticanza ho lasciato il recovey mode a full e non a simple
risutato:
Databae 190 gb
ldf: 140 gb
Ora, chiaramente lo spazio su disco sta scarseggiando, quindi vi chiedo:
Come faccio a ridurre il file LDF?
COnsiderate che:
-Il database e in "simple" in recovey model
-lo scrink sul database non da buoni risulti
-ho installato in mangment studio
Stavo pensando di muovermi cos':
-backup database
-unmount database
-delete unmount database e relativo ldf
-restore database dal fil .bak
Cosa ne pensate? Idee più semplici? meno "rischiose"
COme sempre grazie a tutti per l'help
Risposte
-
Ciao
qui dovresti trovare tutte le info per procedere allo shrink del T-Log.
Ciao
Luca
Luca Ferrari http://tipsandtrickssqlserver.blogspot.com/
- Contrassegnato come risposta Fabrizio-GMVP, Moderator lunedì 16 luglio 2012 16:45
-
In aggiunta a quanto indicato da Luca, permettimi un paio di considerazioni:
1) il restore fisicamente rialloca lo stesso spazio dei files presenti al momento del backup (che legge dal file .BAK) e copia il contenuto del file di backup "sopra" i nuovi files, per cui non ti cambierebbe assolutamente nulla rispetto alla situazione attuale! Avresti comunque il transaction log a 140GB...
2) tu dici che "purtroppo" hai dimenticato il recovery model a full... Beh, dipende dalla tua strategia di backup e dal tempo massimo che la tua azienda può o vuole perdere in caso di disastro: con il recovery model SIMPLE puoi solamente fare backup di tipo full o differenziale (immagino che ora li facciate almeno una volta al giorno...) e quindi rischi di perdere tutti i dati dall'ultimo backup, mentre con il recovery model FULL puoi aggiungere al normale backup giornaliero anche una serie di backup del log più "fitti" e in caso di crash riuscire a ripristinare tutto o quasi il lavoro fatto! Nel tuo caso l'importante è che poi venga schedulato anche il backup del log, che è il responsabile anche della riduzione delle dimensioni del file di log.
HTH
Danilo Dominici MCP MCDBA MCITP MCSE MCAD Questo post è fornito "così com'è". Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione "segna come risposta" per i post che ti hanno aiutato a risolvere il problema e "deseleziona come risposta" quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
- Contrassegnato come risposta Fabrizio-GMVP, Moderator lunedì 16 luglio 2012 16:45
Tutte le risposte
-
Ciao
qui dovresti trovare tutte le info per procedere allo shrink del T-Log.
Ciao
Luca
Luca Ferrari http://tipsandtrickssqlserver.blogspot.com/
- Contrassegnato come risposta Fabrizio-GMVP, Moderator lunedì 16 luglio 2012 16:45
-
In aggiunta a quanto indicato da Luca, permettimi un paio di considerazioni:
1) il restore fisicamente rialloca lo stesso spazio dei files presenti al momento del backup (che legge dal file .BAK) e copia il contenuto del file di backup "sopra" i nuovi files, per cui non ti cambierebbe assolutamente nulla rispetto alla situazione attuale! Avresti comunque il transaction log a 140GB...
2) tu dici che "purtroppo" hai dimenticato il recovery model a full... Beh, dipende dalla tua strategia di backup e dal tempo massimo che la tua azienda può o vuole perdere in caso di disastro: con il recovery model SIMPLE puoi solamente fare backup di tipo full o differenziale (immagino che ora li facciate almeno una volta al giorno...) e quindi rischi di perdere tutti i dati dall'ultimo backup, mentre con il recovery model FULL puoi aggiungere al normale backup giornaliero anche una serie di backup del log più "fitti" e in caso di crash riuscire a ripristinare tutto o quasi il lavoro fatto! Nel tuo caso l'importante è che poi venga schedulato anche il backup del log, che è il responsabile anche della riduzione delle dimensioni del file di log.
HTH
Danilo Dominici MCP MCDBA MCITP MCSE MCAD Questo post è fornito "così com'è". Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione "segna come risposta" per i post che ti hanno aiutato a risolvere il problema e "deseleziona come risposta" quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
- Contrassegnato come risposta Fabrizio-GMVP, Moderator lunedì 16 luglio 2012 16:45
-
-
Hai messo a true la proprietà autoshrink del DB ?
Questa proprietà consente a SQL Server di rilasciare al SO lo spazio libero in coda ai file dati, ma se il file dati è cresciuto un motivo ci sarà.Tieni presente inoltre che in questo modo, potenzialmente, costringi SQL Server ad effettuare un numero maggiore di operazioni di grow sui file dati, con ripercussioni molto pesanti in termini di performance e di risorse e causando pesantissima frammentazione di data pages e del file stesso.
In altre parole ti sconsiglio di abilitare l'autoshrink.
Per quanto riguarda il t-log
Use AdventureWorks2012
Go
Dbcc shrinkfile(AdventureWorks2012_Log,Dimensione da raggiungere in MB)
GOPrima di implementare lo shrink del t-log ti consiglio la lettura di questo post che spiega come il grow del t-Log va ad impattare sulle performance del DB.
Ciao
Luca Ferrari http://tipsandtrickssqlserver.blogspot.com/
- Modificato Luca Ferrari MCTS-MCITP-MCT giovedì 31 maggio 2012 08:30
-
Ciao
Use AdventureWorks2012
Go
Dbcc shrinkfile(AdventureWorks2012_Log,Dimensione da raggiungere in MB)
GOQuesto comando immagino posso eseguirlo anche con il managment studio
mi posiziono sul db seleziono shrink del file.Quanto posso mettere in dimensione da raggiungere? 10GB?
Grazie ancora
-
Si, lo puoi eseguire da Management Studio, sostituisci ad AdventureWorks2012 il nome del tuo database e a AdventureWorks2012_Log il nome logico del tuo file T-Log.
Per la dimensione dipende da quante transazione sono applicate e da quanto grandi sono. Dovresti ipotizzare una dimensione in grado di contenere le transazioni senza costringere SQL ad effettuare Grow sul file.
Ciao
Luca
Luca Ferrari http://tipsandtrickssqlserver.blogspot.com/