File di Log troppo grande? PDF Stampa E-mail
Scritto da Michael   
Venerdì 26 Settembre 2008 15:34
Eh si, capita e pure spesso. Software (installati da chissà chi) che scrivono su database sql server (configurati da chissà chi altro) e accumulano decine, centinaia e a volte migliaia di megabyte di spazio su disco. "Per i dati?" vi chiederete voi "NO! dal file di log!!" vi rispondo io. Perchè questo comportamento e come rimediare?Destination host forbidden
Secondo il modello di recupero (recovery model) che è stato impostato per quel database, il file di log può venire utilizzato per ripristinare parte o tutto il database. Le due modalità principali sono la SIMPLE  e la FULL.
La prima sostanzialmente tiene in memoria su disco le transazioni in sospeso ed elimina (liberando spazio e riutilizzandolo) le transazioni che sono andate a buon fine o annullate.
La seconda modalità invece mantiene tutte le transazioni (sia quelle in pendenza che quelle concluse) effettuate dall'ultima volta che è stato effettuato un backup del file di log attraverso il comando "BACKUP LOG". Ora, dato che questo comando è sconosciuto ai più e che nella maggior parte delle aziende italiane la situazione "disaster recovery" è talmente pietosa che è già tanto se viene effettuato un backup saltuario di "qualcosa" senza nemmeno verificare se funziona il restore,chi farà mai un BACKUP LOG??? esatto, nessuno. Ma dato che spesso si arriva che "la frittata è fatta", come rimediare?

Mi è capitato in questi giorni di lavorare su un database con 1,4 GB di file di dati e 9,4 GB di log . Ho cambiato subito il recovery model nella sezione Options della finestra Proprieties del database in oggetto, settandolo su Simple. Poi ho effettuato l'eliminazione delle transazioni concluse lanciando su query analizer il comando SQL:

BACKUP LOG <nome_database> WITH TRUNCATE_ONLY

 

fatto questo però ancora lo spazio occupato dal file non è stato liberato. Pertanto vado avanti con il comando:

DBCC SHRINKFILE ('<nomelogicofiledilog>', 10)

 
dove per "nome logico" si intende il nome del file (si trova dentro le proprietà del database) e il numerino 10 sta a significare che deve compattare il file cercando di avere come obbiettivo di dimensioni 10 megabyte. Ovviamente se il numero di transazioni ancora in attesa è troppo elevato e non è possibile raggiungere i 10 megabyte,libererà lo spazio fino al valore più vicino possibile a tale valore.
Commenti
Nuovo Cerca
+/-
Commenta
Nome:
Email:
 
Website:
Titolo:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:):grin;)8):p:roll:eek:upset:zzz:sigh:?:cry
:(:x
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."