Síntomas
Al restaurar una base de datos a partir de una copia de seguridad con la opción with Replace en Microsoft SQL Server 2012, los nombres de archivo físicos de la base de datos restaurada que procede de la copia de seguridad de la base de datos pueden sobrescribir los nombres de los archivos físicos de la base de datos existente. Por ejemplo, considere el siguiente escenario:
-
Tiene dos instancias de SQL Server, instanceof y InstanceB.
-
Tiene una base de datos con el mismo nombre, SQLDB, en cada instancia de SQL Server.
-
En Instanciaa, el nombre del archivo de datos de la base de datos SQLDB es DB1_InstanceA. MDF y el nombre del archivo de registro es DB1_InstanceA. ldf.
-
En InstanceB, el nombre del archivo de datos de la base de datos de SQLDB es DB1_InstanceB. MDF y el nombre del archivo de registro es DB1_InstanceB. ldf.
-
Intenta restaurar una copia de seguridad de la base de datos SQLDB de instancea sobre la base de datos de SQLDB de InstanceB con la opción with Replace del comando restore .
En este escenario, los nombres de archivo físicos de SQLDB en InstanceB se cambian a DB1_InstanceA. MDF y DB1_InstanceA. ldf.
Causa
Este comportamiento es una función del diseño de SQL Server 2012.
Solución alternativa
Para solucionar este problema, no use la opción with Replace del comando restore . En su lugar, use la opción with Move .Nota La opción with Move tiene la opción de cambiar el nombre de archivo físico.
Más información
La opción with Move solo es necesaria la primera vez que usa el comando restore . Al intentar restaurar una base de datos a partir de la copia de seguridad, SQL Server compara los valores de bifurcación de recuperación de la base de datos. Después, el conjunto de copia de seguridad realiza las siguientes acciones, dependiendo de si esos valores coinciden:
-
Si hay una coincidencia, el conjunto de copia de seguridad continúa usando los nombres de archivo de la base de datos de destino.
-
Si los valores son diferentes, el conjunto de copia de seguridad reemplaza los nombres de archivo físicos de la base de datos de destino usando los nombres del conjunto de copia de seguridad.
Al usar la opción with Move junto con el comando restore , se realizan las siguientes acciones:
-
Se crea una nueva bifurcación de recuperación en el servidor de destino.
-
En la siguiente operación de restauración, los identificadores de la horquilla de recuperación del conjunto de copia de seguridad coinciden con los identificadores del servidor de destino.
-
Un comando de restauración que se usa junto con la opción with Replace mantiene los nombres físicos en el servidor de destino.
Para obtener más información sobre el comando restaurar , vea restaurar (Transact-SQL)