sql-server - tablas - ver log sql server 2000
Error de restauración de la base de datos de SQL Server: el envío especificado no es válido.(SqlManagerUI) (3)
Estoy usando SQL Server 2008 R2 Standard (versión 10.50.1600.1) para mi sitio web de producción y edición de SQL Server Express con Advanced Services (v10.50.1600.1) para mi servidor local como base de datos.
Hace unos días, mi SQL Server se bloqueó y tuve que instalar una nueva versión 2008 R2 Express en mi servidor local. Funcionó bien cuando restauré algunas versiones anteriores tomadas de la edición Express, pero cuando trato de restaurar la base de datos desde el archivo .bak
que está tomado del servidor de producción, está causando el siguiente error:
Error: el molde especificado no es válido. (SqlManagerUI)
y cuando trato de restaurar la base de datos usando el comando
Use Master
Go
RESTORE DATABASE Publications
FROM DISK = ''C:/Publications.bak''
WITH MOVE ''Publications'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS2008R2/MSSQL/DATA/Publications.mdf'',--adjust path
MOVE ''AlPublications_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS2008R2/MSSQL/DATA/Publications.ldf''
Genera un error diferente
Msg 3154, nivel 16, estado 4, línea 1
El conjunto de respaldo contiene una copia de seguridad de una base de datos que no sea la base de datos de ''Publicaciones'' existente.
Msg 3013, nivel 16, estado 1, línea 1
RESTORE DATABASE está terminando anormalmente.
He verificado las versiones. Todos parecen coincidir conmigo como se muestra en la imagen de abajo
Anteriormente, pude restaurar una base de datos desde la versión estándar a la edición express, pero ahora falla. Eliminé la base de datos e intenté recrearla. Eso falla, también.
No estoy seguro de lo que estoy haciendo mal. Agradecería ayuda en esto con respecto
El problema se resolvió porque parece que el archivo .bak estaba dañado. Cuando lo probé con un archivo diferente, funcionó.
Finalmente obtuve este error para desaparecer en una restauración. Me mudé a SQL2012 por frustración, pero creo que esto probablemente todavía funcione en 2008R2. Tuve que usar los nombres lógicos:
RESTORE FILELISTONLY
FROM DISK = ‘location of your.bak file’
Y a partir de ahí ejecuté una declaración de restauración con MOVE
usando nombres lógicos.
RESTORE DATABASE database1
FROM DISK = ''//database path/database.bak''
WITH
MOVE ''File_Data'' TO ''E:/location/database.mdf'',
MOVE ''File_DOCS'' TO ''E:/location/database_1.ndf'',
MOVE ''file'' TO ''E:/location/database_2.ndf'',
MOVE ''file'' TO ''E:/location/database_3.ndf'',
MOVE ''file_Log'' TO ''E:/location/database.ldf''
Cuando se hizo la restauración, casi lloré de alegría.
¡Buena suerte!
La GUI puede ser voluble a veces. El error que recibió al usar T-SQL se debe a que está intentando sobrescribir una base de datos existente, pero no especificó sobrescribir / reemplazar la base de datos existente. Lo siguiente podría funcionar:
Use Master
Go
RESTORE DATABASE Publications
FROM DISK = ''C:/Publications_backup_2012_10_15_010004_5648316.bak''
WITH
MOVE ''Publications'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS2008R2/MSSQL/DATA/Publications.mdf'',--adjust path
MOVE ''Publications_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS2008R2/MSSQL/DATA/Publications.ldf''
, REPLACE -- Add REPLACE to specify the existing database which should be overwritten.
Podría ser debido a la restauración del archivo de copia de seguridad de la versión de SQL Server 2012 en SQL Server 2008 R2 o incluso menos.