Log delle transazione pieno

sabato 01 settembre 2007 - 10.54

trinity Profilo | Guru

Ho creato in database in sql server 2005...a questo database si connetto da remoto con un mio software creto in vbnet 2005 degli alberghi che in tempo reale con le transazioni gestite dai comandi trans/commit esegue dei salvataggi su una tabella.
A volte però mi capita che se apro sql management server per modificare direttamente un dato nella tabella, mi esce un messaggio di erro che mi dice che il log delle transazioni per il database 'c59fronline'è pieno. Per sapere perchè non è possibile riutilizzare lo spazio del log vedere la colonna log_reuse_wait_desc in sys.databases
Ho visto questa colonna ma non ha dati mi fa vedere solo le sue proprietà in + non modificabili.
E' normale? e poi lo svuota direttamente sql server?
Cosa devo fare?

Ciao

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>Cosa devo fare?
Leggere questo tip:
http://www.dotnethell.it/tips/ShrinkTLOGSql2000.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

Quindi mi consigli di effettuare un backup del log e se non mi dovesse servire il backup allora utilizzo il comando WITH NO_LOG

per spazio allocato intendi lo spazio che il file occupa sul disco fisso...

Senti ma questi comandi sono delle stored di sql server, giusto?

e se volessi utilizzare il tool sql management server sotto che voce posso eseguire il comando T-SQL BACKUP LOG?

altra domanda si può aumentare lo spazio del log? oppure fare in modo che in automantico impostando per esempio una data, il server esegue il T-SQL BACKUP LOG? in quanto molte transazioni avvengono anche durante la notte visto che si tratta di alberghi.


Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>Quindi mi consigli di effettuare un backup del log e se non mi
>dovesse servire il backup allora utilizzo il comando WITH NO_LOG
Si.

>per spazio allocato intendi lo spazio che il file occupa sul
>disco fisso...
Si.

>Senti ma questi comandi sono delle stored di sql server, giusto?
No, sono comandi TSQL.

>e se volessi utilizzare il tool sql management server sotto che
>voce posso eseguire il comando T-SQL BACKUP LOG?
E' la stessa cosa.

>altra domanda si può aumentare lo spazio del log? oppure fare
>in modo che in automantico impostando per esempio una data, il
>server esegue il T-SQL BACKUP LOG? in quanto molte transazioni
>avvengono anche durante la notte visto che si tratta di alberghi.
In teoria dovresti dimensionare opportunamente il T-LOG facendo in modo che non avvengano continue estensioni dato che causano una frammentazione del file .ldf e generano un numero enorme di virtual log.
Poi se hai previsto una politica di backup basata dul T-LOG dovresti eseguire un backup log ogni x tempo (schedulando un job) in modo da permettere il riutilizzo dei vecchi virtual log, diversamente impostare il recovery model a simple, perdendo però la possibilità di effettuare il recovery all'ultima istruzione committata prima della corruzione del db.

Sta a te decidere

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

ho eseguito il comando:

BACKUP LOG nomedb WITH TRUNCATE_ONLY

ma volevo vedere anche il comando DBCC SHRINKDATABASE oppure DBCC SHRINKFILE.

come devo eseguirlo?

Ciao

lbenaglia Profilo | Guru

>Ok ma ora sono bloccato con il database perchè ad ogni transazione
>mi dice che il log è pieno per svuotarlo medinate il tool sql
>server management sotto che voce devo andare?
Ascolta, perché vuoi farti del male?
Esegui il comando:

BACKUP LOG <nome db> WITH NO_LOG;

>e poi io vorrei impostare sia il backup del db che dei log ogni
>giorno ad una determinata ora, posso farlo vero?
Si.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

>>Ok ma ora sono bloccato con il database perchè ad ogni transazione
>>mi dice che il log è pieno per svuotarlo medinate il tool sql
>>server management sotto che voce devo andare?
>Ascolta, perché vuoi farti del male?
>Esegui il comando:
>
>BACKUP LOG <nome t-log> WITH NO_LOG;

così:

BACKUP LOG <dbc59onlinefr t-log> WITH NO_LOG;


oppure:

BACKUP LOG dbc59onlinefr WITH NO_LOG;
>
>>e poi io vorrei impostare sia il backup del db che dei log ogni
>>giorno ad una determinata ora, posso farlo vero?
>Si.

sotto che voce trovo queste impostazioni?



>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>>>e poi io vorrei impostare sia il backup del db che dei log ogni
>>>giorno ad una determinata ora, posso farlo vero?
>>Si.
>
>sotto che voce trovo queste impostazioni?
Non sono impostazioni!
Definisci un normalissimo JOB che esegue i comandi T-SQL di BACKUP DATABASE e BACKUP LOG.

Trovi tutti i dettagli sui Books Online.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

così:

BACKUP LOG <dbc59onlinefr t-log> WITH NO_LOG;


oppure:

BACKUP LOG dbc59onlinefr WITH NO_LOG;
>
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>così:
>
>BACKUP LOG <dbc59onlinefr t-log> WITH NO_LOG;
>
>
>oppure:
>
>BACKUP LOG dbc59onlinefr WITH NO_LOG;
http://msdn2.microsoft.com/it-it/library/ms186865.aspx

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

scusa la mia ignoranza ma il job di manutenzione del db e dei suoi log, ossia stabilire i giorni di backup dove lo trovo oppure hai il link dei book in cui parlano di questo così me lo leggo?

Seconda domanda, con il backup del db libero anche il log delle transazioni?

Oppure mi consigli sempre di fare manualmente prima il BACKUP WITH NO_LOG e poi il DBCC SHRINKDATABASE controllando il tutto con LOG INFO?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>scusa la mia ignoranza ma il job di manutenzione del db e dei
>suoi log, ossia stabilire i giorni di backup dove lo trovo oppure
>hai il link dei book in cui parlano di questo così me lo leggo?

"Automatizzazione delle attività amministrative (SQL Server Agent)"
http://technet.microsoft.com/it-it/library/ms187061.aspx

>Seconda domanda, con il backup del db libero anche il log delle
>transazioni?
No.

>Oppure mi consigli sempre di fare manualmente prima il BACKUP
>WITH NO_LOG e poi il DBCC SHRINKDATABASE controllando il tutto
>con LOG INFO?
Lo ripeto ancora una volta, se non hai previsto una politica di backup basata sul transaction log, imposta a Simple il recovery model del database, in modo tale che vengano riutilizzati automaticamente i vecchi virtual logs, evitando di fare crescere in modo indiscriminato le dimensioni del file ldf.
Occhio che agendo in questo modo in caso di problemi col db potrai ripristinare solo l'ultimo full backup + eventuali differenziali, perdendoti tutte le transazioni avvenute successivamente fino al momento del crash.

"Procedura: Visualizzazione o modifica del modello di recupero di un database (SQL Server Management Studio)"
http://msdn2.microsoft.com/it-it/library/ms189272.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5