limitations - sql server localdb download
¿Cómo copio la base de datos de SQL Server 2012 a localdb instance? (8)
Yo tuve el mismo problema. Intenta ejecutar Visual Studio como administrador y prueba el siguiente comando
RESTORE DATABASE CSODev
FROM DISK = ''C:/MyBckDir/CSODev.bak''
WITH NORECOVERY, MOVE ''CSOdev_Data'' TO ''C:/Users/cblair/CSOdev_Data.mdf'',
MOVE ''CSOdev_Log'' TO ''C:/Users/cblair/CSOdev_Log.ldf'',
ACTUALIZACIÓN: ¡ Esto no funcionó exactamente!
Aunque la declaración anterior no produce ningún error y se completa con éxito, la base de datos permanece en el estado "PENDING RECOVERY" y no se puede acceder de ninguna manera. Cuando traté de ''RESTAURAR CON RECUPERAR'' para poner la base de datos en línea, recibí el mismo error que en la pregunta anterior.
Así que en mi caso terminé restaurando la copia de seguridad en un servidor DEV que tenía ejecutando con MSSQL 2008 R2 y luego elegí: Tareas -> Generar scripts -> elegir objetos para script y Siguiente -> hacer clic en el botón "Avanzado" -> seleccionar " tipos de datos para script ": esquema y datos. Ahora ejecute el script generado contra el db local.
Estoy tratando de copiar una base de datos SQL Server 2012 Standard a mi instancia localdb. He intentado el asistente que se queja de que localdb no es una instancia expresa de SQL Server 2005 o posterior . También realicé una copia de seguridad / restauración pero después de la restauración en mi localdb recibo el siguiente error ...
Ejecutando esto ...
RESTORE DATABASE CSODev
FROM DISK = ''C:/MyBckDir/CSODev.bak''
WITH MOVE ''CSOdev_Data'' TO ''C:/Users/cblair/CSOdev_Data.mdf'',
MOVE ''CSOdev_Log'' TO ''C:/Users/cblair/CSOdev_Log.ldf'',
REPLACE
Mensaje de error que recibo ...
Se procesaron 8752 páginas para la base de datos ''CSODev'', archivo ''CSOdev_Data'' en el archivo 1.
Procesado 5 páginas para la base de datos ''CSODev'', archivo ''CSOdev_Log'' en el archivo 1.Msg 1853, nivel 16, estado 1, línea 1
No se puede encontrar el archivo de base de datos lógico ''CSOdev_Log''. Especifique la ruta completa del archivo.
Msg 3167, nivel 16, estado 1, línea 1
RESTORE no pudo iniciar la base de datos ''CSODev''.
Msg 3013, nivel 16, estado 1, línea 1
RESTORE DATABASE está terminando anormalmente.
La base de datos termina en modo "Recuperación pendiente". Parece que tiene problemas con el archivo de registro. He intentado 2 copias de seguridad diferentes en caso de que una estuviera corrupta.
Intente crear una secuencia de comandos de su base de datos como esquema y datos y luego ejecute el script localmente.
RESTORE FILELISTONLY
FROM DISK = ''D:/SQLBackups/yourdatabase.BAK''
ALTER DATABASE yourdatabasename
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE yourdatabasename
FROM DISK = ''D:/SQLBackups/yourdatabase.BAK''
with replace,
move ''logical name from file stream'' to
''C:/yourdatabase.mdf'',
move ''logical name from file stream'' to ''C:/Yourdatabase.ldf''
ALTER DATABASE Qatar_DB SET MULTI_USER
Yo tuve el mismo problema. Lo que finalmente funcionó fue esto:
- Intentando restaurar la base de datos (obteniendo el error en el OP)
- Separar la base de datos
- Volver a conectar la base de datos
Lo que sucedió en el último paso fue que SSDT realizó una actualización de los archivos de datos, que aparentemente estaba en un formato anterior. Cuando eso terminó, ¡la base de datos comenzó a funcionar sin ningún problema!
- Puedes hacerlo manualmente esto se puede hacer usando dot net y abriendo dos tipos de conexiones y reenviando datos de uno de ellos al otro. pero esto necesita crear los mismos tipos de columnas en el local.
- Puede verificar las opciones de importación de MS Access 2007
Existe una limitación conocida (un error real, de hecho) para localDB. Fallará RESTORE con MOVE siempre que los archivos de su base de datos estén ubicados en carpetas diferentes.
Debe restaurar en las carpetas originales (sin MOVER). Use la herramienta cmd como SUBST si necesita simular una unidad: / ruta.
Mismo problema, gracias por la ayuda. Mi base de datos local es MS SQL 2014. Abra "SQL Server 2014 Management Studio"
- Haga clic derecho en la base de datos, vaya a "Tareas", haga clic en "Desconectarse"
- Separar la base de datos
- Adjunte la base de datos
Funciona para mí Después de hacer una copia de seguridad de la base de datos, puede restaurar la base de datos sin error. Gracias.
Tuve el mismo problema, y después de hacer una pequeña investigación en línea encontré una manera ingeniosa de hacer que funcione (aunque bastante raro). Básicamente, tú:
- Cree una instancia SqlLocalDb (
SqlLocalDb c tmp -s
). - Restaure la base de datos como lo hizo anteriormente (por ejemplo,
SqlCmd -E -S <localdb connection string> -Q "RESTORE DATABASE ..."
). - Detenga la instancia SqlLocalDb (
SqlLocalDb p tmp
). - Elimine la instancia SqlLocalDb (
SqlLocalDb d tmp
). - Cree una nueva instancia SqlLocalDb (
SqlLocalDb c persistent -s
). - Cree la base de datos en la nueva instancia adjuntándola (
SqlCmd -E -S <persistent connection string> -Q "Create Database <dbname> On (Filename = ''<Mdf file location''), (Filename = ''<Ldf Filename''>) For Attach"
.
Y con suerte, debería funcionar. Mira aquí para una idea original.
Editar: se agregó la corrección de Jason Brady del comando crear.