Preparar una base de datos reflejada para la creación de reflejo (SQL Server)Prepare a Mirror Database for Mirroring (SQL Server)

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

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.Before a database mirroring session can start, the database owner or system administrator must make sure that the mirror database has been created and is ready for mirroring. 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.Creating a new mirror database minimally requires taking a full backup of the principal database and a subsequent log backup and restoring them both onto the mirror server instance, using WITH NORECOVERY.

En este tema se describe cómo preparar una base de datos reflejada en SQL Server 2017SQL Server 2017 mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to prepare a mirror database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Antes de comenzarBefore You Begin

RequisitosRequirements

  • Las instancias de servidor principal y reflejado deben ejecutarse en la misma versión de SQL ServerSQL Server.The principal and mirror server instances must be running on the same version of SQL ServerSQL 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.While it is possible for the mirror server to have a higher version of SQL Server, this configuration is only recommended during a carefully planned upgrade process. 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.In such a configuration, you run the risk of an automatic failover, in which data movement is automatically suspended because data cannot move to a lower version of SQL Server. Para más información, consulte Upgrading Mirrored Instances.For more information, see Upgrading Mirrored Instances.

  • Las instancias de servidor principal y reflejado deben ejecutarse en la misma edición de SQL ServerSQL Server.The principal and mirror server instances must be running on the same edition of SQL ServerSQL Server. Para más información sobre la compatibilidad con la creación de reflejo de la base de datos en SQL Server 2017SQL Server 2017, vea Ediciones y características admitidas de SQL Server 2017.For information about support for database mirroring in SQL Server 2017SQL Server 2017, see Editions and Supported features of SQL Server 2017.

  • La base de datos debe usar el modelo de recuperación completa.The database must use the full recovery model.

    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).For more information, see View or Change the Recovery Model of a Database (SQL Server) or sys.databases (Transact-SQL) and ALTER DATABASE (Transact-SQL).

  • La base de datos reflejada debe tener el mismo nombre que la base de datos principal.The name of the mirror database must be the same as the name of the principal database.

  • Para que la creación de reflejo funcione, la base de datos reflejada debe permanecer en estado RESTORING.The mirror database must be in the RESTORING state for mirroring to work. Al preparar una base de datos reflejada, debe usar RESTORE WITH NORECOVERY para cada operación de restauración.When preparing a mirror database, you must use RESTORE WITH NORECOVERY for every restore operation. 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.Minimally, you will need to restore WITH NORECOVERY a full backup of the principal database, followed by all subsequent log backups.

  • El sistema donde piensa crear la base de datos reflejada debe poseer una unidad de disco con espacio suficiente para alojar la base de datos reflejada.The system where you plan to create the mirror database must possesses a disk drive with sufficient space to hold the mirror database.

Limitaciones y restriccionesLimitations and Restrictions

  • No puede reflejar las bases de datos del sistema master, msdb, tempo model .You cannot mirror the master, msdb, temp, or model system databases.

  • No se puede crear el reflejo de una base de datos que pertenezca a un grupo de disponibilidad AlwaysOn.You cannot mirror a database that belongs to an Always On availability group.

RecomendacionesRecommendations

  • Use una copia de seguridad completa muy reciente o una copia de seguridad diferencial reciente de la base de datos principal.Use a very recent full database backup or a recent differential database backup of the principal database.

  • 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.If a log backup job is scheduled to run very frequently on the principal database, you might have to disable the backup job until mirroring has started.

  • 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.If possible, the path (including the drive letter) of the mirror database should be identical to the path of the principal database.

    Si las rutas de acceso de archivo deben ser diferentes (por ejemplo, si la base de datos principal se encuentra en la unidad 'F:' pero el sistema reflejado no tiene unidad F:), se debe incluir la opción MOVE en RESTORE STATEMENT.If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE STATEMENT.

    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.Adding a file during a mirroring session without impacting the session requires that the path of the file exists on both servers. 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.Therefore, if you move the database files when creating the mirror database, a later add-file operation might fail on the mirror database and cause mirroring to be suspended. 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).For information about dealing with a failed create-file operation, see Troubleshoot Database Mirroring Configuration (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).If the principal database has any full-text catalogs, we recommend that you see Database Mirroring and Full-Text Catalogs (SQL Server).

  • Para una base de datos de producción, realice siempre la copia de seguridad en un dispositivo diferente.For a production database, always back up to a separate device.

SeguridadSecurity

