Estoy usando SQL Server 2008 R2 Standard (versión 10.50.1600.1) para mi sitio web de producción y la edición SQL Server Express con Advanced Services (v10.50.1600.1) para mi localhost 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 host local. Funcionó bien cuando restauré algunas versiones anteriores tomadas de la edición Express, pero cuando trato de restaurar la base de datos desde un .bak
archivo que se toma del servidor de producción, está causando el siguiente error:
Error: la conversión especificada no es válida. (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'
Genera un error diferente
Msg 3154, nivel 16, estado 4, línea 1
El conjunto de copia de seguridad contiene una copia de seguridad de una base de datos que no es la base de datos de 'Publicaciones' existente.
Msg 3013, nivel 16, estado 1, línea 1
RESTORE DATABASE finaliza de forma anormal.
He verificado las versiones. Todos parecen coincidir para mí como se muestra en la imagen de abajo
Anteriormente, podía restaurar una base de datos de la versión estándar a la edición rápida, pero ahora falla. Eliminé la base de datos e intenté recrearla. Eso también falla.
No estoy seguro de qué estoy haciendo mal. Agradecería ayuda en esto con respecto
El problema se resolvió ya que parece que el archivo .bak estaba dañado. Cuando lo probé con un archivo diferente funcionó.
fuente
,REPLACE
al comando T-SQL para sobrescribir la base de datos existente de AlHabtoorPublications.Respuestas:
La GUI puede ser voluble a veces. El error que obtuvo 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:
fuente
, REPLACE
Failed: 38
indicareached end of the file
. (En una ventana de comando, ejecuteNET HELPMSG 38
). Eso generalmente indica una copia de seguridad corrupta: stackoverflow.com/questions/5656363/…Podría deberse 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.
fuente
Finalmente obtuve este error para desaparecer en una restauración. Me mudé a SQL2012 por frustración, pero supongo que esto probablemente aún funcionaría en 2008R2. Tuve que usar los nombres lógicos:
Y a partir de ahí ejecuté una declaración de restauración con el
MOVE
uso de nombres lógicos.Cuando terminó de restaurar, casi lloré de alegría.
¡Buena suerte!
fuente
A continuación, puede haber 2 razones para este problema:
La copia de seguridad realizada en SQL 2012 y la restauración del encabezado solo se realizó en SQL 2008 R2
El medio de respaldo está dañado.
Si ejecutamos el comando debajo, podemos encontrar el error real siempre:
Proporcione la ubicación completa de su archivo de base de datos en el quot
Espero eso ayude
fuente