Domanda

Ho un vecchio server con una versione di valutazione defunta di SQL 2000 su di esso (dal 2006) e due database che erano su di esso.

Per qualche motivo sconosciuto, mancano i file di registro LDF. Presunto eliminato.

Ho i file mdf (e in un caso anche un file ndf) per i database che esistevano su quel server, e sto cercando di metterli in funzione su un altro box SQL 2000 in cui mi trovo.

sp_attach_db si lamenta della mancanza del file di registro e non collegherà il database. I tentativi di ingannarlo utilizzando un file di registro da un database con lo stesso nome fallito miseramente. Anche sp_attach_single_file_db non funzionerà. Ovviamente i file mdf non sono stati staccati in modo pulito.

Come posso avere i database collegati e leggibili?

È stato utile?

Soluzione

Ho trovato questa risposta, che ha funzionato con le mie macchine SQL 2000:

Come collegare un database con un file MDF non separato in modo non corretto.

Passaggio 1: crea un nuovo database con lo stesso nome e che utilizza gli stessi file di quello vecchio sul nuovo server.

Passaggio 2: arresta il server SQL e sposta i tuoi file mdf (e tutti i file ndf in tuo possesso) sopra i nuovi appena creati. Elimina tutti i file di registro.

Passaggio 3: avvia SQL ed eseguilo per mettere il DB in modalità di emergenza.

sp_configure 'allow updates', 1
go
reconfigure with override
GO
update sysdatabases set status = 32768 where name = 'TestDB'
go
sp_configure 'allow updates', 0
go
reconfigure with override
GO

Passaggio 4: riavvia il server SQL e osserva che il DB è correttamente in modalità di emergenza.

Passaggio 5: esegui questa opzione dbcc non documentata per ricostruire il file di registro (nella posizione corretta)

DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')

Passaggio 6: potrebbe essere necessario ripristinare lo stato. Anche se non lo fai, non sarà dannoso farlo.

exec sp_resetstatus TestDB

Passaggio 7: interrompere e avviare SQL per visualizzare il database appena ripristinato.

Altri suggerimenti

In Enterprise Manager, fai clic con il pulsante destro del mouse sul server e scegli Collega database. Seleziona il file MDF e fai clic su OK. Ti chiederà quindi se vuoi creare un nuovo file di registro o meno. Dì Sì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top