TRUSTWORTHY se establece en OFF cuando se hace una copia de seguridad de base de datos.TRUSTWORTHY is set to OFF when a database is backed up. Por lo tanto, TRUSTWORTHY está siempre en OFF en una nueva base de datos reflejada.Therefore, TRUSTWORTHY is always OFF on a new mirror database. 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.If the database needs to be trustworthy after a failover, additional setup steps are necessary. Para más información, consulte Configurar una base de datos reflejada para usar la propiedad Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (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.For information about enabling automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

PermisosPermissions

Propietario de la base de datos o administrador del sistema.Database owner or system administrator.

Para preparar una base de datos reflejada existente para reiniciar la creación de reflejoTo Prepare an Existing Mirror Database to Restart Mirroring

Si la creación de reflejo se ha eliminado y la base de datos reflejada sigue en el estado de recuperación (RECOVERING), se puede reiniciar la creación de reflejo.If mirroring has been removed and the mirror database is still in the RECOVERING state, you can restart mirroring.

  1. Realice al menos una copia de seguridad de registros de la base de datos principal.Take at least one log backup on the principal database. Para más información, consulte Realizar copia de seguridad de un registro de transacciones (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

  2. En la base de datos reflejada, use RESTORE WITH NORECOVERY para restaurar todas las copias de seguridad de registros que se realizaron en la base de datos principal desde que se quitó la creación de reflejo.On the mirror database, use RESTORE WITH NORECOVERY to restore all log backups taken on the principal database since mirroring was removed. Para más información, consulte Restaurar una copia de seguridad del registro de transacciones (SQL Server).For more information, see Restore a Transaction Log Backup (SQL Server).

Para preparar una nueva base de datos reflejadaTo Prepare a New Mirror Database

Para preparar una base de datos reflejadaTo prepare a mirror database

Nota

Para obtener un ejemplo de Transact-SQLTransact-SQL de este procedimiento, vea Ejemplo (Transact-SQL)más adelante en esta sección.For a Transact-SQLTransact-SQL example of this procedure, see Example (Transact-SQL), later in this section.

  1. Conéctese a la instancia del servidor principal.Connect to principal server instance.

  2. Cree una copia de seguridad completa o una copia de seguridad diferencial de la base de datos principal.Create either a full database backup or a differential database backup of the principal database.

  3. Normalmente, necesita realizar al menos una copia de seguridad de registros de la base de datos principal.Typically, you need to take at least one log backup on the principal database. 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.However, a log backup might be unnecessary, if the database has just been created and no log backup has been taken yet, or if the recovery model has just been changed from SIMPLE to FULL.

  4. 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.Unless the backups are on a network drive that is accessible from both systems, copy the database and log backups to the system that will host the mirror server instance.

  5. Conéctese a la instancia del servidor reflejado.Connect to mirror server instance.

  6. Con RESTORE WITH NORECOVERY, cree la base de datos reflejada restaurando la copia de seguridad completa y, opcionalmente, la copia de seguridad diferencial más reciente, en la instancia de servidor reflejado.Using RESTORE WITH NORECOVERY, create the mirror database by restoring the full database backup and, optionally, the most recent differential database backup, onto the mirror server instance.

    Nota

    Si restaura la base de datos grupo de archivos por grupo de archivos, asegúrese de restaurar la base de datos completa.If you restore the database filegroup by filegroup, be sure to restore the whole database.

  7. Con RESTORE WITH NORECOVERY, aplique la copia de seguridad o las copias de seguridad de registros pendientes en la base de datos reflejada.Using RESTORE WITH NORECOVERY, apply any outstanding log backup or backups to the mirror database.

Ejemplo (Transact-SQL)Example (Transact-SQL)

Para poder iniciar una sesión de creación de reflejo de la base de datos, debe crear la base de datos reflejada.Before you can start a database mirroring session, you must create the mirror database. Debe hacerlo inmediatamente antes de iniciar la sesión de creación de reflejo.You should do this just before starting the mirroring session.

En este ejemplo se utiliza la base de datos de ejemplo AdventureWorks2012AdventureWorks2012 , que usa de forma predeterminada un modelo de recuperación simple.This example uses the AdventureWorks2012AdventureWorks2012 sample database, which uses the simple recovery model by default.

  1. Para utilizar la creación de reflejo de la base de datos con la base de datos AdventureWorks2012AdventureWorks2012 , modifíquela para que utilice el modelo de recuperación completa.To use database mirroring with the AdventureWorks2012AdventureWorks2012 database, modify it to use the full recovery model:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. 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.After modifying the recovery model of the database from SIMPLE to FULL, create a full backup, which can be used to create the mirror database. Puesto que se ha cambiado recientemente el modelo de recuperación, se especifica la opción WITH FORMAT para crear un conjunto de medios.Because the recovery model has just been changed, the WITH FORMAT option is specified to create a new media set. 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.This is useful to separate the backups under the full recovery model from any previous backups made under the simple recovery model. Para este ejemplo, el archivo de copia de seguridad (C:\AdventureWorks.bak) se crea en la misma unidad que la base de datos.For the purpose of this example, the backup file (C:\AdventureWorks.bak) is created on the same drive as the database.

    Nota

    Para una base de datos de producción, siempre se debe realizar la copia de seguridad en un dispositivo independiente.For a production database, you should always back up to a separate device.

    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:On the principal server instance (on PARTNERHOST1), create a full backup of the principal database as follows:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. Copie la copia de seguridad completa en el servidor reflejado.Copy the full backup to the mirror server.

  4. Con RESTORE WITH NORECOVERY, restaure la copia de seguridad completa en la instancia de servidor reflejado.Using RESTORE WITH NORECOVERY, restore the full backup onto the mirror server instance. El comando de restauración depende de si las rutas de acceso de las bases de datos principal y reflejada son idénticas.The restore command depends on whether the paths of principal and mirror databases are identical.

    • Si las rutas de acceso son idénticas:If the paths are identical:

      En la instancia del servidor reflejado (en PARTNERHOST5), restaure la copia de seguridad completa como se indica a continuación:On the mirror server instance (on PARTNERHOST5), restore the full backup as follows:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • Si las rutas de acceso son distintas:If the paths differ:

      Si la ruta de acceso de la base de datos reflejada difiere de la de la base de datos principal (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.If the path of the mirror database differs from the path of the principal database (for instance, their drive letters differ), creating the mirror database requires that the restore operation include a MOVE clause.

      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.If the path names of the principal and mirror databases differ, you cannot add a file. 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.This is because on receiving the log for the add file operation, the mirror server instance attempts to place the new file in the location used by the principal database.

      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\ 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.For example, the following command restores a backup of a principal database residing in C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ to a different location, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, where the mirror database is to reside.

      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  
      
  5. Una vez creada la copia de seguridad completa, debe crearse una copia de seguridad de registros en la base de datos principal.After you create the full backup, you must create a log backup on the principal database. Por ejemplo, la siguiente instrucción Transact-SQLTransact-SQL realiza una copia de seguridad del registro en el mismo archivo que se utilizó en la anterior copia de seguridad completa:For example, the following Transact-SQLTransact-SQL statement backs up the log to the same file used by the preceding full backup:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. 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).Before you can start mirroring, you must apply the required log backup (and any subsequent log backups).

    Por ejemplo, la siguiente instrucción de Transact-SQLTransact-SQL restaura el primer registro de C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores the first log from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. 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.If any additional log backups occur before you start mirroring, you must also restore all of those log backups, in sequence, to the mirror server using WITH NORECOVERY.

    Por ejemplo, la siguiente instrucción de Transact-SQLTransact-SQL restaura dos registros adicionales de C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores two additional logs from 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).For a complete example of setting up database mirroring, showing security setup, preparing the mirror database, setting up the partners, and adding a witness, see Setting Up Database Mirroring (SQL Server).

Seguimiento: Después de preparar una base de datos reflejadaFollow Up: After Preparing a Mirror Database

  1. Si se han realizado copias de seguridad de registros adicionales desde la operación RESTORE LOG más reciente, se debe aplicar manualmente cada copia de seguridad de registros adicional, utilizando RESTORE WITH NORECOVERY.If any additional log backups have been taken since your most recent RESTORE LOG operation, you must manually apply every additional log backup, using RESTORE WITH NORECOVERY.

  2. Inicie la sesión de creación de reflejo.Start the mirroring session. 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).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Establish a Database Mirroring Session Using Windows Authentication (Transact-SQL).

  3. Si ha deshabilitado el trabajo de copia de seguridad de la base de datos principal, vuelva a habilitar el trabajo.If you disabled the backup job on the principal database, reenable the job.

  4. Si la base de datos necesita marcarse como de confianza después de una conmutación por error, es necesario realizar pasos adicionales de configuración después de iniciar la creación de reflejo.If the database needs to be trustworthy after a failover, extra setup steps are necessary after mirroring begins. Para más información, consulte Configurar una base de datos reflejada para usar la propiedad Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Tareas relacionadasRelated Tasks

Consulte tambiénSee Also

Creación de reflejo de la base de datos (SQL Server) Database Mirroring (SQL Server)
Seguridad de transporte para la creación de reflejo de la base de datos y grupos de disponibilidad AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Configurar la creación de reflejo de la base de datos (SQL Server) Setting Up Database Mirroring (SQL Server)
Realizar copias de seguridad de los catálogos de texto completo y restaurarlos Back Up and Restore Full-Text Catalogs and Indexes
Creación de reflejo de la base de datos y catálogos de texto completo (SQL Server) Database Mirroring and Full-Text Catalogs (SQL Server)
Replicación y creación de reflejo de la base de datos (SQL Server) Database Mirroring and Replication (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
RESTORE (argumentos, Transact-SQL)RESTORE Arguments (Transact-SQL)