2008-09-24 32 views
6

Tengo un servidor antiguo con una versión de evaluación difunta de SQL 2000 (de 2006) y dos bases de datos que estaban en él.Cómo adjuntar una base de datos MSSQL 2000 con solo un archivo MDF

Por alguna razón desconocida, faltan los archivos de registro de LDF. Presunto eliminado

Tengo los archivos mdf (y en un caso un archivo ndf también) para las bases de datos que solían existir en ese servidor, y estoy tratando de ponerlos en funcionamiento en otra caja de SQL 2000 que tengo sentada.

sp_attach_db se queja de que falta el archivo de registro y no adjunta la base de datos. Los intentos de engañarlo usando un archivo de registro de una base de datos con el mismo nombre fallaron miserablemente. sp_attach_single_file_db tampoco funcionará. Los archivos mdf obviamente no se han separado claramente.

¿Cómo obtengo las bases de datos adjuntas y legibles?

Respuesta

6

que consideran que esta respuesta, que trabajó con mis máquinas SQL 2000:

Cómo adjuntar una base de datos con un archivo MDF no limpiamente separado.

Paso 1: Crea una nueva base de datos con el mismo nombre y utiliza los mismos archivos que el anterior en el nuevo servidor.

Paso 2: Detenga el servidor SQL y mueva sus archivos mdf (y cualquier archivo ndf que tenga) encima de los nuevos que acaba de crear. Eliminar cualquier archivo de registro.

Paso 3: Inicie SQL y ejecútelo para poner el DB en modo de emergencia.

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 

Paso 4: Reiniciar el servidor SQL y observe que el PP es con éxito en modo de emergencia.

Paso 5: Ejecutar esta opción DBCC no documentado para reconstruir el archivo de registro (en el lugar correcto)

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

Paso 6: Puede que sea necesario para restablecer el estado. Incluso si no lo hace, no hará ningún daño hacerlo.

exec sp_resetstatus TestDB 

Paso 7: Detener y comenzar a SQL para ver su base de datos recién restaurada.

+1

También tuve que volver a establecerlo en el modo multiusuario luego, por alguna razón, terminó en modo de usuario restringido: ALTER DATABASE TestDB SET MULTI_USER – ChrisWue

1

En el Administrador corporativo, haga clic con el botón derecho en el servidor y elija Adjuntar base de datos. Seleccione el archivo MDF y haga clic en Aceptar. Luego le preguntará si desea crear un nuevo archivo de registro o no. Decir que sí.

+0

Lamentablemente, todavía se queja de que "el nombre de archivo físico blah.ldf puede ser incorrecto " cuando pruebo esto con un mdf mal separado. – Jonathan

Cuestiones relacionadas