Pregunta

Ejecución de SQL Server 2005 que tiene la base de datos A. Estoy tratando de restaurar desde una copia de seguridad de la base de datos de A a B. Quiero mantener la base de datos A y crear una nueva base de datos de prueba B de un conjunto de datos anterior.

He intentado crear B y restaurar desde el .bak y restaurar la base de datos a B a partir del estudio de gestión.

El error es ...

  

TÍTULO: Microsoft SQL Server Management

     

Estudio

     

Error en la restauración para el servidor   '195448-APP2'.   (Microsoft.SqlServer.Smo)

     

Para obtener ayuda, haga clic en:    http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476

     

------------------------------ INFORMACIÓN ADICIONAL:

     

System.Data.SqlClient.SqlError: La   grupo de respaldo tiene una copia de seguridad de un   la base de datos distinta de la existente 'B'   base de datos. (Microsoft.SqlServer.Smo)

     

Para obtener ayuda, haga clic en:    http://go.microsoft.com/fwlink ? ProdName = Microsoft SQL + + servidor y ProdVer = 9.00.1399.00 y LinkId = 20476

     

------------------------------ botones:

     

Aceptar

He encontrado este fragmento que estoy reticentes a utilizar y quiero preguntar si sería resolver mi problema de cambiar la ubicación de la MDF y LDF durante el proceso de restauración de la base de datos o se reemplace base de datos los elementos de A por completo.

ALTER DATABASE AdventureWorks
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE AdventureWorks
FROM DISK = 'C\:BackupAdventureworks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'C:\Data\datafile.mdf',
MOVE 'AdventureWorks_Log' TO 'C:\Data\logfile.ldf',
REPLACE

[-line-1 -3013-nivel-16-state-1 http://blog.sqlauthority.com/2007/04/30/sql-server-fix-error -msg-3159-nivel-16-state-1-line-1-msg-3013-nivel-16-state-1-line-1 /] [1]

y para mí que lo haría ...

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'B' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'B_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Lo que no sé es si afectará la base de datos A en absoluto. Estoy esperando que la reemplace refiere archivos asociados a B.

o si debe ser

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'A' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'A_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Si alguien me podría ayudar con el error y / o confirmar esta revisión estaría muy agradecido ya que no es mi base de datos que estoy jugando.

Gracias.

¿Fue útil?

Solución

Usted podría simplemente utilizar el Asistente para copiar la base de datos . Si usted quiere hacerlo como profesionales y el uso de T-SQL RESTORE .. movimiento ... REPLACE hacer lo que se esperaba: mover los dos archivos en los lugares que la intención y reemplazar la base de datos B con el contenido de la copia de seguridad. Una no se verán afectadas.

Otros consejos

Me gustaría utilizar el asistente si fuera tú: En SQL Server Management Studio, haga clic derecho en "Bases de datos" y seleccione "Restaurar base de datos ...". Este cuadro de diálogo / asistente hará exactamente lo que están pidiendo - sólo tiene que seleccionar el archivo .bak fuente (s) / base de datos que desea restaurar, escriba el nombre de la base de datos que desea restaurar a y pulsa "Aceptar"

Algunas notas - si se introduce el nombre de una base de datos que imposible todavía existe (que suena como esto es lo que quiere hacer), se creará la base de datos para usted. Si introduce el nombre de una base de datos existente que intentará restaurar a esa base de datos. Si intenta restaurar a una base de datos existente de una copia de seguridad hecha de una base de datos diferente se producirá un error, sin embargo, puede forzar el servidor SQL Server para sobrescribir la base de datos existente, vaya a "Opciones" y marcar la casilla "Sobrescribir la base de datos existente".

Además, si va a restaurar una copia de seguridad de una base de datos existente para crear una nueva segunda copia de la base de datos es posible que el asistente no como su intento de crear una base de datos utilizando las mismas rutas de archivos de base de datos como los actualmente en uso por la base de datos fuente. Para solucionar este problema es necesario hacer clic en "Opciones" y cambiar todos los "Restaurar como" rutas de archivo para archivos que No existen todavía.

También puede obtener este asistente para generar una secuencia de comandos SQL en lugar de realizar realmente restaurar el real (haga clic en el botón "guión" en la parte superior), lo cual es útil si quieres aprender a hacer este tipo de cosas en crudo SQL en lugar.

Es posible restaurar una base de datos de SQL Server 7, SQL Server 2000 a SQL Server 2005. Se puede lograr mediante el uso de restaurar y reemplazar con comando

use master 

restore database mydatabase from disk ='c:\mybackup.bak' with replace 

Es fácil de tomar una copia de seguridad en SQL Server utilizando este script sin necesidad de herramientas externas.

Restaurar con el Ejemplo .

gota base de datos b primero. entonces la restauración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top