Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Ricreare il Transact Log di un DB SQL 2005
lunedì 03 agosto 2009 - 16.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
rbiagiola
Profilo
| Newbie
28
messaggi | Data Invio:
lun 3 ago 2009 - 16:09
Ciao a tutti,
ho una problematica piuttosto strana e antipatica da risolvere...
Non riesco a ripristinare un file .bak.
La procedura di ripristino arriva al completamento del 100% ma poi esce il seguente errore...
"Errore durante l'elaborazione del Log. Se possibile ripristinarlo da un backup Se non è disponibile un backup ricreare il log."
Dopo aver ripristinato il DB stoppando i servizi SQL e sostituendo i file mdf e ldf ho riprovato a backappare di nuovo l'archivio e ripristinarlo ma niente da fare. Sembrerebbe proprio un problema legato al log!!! Girando in vari forum ho provato diverse procedure di ripristino e di recupero del file log, ma senza successo.
Una particolarità che ho notato è che il file ldf è tremendamente grosso (quasi 2 Gb.), e non riesco a troncarlo in nessuna maniera.
Neanche il BACKUP LOG WITH TRUNCATE_ONLY.
Esiste un'applicazione che potrebbe aiutarmi a ricostruire il file di log e quindi a recuperare l'archivio?!?!
Grazie per l'attenzione... spero possiate aiutarmi!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 3 ago 2009 - 20:39
>Dopo aver ripristinato il DB stoppando i servizi SQL e sostituendo
>i file mdf e ldf
In che senso " sostituendo i file mdf e ldf"?
Puoi spiegare meglio questo passaggio?
>Girando in vari forum ho provato diverse procedure
>di ripristino e di recupero del file log, ma senza successo.
Quali?
>Una particolarità che ho notato è che il file ldf è tremendamente
>grosso (quasi 2 Gb.), e non riesco a troncarlo in nessuna maniera.
>Neanche il BACKUP LOG WITH TRUNCATE_ONLY.
Questo comando NON ridimensiona il T-Log, ma occorre eseguire sucessivamente una DBCC SHRINKFILE.
>Grazie per l'attenzione... spero possiate aiutarmi!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
rbiagiola
Profilo
| Newbie
28
messaggi | Data Invio:
mar 4 ago 2009 - 15:48
Il DB in questione è già on line... quindi per cercare di ripristinarlo su un altra macchina ho dovuto creare un nuovo database, fermare i servizi dell'istanza SQL, copiare i file mdf e ldf dall'archivio incriminato e sostituirli con i file mdf e ldf del nuovo db creato.
Questa per ora è l'unico modo che ho trovato per ripristinare l'archivio... ma resta il fatto che effettuando il backup full da manager non riesco a ripristinarlo... e questo è un gran casino se dovessi spaccare il DB!!!
Ho provato senza successo i seguenti comandi da SQL per troncare il log:
----------------------------
USE REFTEG
GO
DBCC SHRINKFILE('REFTEG_log', 2)
BACKUP LOG dbtegstudio WITH TRUNCATE_ONLY
DBCC SHRINKFILE('REFTEG_log', 2)
SELECT file_id, name FROM sys.database_files
----------------------------
ho provato anche a fare questa istruzione che ho trovato su alcuni post on line:
----------------------------
ALTER DATABASE REFTEG
SET single_user WITH ROLLBACK IMMEDIATE;
GO
DBCC checkdb ('REFTEG', repair_allow_data_loss);
GO
-----------------------------
Il risultato è sempre stato negativo!
Ora vorrei chiedere se non dovessi riuscire a recuperare quel file LOG... come posso ricrearlo?!?!
(L'errore di Windows mi suggerisce di farlo... ma non mi specifica come!! :))
Grazie ancora!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 4 ago 2009 - 20:45
>Il DB in questione è già on line... quindi per cercare di ripristinarlo
>su un altra macchina ho dovuto creare un nuovo database, fermare
>i servizi dell'istanza SQL, copiare i file mdf e ldf dall'archivio
>incriminato e sostituirli con i file mdf e ldf del nuovo db creato.
Perché non hai ripristinato un normalissimo full backup senza creare preventivamente alcun db?
>Questa per ora è l'unico modo che ho trovato per ripristinare
>l'archivio...
Male dato che hai sperimentato sulla tua pelle che non funziona
>ma resta il fatto che effettuando il backup full
>da manager non riesco a ripristinarlo...
Perché? Che problemi riscontri?
>Grazie ancora!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
rbiagiola
Profilo
| Newbie
28
messaggi | Data Invio:
mer 5 ago 2009 - 09:29
Non riesco a effettuare il normale ripristino da manager!!!
L'errore che mi viene gentilmente offerto da SLQ quando provo a ripristinare l'ho allegato a questo post!!! :)
606x185
21Kb
Spero possa essere utile...
Thanks
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 5 ago 2009 - 11:53
>Spero possa essere utile...
Beh, quel backup è corrotto.
Non puoi eseguire una DBCC CHECKDB sul db di origine risolvendo eventuali problemi ed un nuovo full backup?
>Thanks
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
rbiagiola
Profilo
| Newbie
28
messaggi | Data Invio:
mer 5 ago 2009 - 14:35
Della serie... "Duro a Morire".. ho riprovato a ripetere tutte le procedure per poter aiutare anche chi legge ad avere un quadro più completo!
Allora:
1. Eseguo un BACKUP FULL da Manager.
2. Ripristino da manager il file .bak creato ma arrivato quasi al completamento del processo mi da il seguente errore.
606x185
21Kb
3. Eseguo il seguente comando in SIngle User
DBCC CHECKDB ('dbtegstudio', repair_allow_data_loss)
Risultato: Errore su una tabella che provvedo subito ad eliminarla ed a ricrearla:
Eseguo nuovamente il comando
DBCC CHECKDB ('dbtegstudio', repair_allow_data_loss)
Risultato: Operazione conclusa con successo! (Evvaiii!!!)
4. Eseguo un nuovo BACKUP FULL da Manager
5. Provo il ripristino da Manager, ma come prima si inchioda sul più bello. Ho un errore diverso ora:
611x175
24Kb
6. Effettuo un nuovo Backup Full stavolta da riga di comando:
BACKUP DATABASE dbtegstudio TO disk ='C:\dbtegtudio_full.bak' WITH CONTINUE_AFTER_ERROR
7. Provo a ripristinare di nuovo il DB ma niente.... Punto e a capo. Ancora il seguente errore:
606x185
21Kb
8. Non sapendo più che pesci pigliare... o mi metto a mangiare carne oppure mi tocca aspettare un qualche genio di questo forum che possa darmi un aiuto!
Grazie ancora... :)
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 5 ago 2009 - 14:59
>8. Non sapendo più che pesci pigliare... o mi metto a mangiare
>carne oppure mi tocca aspettare un qualche genio di questo forum
>che possa darmi un aiuto!
Ti suggerisco di farti una fiorentina da 2Kg
Il db "di produzione" dal quale esegui il backup è corrotto, quindi io non dormirei sonni tranquilli
Hai un backup valido del db in uno stato consistente?
Diversamente io proverei a creare un nuovo db rigenerando tutti gli oggetti (tabelle, indici, constraint, stored procedures, triggers, ecc.) via script e copiando i dati tabella per tabella.
Se ti va bene riuscirai a copiare gran parte delle righe, perdendo eventualmente quelle corrotte.
Esegui anche una scansione del file system del volume che contiene i database...
>Grazie ancora... :)
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
rbiagiola
Profilo
| Newbie
28
messaggi | Data Invio:
sab 8 ago 2009 - 16:48
Hai proprio ragione! Credo che mi toccherà mangiare una bella fiorentina!!!
Credo che faro uno script di tutto il Db... e ricreerò l'archivio.
Grazie... buone vacanze!
Torna su
Stanze Forum
Elenco Threads
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 !