Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

file log di un DB è diventato enorme

1,194 views
Skip to first unread message

Marco

unread,
Sep 8, 2008, 5:31:01 AM9/8/08
to
ciao ragazzi,
non sono espertissimo di SQL.
ho una serie di db che nelle loro proprietà hanno nelle PROPRIETA - FILE un
incremento automatico del 10% fino ad un massimo di 2.097.152 MB (!!!!!) che
SQL mette di default. Ora io mi trovo con uno dei tanti DB che pesa 17 MB (il
file MDF) e il file di log da 180 GB!!!! come posso ridimensionare questo
file?

La cosa che ho notato è che SQL mette di default il valore 2.097.152 MB per
il log. è davvero necessario così alto? o c'è un modo per settare a tutti i
DB una dimensione più "umana" per questo file di log?

grazie a tutti!

Luca Bianchi

unread,
Sep 8, 2008, 5:41:44 AM9/8/08
to
> ho una serie di db che nelle loro proprietà hanno nelle PROPRIETA - FILE
> un
> incremento automatico del 10% fino ad un massimo di 2.097.152 MB (!!!!!)
> che
> SQL mette di default. Ora io mi trovo con uno dei tanti DB che pesa 17 MB
> (il
> file MDF) e il file di log da 180 GB!!!! come posso ridimensionare questo
> file?

Se il t-log è arrivato a queste dimensioni significa che ci sono delle
enormi carenze amministrative. In particolare che

1) il recovery model è diverso da SIMPLE
2) Non è MAI stato eseguito un backup del transaction log

Entrambe queste condizioni sono sicuramente vere per i tuoi database e,
quindi, la prima cosa che ti suggerisco di fare è di mettere il recovery
model a SIMPLE per ridurre le dimensioni logiche del t-log (ma non quelle
fisiche). Una volta impostato il recovery model a SIMPLE puoi ridimensionare
il t-log nelle sue dimensioni fisiche ad un valore più consono tramite il
comando

DBCC SHRINKFILE (nomedb, size)

Di questo comando troverai ampia documentazione sul BOL (la guida di SQL
Server).
Fatto questo per non trovarti fra una settimana, un mese o comunque fra un
po di tempo nella stessa situazione, puoi lasciare il recovery model a
SIMPLE (rinunciando quindi a tutte le peculiarità del t-log), oppure puoi
impostare il recovery model a BULK LOGGED o a FULL e pianificare una
adeguata strategia di backup del t-log per ciascun database.
Fai riferimento al BOL per ulteriori approfondimenti; anche in questo ng si
è parlato più volte dell'argomento...

> La cosa che ho notato è che SQL mette di default il valore 2.097.152 MB
> per
> il log. è davvero necessario così alto?

Attenzione che quello è il "max size"; ovviamente il max size reale sarà
quello inferiore tra questo valore e lo spazio disco effettivamente
presente...

> o c'è un modo per settare a tutti i
> DB una dimensione più "umana" per questo file di log?

L'impostazione sia del recovery model che della frequenza di backup del
t-log (se decidi per avere un recovery model diverso da SIMPLE) devi farla
per ciascun database. PErò se utilizzi SQL Server 2008 puoi farla in maniera
semplice e generalizzata utilizzando le policy e, nel caso, un configuration
server se la policy devi applicarla non solo a tutti i database di una
istanza ma anche a differenti database server...

> grazie a tutti!

Bye

--
Luca Bianchi
Microsoft MVP - SQL Server
http://community.ugiss.org/blogs/lbianchi

Marco

unread,
Sep 8, 2008, 7:06:01 AM9/8/08
to

"Luca Bianchi" wrote:

Grazie infinite per le dritte perchè sono state utilissime ed ho risolto.
Ora ti faccio un'altra domanda: l'impostazione del backup va fatta da sql
oppure, con l'ntbackup, posso backuppare la cartella dove risiedono MDF e
t-log? Se uso l'ntbackup settando di salvare la cartella dei db ci possono
essere problemi di inconsistenza del db (dato che SQL è attivo)?
grazie!

Luca Bianchi

unread,
Sep 8, 2008, 7:16:49 AM9/8/08
to
> Ora ti faccio un'altra domanda: l'impostazione del backup va fatta da sql
> oppure, con l'ntbackup, posso backuppare la cartella dove risiedono MDF e
> t-log? Se uso l'ntbackup settando di salvare la cartella dei db ci possono
> essere problemi di inconsistenza del db (dato che SQL è attivo)?

NTBackup non è in grado di fare backup con file in uso.
Quando si parla di backup, in SQL Server si intende SOLO il backup fatto
(con i comandi T-SQL) del database come oggetto logico. Il backup a livello
di file system NON è un backup del database; idem il backup del file con
estensione ldf NON è il backup del t-log.

> grazie!

Ruggiero Lauria

unread,
Sep 8, 2008, 7:23:10 AM9/8/08
to
> Grazie infinite per le dritte perchè sono state utilissime ed ho risolto.
> Ora ti faccio un'altra domanda: l'impostazione del backup va fatta da sql
> oppure, con l'ntbackup, posso backuppare la cartella dove risiedono MDF e
> t-log? Se uso l'ntbackup settando di salvare la cartella dei db ci possono
> essere problemi di inconsistenza del db (dato che SQL è attivo)?

Usa sempre il backup dell' SQL

> grazie!

Prego


--
___________

Ruggiero Lauria

MCSA-MCSE-MS SQL DBA


tiriamoavanti

unread,
Sep 8, 2008, 7:29:02 AM9/8/08
to
"Marco" <Ma...@discussions.microsoft.com> ha scritto nel messaggio
news:FFADD07B-F0D9-4787...@microsoft.com...

Cavoli è vero, oggi è lunedì!!!!

Se non ci fosse un log ogni w.e. a scoppiare il lunedì mi passerebbe molto
più indifferentemente :)

0 new messages