Recovery in SQL 2005 di un DB 2000 recuperato da un crash di un HD

martedì 24 marzo 2009 - 02.42

fantoccino Profilo | Newbie

Salve a tutto l'NG.
Sto tentanto di ricollegare un DB in versione SQL 2000 di un programma di contabilita recuperato da un HD fisicamente rotto.
I file (MDF e LDF) sono stati recuperati dall'HD da una società specializzata

Il problema è che tentando il suo collegamento ricevo questo errore :

Impossibile eseguire Collega database per Server 'SAIS\SISTEMI'. (Microsoft.SqlServer.Smo)
Eccezione durante l'esecuzione di un'istruzione o un batch Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
A causa di uno spostamento di dati, non è possibile continuare la scansione tramite NOLOCK.
È in corso la conversione del database 'LOTTOMA' dalla versione 539 alla versione corrente 611.
È in corso l'aggiornamento del database 'LOTTOMA' dalla versione 539 alla versione 551. (Microsoft SQL Server, errore: 601)

In pratica il database deve essere convertito (2000 to 2005) e presenta il problema di un irregolare Shutdown (L'hd si è rotto con l'applicativco aperto).
Ho effettuato lunghe ricerche su NG e tentativi (con o senza LDF, creando un database poi sostituito con questo, etc ma non riesco ad aprirlo)

Il bello è che i vari tools di recovery .MDF presenti in rete in versione DEMO lo aprono tranquillamente ma vorrei evitare di far spendere al mio cliente
altri 300/400 euro (costo medio di questi software) da sommare al DISCRETO esborso alla societa di recovery.

Avete qualche idea?
Posso fornire il DB per delle prove in quanto non contiene dati sensibili e/o utili senza un secondo database fortunatamente funzionante.
Grazie per l'aiuto.

P.S. Ovviamente il cliente non ha copie SIGNIFICATAMENTE aggiornate (e lascio la parola SIGNIFICATAMENTE :-))
Rombino Cadino

Anonimo Profilo | Senior Member

Non assicuro niente ma se vuoi manda il db a e vedo (ovviamente gratis) cosa si può fare.

fantoccino Profilo | Newbie

Fatto.

E comunque indipendentemente dal risultato, grazie per la disponibilità.

Rombino Cadino

Anonimo Profilo | Senior Member

Per correttezza verso tutti posto la soluzione, anche se non elegante ma efficace al problema.

Estratto dalla mail:
Ok ci sono dalla mia macchina non riesco ma si può fare, allora seguono i passi da fare:

1. Installare sqlserver 2000 almeno alla versione SP1, meglio SP3
2. Usare una versione di VS2005 va bene professional
3. Mettere il solo file mdf in una cartella
4. Creare una nuova soluzione VS2005 di tipo windows o web è indifferente
5. Nella cartella App_Code cliccare tasto destro e poi Add Existing Item e selezionare il file mdf
6. Si genera un errore perché non si apre con l’utenza corrente, ma poco male perché comunque crea un nuovo file di log pulito
7. A sinistra in VS apparirà in server explorer la connessione al database
8. Cliccare tasto destra su questa e cliccare su refresh
9. La connessione fallisce ma serve a ripulire dei parametri
10. Cliccare tasto sulla connessione e cliccare su modify connection
11. A questo punto inserire i parametri di connessione che si hanno
12. Si è collegati, estrapolare una connection string
13. Aprire un’istanza di SqlServerExpress 2005 e creare un nuovo db
14. Attraverso il progetto che abbiamo spostare per ogni tabella e per ogni dato con dei cicli foreach l’intera struttura e i dati del sito
15. Lanciare il programma
16. Verificare l’avvenuta trasmissione dei dati

Ciao se hai dubbi o problemi contattami pure. In ogni caso ti consiglio di fare tutto sto casino in Virtual Machine con VM Where.


fantoccino Profilo | Newbie

>Per correttezza verso tutti posto la soluzione, anche se non
>elegante ma efficace al problema.
>
>Estratto dalla mail:
>Ok ci sono dalla mia macchina non riesco ma si può fare, allora
>seguono i passi da fare:
>
>1. Installare sqlserver 2000 almeno alla versione SP1, meglio SP3
>2. Usare una versione di VS2005 va bene professional
>3. Mettere il solo file mdf in una cartella
>4. Creare una nuova soluzione VS2005 di tipo windows o web è indifferente
>5. Nella cartella App_Code cliccare tasto destro e poi Add Existing Item e selezionare il file mdf
>6. Si genera un errore perché non si apre con l’utenza corrente, ma poco male perché comunque crea un nuovo file di log pulito
>7. A sinistra in VS apparirà in server explorer la connessione al database
>8. Cliccare tasto destra su questa e cliccare su refresh
>9. La connessione fallisce ma serve a ripulire dei parametri
>10. Cliccare tasto sulla connessione e cliccare su modify connection
>11. A questo punto inserire i parametri di connessione che si hanno
>12. Si è collegati, estrapolare una connection string
>13. Aprire un’istanza di SqlServerExpress 2005 e creare un nuovo db
>14. Attraverso il progetto che abbiamo spostare per ogni tabella e per ogni dato con dei cicli foreach l’intera struttura e i dati del sito
>15. Lanciare il programma
>16. Verificare l’avvenuta trasmissione dei dati
>
>Ciao se hai dubbi o problemi contattami pure. In ogni caso ti
>consiglio di fare tutto sto casino in Virtual Machine con VMware.
>
>


Beh, in effetti io non programmo e non conosco VB però tento comunque di eseguire
la soluzione postata anche perchè è l'ultima spiaggia.
Ho creato la Macchina Virtuale e vado con le installazione ma prenoto (almeno) 3 domande...

Grazie.
Rombino Cadino

Anonimo Profilo | Senior Member

Alla fine come è andata?

fantoccino Profilo | Newbie

Chiedo scusa per l'assenza e il ritardo.
Dunque per la soluzione Vb ho trovato ostacoli per me difficilmente sormontabili con le mie conoscenze.
Con delle ricerche approfondite ho capito che il problema era l'impossibilita di upgradare un DB da una versione all'altra in presenza di
errori di consistenza.
Ho quindi reinstallato SQL 2000 con il livello di Service Pack che era attivo al momento del danneggiamento.
Questo ha permesso di ricollegare il DB senza confersioni anche se SUSPECT.
a quel punto sono andato con il DBCCCHECKDB in REPAIR_ALLOW_DATA_LOSS e pur perdendo alcuni record importanti, ho potuto recuperare gran parte dei dati.
Devo dire che alcuni tools di Recovery in modalità demo avevano fatto molto meglio, ma ll cliente ha deciso di non acquistarli.

Grazie.
Rombino Cadino.

Rombino Cadino
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