Error de restauración de la base de datos de SQL Server: el molde especificado no es válido. (SqlManagerUI)

Estoy usando SQL Server 2008 R2 Standard (versión 10.50.1600.1) para mi sitio web de producción y SQL Server Express edition with Advanced Services (v10.50.1600.1) para mi localhost como base de datos.

Hace unos días mi SQL Server se estrelló y tuve que instalar una nueva versión 2008 R2 Express en mi localhost. 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 se toma del servidor de producción está causando el siguiente error:

Error: El molde especificado no es válido. (SqlManagerUI)

y cuando intento 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'

Se genera un error diferente

Msg 3154, Nivel 16, Estado 4, Línea 1 El conjunto de copias de seguridad contiene una copia de seguridad de una base de datos distinta de la base de datos existente 'Publicaciones'.
Msg 3013, Nivel 16, Estado 1, Línea 1 RESTORE DATABASE está terminando anormalmente.

He cruzado las versiones. Todas me parecen coincidentes como se muestra en la imagen siguiente

Anteriormente pude restaurar una base de datos de la versión estándar a la edición express, pero ahora falla. He borrado la base de datos y he intentado volver a crearla. Eso también falla.

No estoy seguro de lo que estoy haciendo mal. Apreciaría la ayuda en este sentido con respecto a

El problema fue resuelto ya que parece que el archivo .bak estaba corrupto. Cuando lo intenté con un archivo diferente funcionó.

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.

Comentarios (5)
Solución

La interfaz gráfica de usuario puede ser inconstante a veces. El error que se produce al utilizar T-SQL se debe a que se está intentando sobrescribir una base de datos existente, pero no se ha especificado que se sobrescriba/reemplace 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.
Comentarios (6)

Finalmente conseguí que este error desapareciera en una restauración. Me cambié a SQL2012 por frustración, pero supongo que esto probablemente seguiría funcionando 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 sentencia de restauración con MOVE utilizando los 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 terminó de restaurar, casi lloré de alegría.

¡Buena suerte!

Comentarios (0)