Collegare DB senza LDF

mercoledì 01 febbraio 2017 - 13.42
Tag Elenco Tags  SQL Server 2005

massimo1965 Profilo | Junior Member

Ciao a Tutti,
ho disperato bisogno di aiuto ...
Ho il file di Log danneggiato di un database e quando cerco di collegare il file MDF ho questo errore :

Messaggio 1813, livello 16, stato 2, riga 3
Impossibile aprire il nuovo database 'XO'. L'istruzione CREATE DATABASE è stata interrotta.
Messaggio 9003, livello 20, stato 9, riga 3
Il numero di analisi log (267:1956:165) passato alla funzione di analisi dei log nel database 'XO' non è valido. L'errore può indicare la presenza di dati danneggiati o un problema di mancata corrispondenza tra il file di log (con estensione ldf) e il file di dati (con estensione mdf). Se l'errore si è verificato durante la replica, ricreare la pubblicazione. Se invece il problema provoca un errore all'avvio, eseguire il ripristino da un backup.

se provo solo con il file di log questo :

Errore di attivazione del file. Il nome di file fisico "c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MAX_log.ldf" potrebbe non essere corretto.
Impossibile ricreare il log perché erano presenti utenti/transazioni aperte al momento dell'arresto del database, non è stata eseguita alcuna operazione di checkpoint nel database o il database era di sola lettura. Questo errore può verificarsi se il file del log delle transazioni è stato eliminato in modo manuale o perso a causa di un problema hardware o di ambiente.
Messaggio 1813, livello 16, stato 2, riga 1
Impossibile aprire il nuovo database 'massimo'. L'istruzione CREATE DATABASE è stata interrotta.

Qualche idea ?
Grazie

renarig Profilo | Expert

Quello che sto per dirti farà rabbrividire qualunque amministratore,

Ma io nel 95 ai tempi di MSDN quando ero ancora giovane, forte e inesperto facevo cosi:

- crea un nuovo DB vergine con identicamente lo stesso nome
- arresta SQL Server
- vai al suo file .mdf che quindi si chiamera identicamente come il file che vuoi ripristinare
- sostituisci il solo file .mdf mettendoci il tuo incriminato
- riavvia SQL Server
- Incrocia le dita delle mani e dei piedi e verifica se ha funzionato


Inutile dire che la procedura descritta NON è assolutamente
da considerarsi come una modalita corretta di procedere

anzi se dovesse funzionare consiglio comunque di
non utilizzare un DB ripristinato in quel modo

magari poi da un .bak vecchio recuperi la struttura
e gli travasi dentro i dati recenti


_____________________________________________________________

poi c'erano altre procedure piu "professionali" con attach e detach
ma adesso non le ricordo con esattezza


Facci sapere


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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5