Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Precaución
Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Para lograr una alta disponibilidad, use grupos de disponibilidad AlwaysOn en su lugar.
Importante
La duplicación de bases de datos en SQL Server es una tecnología distinta de la duplicación de bases de datos de Microsoft Fabric. La creación de reflejo en Fabric proporciona un mejor rendimiento analítico, la capacidad de unificar el patrimonio de datos con OneLake en Fabric y abrir el acceso a los datos en formato Delta Parquet.
Con el reflejo en Microsoft Fabric, puede replicar continuamente su ecosistema de datos existente directamente en OneLake dentro de Fabric, incluidos los datos de SQL Server 2016+, Azure SQL Database, Azure SQL Managed Instance, Cosmos DB, Oracle, Snowflake y más.
Para poder empezar una sesión de creación de reflejo de la base de datos, el propietario de la base de datos o el administrador del sistema debe asegurarse de que la base de datos reflejada se ha creado y está preparada para la creación de reflejo. La creación de una base de datos reflejada requiere como mínimo que se haga una copia de seguridad completa de la base de datos principal y la subsiguiente copia de seguridad de registros, y que ambas se restauren en la instancia del servidor reflejado mediante WITH NORECOVERY.
En este tema se describe cómo preparar una base de datos reflejada en SQL Server mediante SQL Server Management Studio o Transact-SQL.
Antes de empezar:
Para preparar una base de datos reflejada existente para reiniciar la creación de reflejo
Seguimiento:Después de preparar una base de datos reflejada
Antes de empezar
Requisitos
Las instancias de servidor principal y reflejado deben ejecutarse en la misma versión de SQL Server. Aunque es posible que el servidor reflejado tenga una versión posterior de SQL Server, esta configuración solo se recomienda durante un proceso de actualización planeado cuidadosamente. En tal configuración, se corre el riesgo de una conmutación por error automática, en la que el movimiento de datos se suspende automáticamente debido a que los datos no pueden pasarse a una versión inferior de SQL Server. Para más información, consulte Upgrading Mirrored Instances.
Las instancias de servidor principal y reflejado deben ejecutarse en la misma edición de SQL Server. Para obtener más información sobre la compatibilidad con la creación de reflejo de la base de datos en SQL Server, consulte Ediciones y características admitidas de SQL Server 2022.
La base de datos debe usar el modelo de recuperación completa.
Para obtener más información, vea Ver o cambiar el modelo de recuperación de una base de datos (SQL Server) o sys.databases (Transact-SQL) y ALTER DATABASE (Transact-SQL).
La base de datos reflejada debe tener el mismo nombre que la base de datos principal.
Para que la creación de reflejo funcione, la base de datos reflejada debe permanecer en estado RESTORING. Al preparar una base de datos de reflejo, debe usar RESTORE WITH NORECOVERY en cada operación de restauración. Como mínimo, necesitará restaurar (WITH NORECOVERY) una copia de seguridad completa de la base de datos principal, seguida de todas las copias de seguridad de registros subsiguientes.
El sistema en el que planea crear la base de datos reflejada debe poseer una unidad de disco con espacio suficiente para contener la base de datos reflejada.
Limitaciones y restricciones
No puede reflejar las bases de datos del sistema master, msdb, tempo model .
No se puede crear el reflejo de una base de datos que pertenezca a un grupo de disponibilidad AlwaysOn.
Recomendaciones
Use una copia de seguridad completa muy reciente o una copia de seguridad diferencial reciente de la base de datos principal.
Si se programa un trabajo de copia de seguridad de registros para que se ejecute muy a menudo en la base de datos principal, puede que sea necesario deshabilitar el trabajo de copia de seguridad hasta que se haya iniciado la creación de reflejo.
Si es posible, la ruta de acceso (incluida la letra de unidad) de la base de datos reflejada debería ser idéntica a la de la base de datos principal.
Si las rutas de acceso de archivos deben ser distintas, por ejemplo, si la base de datos principal está en la unidad "F:", pero el sistema espejo carece de una unidad F:, debe incluir la opción MOVE en la instrucción RESTORE.
Importante
Para poder agregar un archivo durante una sesión de creación de reflejo sin influir en la sesión, la ruta de acceso del archivo debe existir en ambos servidores. Por consiguiente, si mueve los archivos de base de datos al crear la base de datos reflejada, se podría producir un error en una operación posterior para agregar un archivo en la base de datos reflejada y provocar la suspensión de la creación del reflejo. Para obtener información sobre cómo actuar si una operación de creación de archivo no ha podido realizarse, vea Solucionar problemas de configuración de creación de reflejo de la base de datos (SQL Server).
Si la base de datos principal tiene algunos catálogos de texto completo, se recomienda ver Creación de reflejo de la base de datos y catálogos de texto completo (SQL Server).
Para una base de datos de producción, realice siempre la copia de seguridad en un dispositivo diferente.
Seguridad
TRUSTWORTHY se establece en OFF cuando se hace una copia de seguridad de base de datos. Por lo tanto, TRUSTWORTHY siempre está desactivada en una nueva base de datos espejo. Si es preciso que la base de datos sea de confianza después de una conmutación por error, son necesarios pasos de configuración adicionales. Para obtener más información, consulte Configurar una base de datos reflejo para utilizar la propiedad Trustworthy (Transact-SQL).
Para obtener más información sobre cómo habilitar el descifrado automático de la clave maestra de la base de datos de una base de datos reflejada, vea Establecer una base de datos reflejada cifrada.
Permisos
Propietario de la base de datos o administrador del sistema.
Para preparar una base de datos reflejada existente para reiniciar la creación de reflejo
Si se ha quitado el reflejo y la base de datos reflejada sigue en el estado RECOVERING, puede reiniciar el reflejo.
Realice al menos una copia de seguridad de registros de la base de datos principal. Para obtener más información, vea Realizar copia de seguridad de un registro de transacciones (SQL Server).
En la base de datos del reflejo, use RESTORE WITH NORECOVERY para restaurar todas las copias de seguridad del registro realizadas en la base de datos principal desde que se quitó el reflejo. Para más información, consulte Restaurar una copia de seguridad del registro de transacciones (SQL Server).
Para preparar una nueva base de datos reflejada
Para preparar una base de datos reflejada
Nota
Para obtener un ejemplo de Transact-SQL de este procedimiento, vea Ejemplo (Transact-SQL)más adelante en esta sección.
Conéctese a la instancia del servidor principal.
Cree una copia de seguridad completa o una copia de seguridad diferencial de la base de datos principal.
Normalmente, necesita realizar al menos una copia de seguridad de registros de la base de datos principal. Sin embargo, puede que no se necesite una copia de seguridad de registros si la base de datos se ha creado recientemente y no se ha hecho todavía ninguna copia de seguridad de registros o si el modelo de recuperación ha cambiado recientemente de SIMPLE a FULL.
A menos que las copias de seguridad estén en una unidad de red que sea accesible desde ambos sistemas, copie las copias de seguridad de la base de datos y de registros al sistema que hospedará la instancia de servidor reflejado.
Conéctese a la instancia del servidor espejo.
Con RESTORE WITH NORECOVERY, cree la base de datos reflejada restaurando la copia de seguridad completa de la base de datos y, opcionalmente, la copia de seguridad diferencial de base de datos más reciente en la instancia del servidor reflejado.
Nota
Si restaura la base de datos grupo de archivos por grupo de archivos, asegúrese de restaurar la base de datos completa.
Con RESTORE WITH NORECOVERY, aplique cualquier copia de seguridad de registros o copias de seguridad pendientes a la base de datos reflejada.
Ejemplo (Transact-SQL)
Antes de poder iniciar una sesió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 AdventureWorks2025 , que usa de forma predeterminada un modelo de recuperación simple.
Para utilizar la creación de reflejo de bases de datos con la base de datos
AdventureWorks2025, modifíquela para que use el modelo de recuperación completo:USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL; GODespué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. Dado que se acaba de cambiar el modelo de recuperación, se especifica la opción WITH FORMAT para crear un nuevo conjunto de soportes. 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 principal (en
PARTNERHOST1), cree una copia de seguridad completa de la base de datos principal, como se indica a continuación:BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.bak' WITH FORMAT GOCopie la copia de seguridad completa al servidor espejo.
Use RESTORE WITH NORECOVERY para restaurar la copia de seguridad completa en la instancia del servidor reflejo. El comando de restauración depende de si las rutas de acceso de las bases de datos principal y reflejada son idénticas.
Si las rutas de acceso son idénticas:
En la instancia del 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 GOSi las rutas de acceso son distintas:
Si la ruta de la base de datos reflejada difiere de la ruta de la base de datos principal (por ejemplo, si las letras de unidad son distintas), 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 principal 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 del servidor reflejado intenta colocar el nuevo archivo en la ubicación utilizada por la base de datos principal.
Por ejemplo, el siguiente comando restaura una copia de seguridad de una base de datos principal que reside en C:\Archivos de programa\Microsoft SQL Server\MSSQL. n\MSSQL\Data\ a otra ubicación, D:\Archivos de programa\Microsoft SQL Server\MSSQL. n\MSSQL\Data, donde se 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 principal. 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' GOAntes de poder iniciar la creación de reflejo, se debe aplicar la copia de seguridad del registro requerida (y las copias de seguridad del registro posteriores).
Por ejemplo, la siguiente instrucción de Transact-SQL restaura el primer registro de
C:\AdventureWorks.bak:RESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.bak' WITH FILE=1, NORECOVERY GOSi se realiza alguna copia de seguridad adicional del registro antes de iniciar la creación de reflejo, también debe restaurar todas esas copias de seguridad del registro, en secuencia, en el servidor de reflejo mediante WITH NORECOVERY.
Por ejemplo, la siguiente instrucción de 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 testigo, vea Configurar la creación de reflejo de la base de datos (SQL Server).
Seguimiento: después de haber preparado una base de datos espejo
Si se han realizado copias de seguridad adicionales del registro desde la operación RESTORE LOG más reciente, debe aplicar manualmente cada copia de seguridad adicional del registro con RESTORE WITH NORECOVERY.
Inicie la sesión de creación de reflejo. Para más información, consulte Establecer una sesión de creación de reflejo de la base de datos mediante la autenticación de Windows (SQL Server Management Studio) o Establecer una sesión de creación de reflejo de la base de datos mediante la autenticación de Windows (Transact-SQL).
Si ha deshabilitado el trabajo de copia de seguridad de la base de datos principal, vuelva a habilitar el trabajo.
Si la base de datos debe ser de confianza tras una conmutación por error, es necesario llevar a cabo pasos de configuración adicionales después de que se inicie la creación de reflejo. Para obtener más información, consulte Configurar una base de datos reflejo para utilizar la propiedad Trustworthy (Transact-SQL).
Tareas relacionadas
Creación de una copia de seguridad completa de base de datos (SQL Server)
Restaurar una copia de seguridad de registros de transacciones (SQL Server)
Configurar una base de datos de reflejo para utilizar la propiedad TRUSTWORTHY (Transact-SQL)
Consulte también
Creación de reflejo de la base de datos (SQL Server)
Seguridad del transporte para la duplicación de la base de datos y los grupos de disponibilidad Always On (SQL Server)
Configurar la creación de reflejo de la base de datos (SQL Server)
Realizar copias de seguridad de los catálogos e índices de texto completo y restaurarlos
Reflejo de la base de datos y catálogos de texto completo (SQL Server)
Duplicación y replicación de la base de datos (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE Argumentos (Transact-SQL)