Para poder iniciar una sesión de creación de reflejo de la base de datos, debe crear la base de datos reflejada. Debe hacerlo inmediatamente antes de iniciar la sesión de creación de reflejo.
En este ejemplo se utiliza la base de datos de ejemplo AdventureWorks, que usa de forma predeterminada un modelo de recuperación simple.
-
Para utilizar la creación de reflejo de la base de datos con la base de datos AdventureWorks, modifíquela para que utilice el modelo de recuperación completa.
USE master;
GO
ALTER DATABASE AdventureWorks
SET RECOVERY FULL;
GO
-
Después de modificar el modelo de recuperación de la base de datos de SIMPLE a FULL, cree una copia de seguridad completa, que puede usarse para crear la base de datos reflejada. Puesto que se ha cambiado recientemente el modelo de recuperación, se especifica la opción WITH FORMAT para crear un conjunto de medios. Esto es útil para separar las copias de seguridad con el modelo de recuperación completa a partir de cualquier copia de seguridad anterior realizada con el modelo de recuperación simple. Para este ejemplo, el archivo de copia de seguridad (
C:\AdventureWorks.bak) se crea en la misma unidad que la base de datos.
Nota: |
|---|
|
Para una base de datos de producción, siempre se debe realizar la copia de seguridad en un dispositivo independiente.
|
En la instancia de servidor de la entidad de seguridad (en PARTNERHOST1), cree una copia de seguridad completa de la base de datos de la entidad de seguridad, como se indica a continuación:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\AdventureWorks.bak'
WITH FORMAT
GO
-
Copie la copia de seguridad completa en el servidor reflejado.
-
Restaure la copia de seguridad completa con la opción WITH NORECOVERY en la instancia de servidor reflejado. El comando de restauración depende de si las rutas de acceso de las bases de datos de la entidad de seguridad y reflejada son idénticas.
-
Si las rutas de acceso son idénticas:
En la instancia de servidor reflejado (en PARTNERHOST5), restaure la copia de seguridad completa como se indica a continuación:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\AdventureWorks.bak'
WITH NORECOVERY
GO
-
Si las rutas de acceso son distintas:
Si la ruta de acceso de la base de datos reflejada difiere de la de la base de datos de la entidad de seguridad (por ejemplo, letras de unidad diferentes), la creación de la base de datos reflejada requiere que la operación de restauración incluya una cláusula MOVE.
Importante: |
|---|
|
Si los nombres de las rutas de acceso de las bases de datos de la entidad de seguridad y reflejada son distintos, no se puede agregar ningún archivo. Esto es debido a que al recibir el registro para la operación de agregar un archivo, la instancia de servidor reflejado intenta colocar el nuevo archivo en la ubicación utilizada por la base de datos de la entidad de seguridad.
|
Por ejemplo, el siguiente comando restaura una copia de seguridad de una base de datos de la entidad de seguridad que reside en C:\Archivos de programa\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ en una ubicación distinta, D:\Archivos de programa\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, donde va a residir la base de datos reflejada.
RESTORE DATABASE AdventureWorks
FROM DISK='C:\AdventureWorks.bak'
WITH NORECOVERY,
MOVE 'AdventureWorks_Data' TO
'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf',
MOVE 'AdventureWorks_Log' TO
'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';
GO
-
Una vez creada la copia de seguridad completa, debe crearse una copia de seguridad de registros en la base de datos de la entidad de seguridad. Por ejemplo, la siguiente instrucción Transact-SQL realiza una copia de seguridad del registro en el mismo archivo que se utilizó en la anterior copia de seguridad completa:
BACKUP LOG AdventureWorks
TO DISK = 'C:\AdventureWorks.bak'
GO
-
Para poder iniciar la creación de reflejo, se debe aplicar la copia de seguridad de registros obligatoria (y las copias de seguridad de registros subsiguientes).
Por ejemplo, la siguiente instrucción Transact-SQL restaura el primer registro de C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks
FROM DISK = 'C:\AdventureWorks.bak'
WITH FILE=1, NORECOVERY
GO
-
Si se realizan copias de seguridad de registros adicionales antes de iniciar la creación de reflejo, se deben restaurar todas las copias de seguridad de registros, por orden, en el servidor reflejado mediante WITH NORECOVERY.
Por ejemplo, la siguiente instrucción Transact-SQL restaura dos registros adicionales de C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks
FROM DISK = 'C:\AdventureWorks.bak'
WITH FILE=2, NORECOVERY
GO
RESTORE LOG AdventureWorks
FROM DISK = 'C:\AdventureWorks.bak'
WITH FILE=3, NORECOVERY
GO
Para ver un ejemplo completo de la configuración de la creación de reflejo de la base de datos, en el que se muestra la configuración de seguridad, se prepara la base de datos reflejada, se configuran los asociados y se agrega un token, vea Configurar la creación de reflejo de la base de datos.