Préparer une base de données miroir pour la mise en miroir (SQL Server)Prepare a Mirror Database for Mirroring (SQL Server)

Avant qu'une session de mise en miroir de bases de données puisse commencer, le propriétaire de la base de données ou l'administrateur système doit s'assurer que la base de données miroir a été créée et qu'elle est prête pour la mise en miroir.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 création d'une nouvelle base de données miroir requiert au minimum la réalisation d'une sauvegarde complète de la base de données principale puis d'une sauvegarde du journal, ainsi que la restauration de ces deux sauvegardes sur l'instance du serveur miroir, en utilisant 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.

Cette rubrique explique comment préparer une base de données miroir dans SQL Server 2017SQL Server 2017 à l'aide de SQL Server Management StudioSQL Server Management Studio ou de 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.

Avant de commencer Before You Begin

Spécifications Requirements

  • Les instances du serveur miroir et du serveur principal doivent exécuter la même version de SQL ServerSQL Server.The principal and mirror server instances must be running on the same version of SQL ServerSQL Server. Bien qu'il soit possible que le serveur miroir possède une version ultérieure de SQL Server, cette configuration est recommandée uniquement lors d'une mise à niveau planifiée avec soin.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. Dans une telle configuration, vous courez le risque d'un basculement automatique, dans lequel le déplacement des données est automatiquement interrompu, car les données n'ont pas accès à une version antérieure 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. Pour plus d’informations, consultez Mise à niveau des instances en miroir.For more information, see Upgrading Mirrored Instances.

  • Les instances du serveur miroir et du serveur principal doivent exécuter la même édition de SQL ServerSQL Server.The principal and mirror server instances must be running on the same edition of SQL ServerSQL Server. Pour plus d’informations sur la prise en charge de la mise en miroir de bases de données dans SQL Server 2017SQL Server 2017, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2016.For information about support for database mirroring in SQL Server 2017SQL Server 2017, see Features Supported by the Editions of SQL Server 2016.

  • La base de données doit utiliser le mode de récupération complète.The database must use the full recovery model.

    Pour plus d’informations, consultez Afficher ou modifier le mode de récupération d’une base de données (SQL Server) ou sys.databases (Transact-SQL) et 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).

  • Le nom de la base de données miroir doit être le même que celui de la base de données principale.The name of the mirror database must be the same as the name of the principal database.

  • La base de données miroir doit être dans l'état RESTORING pour que la mise en miroir fonctionne.The mirror database must be in the RESTORING state for mirroring to work. Lors de la préparation d'une base de données miroir, vous devez utiliser RESTORE WITH NORECOVERY pour chaque opération de restauration.When preparing a mirror database, you must use RESTORE WITH NORECOVERY for every restore operation. Au minimum, vous devrez restaurer avec RESTORE WITH NORECOVERY une sauvegarde complète de la base de données principale, suivie de toutes les sauvegardes de journaux suivantes.Minimally, you will need to restore WITH NORECOVERY a full backup of the principal database, followed by all subsequent log backups.

  • Le système dans lequel vous envisagez de créer la base de données miroir doit posséder un lecteur de disque avec suffisamment d'espace pour contenir la base de données miroir.The system where you plan to create the mirror database must possesses a disk drive with sufficient space to hold the mirror database.

Limitations et restrictions Limitations and Restrictions

  • Vous ne pouvez pas mettre en miroir les bases de données système master, msdb, tempou model .You cannot mirror the master, msdb, temp, or model system databases.

  • Vous ne pouvez pas mettre en miroir une base de données qui appartient à un groupe de disponibilité Always On.You cannot mirror a database that belongs to an Always On availability group.

Recommandations Recommendations

  • Utilisez une sauvegarde complète très récente ou une sauvegarde différentielle récente de la base de données principale.Use a very recent full database backup or a recent differential database backup of the principal database.

  • Si un travail de sauvegarde du journal est planifié pour s'exécuter très fréquemment sur la base de données principale, vous pouvez être amené à désactiver le travail de sauvegarde tant que la mise en miroir n'a pas commencé.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 possible, le chemin d'accès (y compris la lettre de lecteur) de la base de données miroir doit être identique au chemin d'accès de la base de données principale.If possible, the path (including the drive letter) of the mirror database should be identical to the path of the principal database.

    Si les chemins d'accès des fichiers doivent différer, par exemple, si la base de données principale se trouve sur le lecteur « F: », mais que le système miroir n'a pas de lecteur F:, vous devez inclure l'option MOVE dans l'instruction 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.

    Important

    Pour pouvoir ajouter un fichier pendant une session de mise en miroir sans compromettre la session, il faut que le chemin d'accès au fichier existe sur les deux serveurs.Adding a file during a mirroring session without impacting the session requires that the path of the file exists on both servers. Par conséquent, si vous déplacez des fichiers de base de données lors de la création de la base de données miroir, une opération d'ajout de fichier ultérieure peut échouer sur la base de données miroir et entraîner la suspension de la mise en miroir.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. Pour plus d’informations sur le traitement d’un échec d’opération de création de fichier, consultez Résoudre des problèmes de configuration de mise en miroir de bases de données (SQL Server).For information about dealing with a failed create-file operation, see Troubleshoot Database Mirroring Configuration (SQL Server).

  • Si la base de données principale comporte des catalogues de texte intégral, nous vous recommandons de consulter Mise en miroir de bases de données et catalogues de texte intégral (SQL Server).If the principal database has any full-text catalogs, we recommend that you see Database Mirroring and Full-Text Catalogs (SQL Server).

  • Dans le cas d'une base de données de production, effectuez toujours les sauvegardes sur une unité distincte.For a production database, always back up to a separate device.

Sécurité Security

TRUSTWORTHY a la valeur OFF lorsqu'une base de données est sauvegardée.TRUSTWORTHY is set to OFF when a database is backed up. Par conséquent, la propriété TRUSTWORTHY d'une nouvelle base de données miroir a toujours la valeur OFF.Therefore, TRUSTWORTHY is always OFF on a new mirror database. Si la base de données doit être fiable après un basculement, des opérations de configuration supplémentaires sont requises.If the database needs to be trustworthy after a failover, additional setup steps are necessary. Pour plus d’informations, consultez Configurer une base de données miroir pour utiliser la propriété Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Pour plus d’informations sur l’activation du déchiffrement automatique de la clé principale d’une base de données miroir, consultez Configurer une base de données miroir chiffrée.For information about enabling automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

Autorisations Permissions

Propriétaire de base de données ou administrateur système.Database owner or system administrator.

Pour préparer une base de données miroir existante pour redémarrer la mise en miroir To Prepare an Existing Mirror Database to Restart Mirroring

Si la mise en miroir a été supprimée et que la base de données miroir est toujours à l'état RECOVERING, vous pouvez redémarrer la mise en miroir.If mirroring has been removed and the mirror database is still in the RECOVERING state, you can restart mirroring.

  1. Prenez au moins une sauvegarde du journal sur la base de données principale.Take at least one log backup on the principal database. Pour plus d’informations, consultez Sauvegarder un journal des transactions (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

  2. Sur la base de données miroir, restaurez à l'aide de RESTORE WITH NORECOVERY toutes les sauvegardes des journaux effectuées sur la base de données principale depuis la suppression de la mise en miroir.On the mirror database, use RESTORE WITH NORECOVERY to restore all log backups taken on the principal database since mirroring was removed. Pour plus d’informations, consultez Restaurer une sauvegarde de journal des transactions (SQL Server).For more information, see Restore a Transaction Log Backup (SQL Server).

Pour préparer une nouvelle base de données miroir To Prepare a New Mirror Database

Pour préparer une base de données miroirTo prepare a mirror database

Note

Pour obtenir un exemple Transact-SQLTransact-SQL de cette procédure, consultez Exemple (Transact-SQL), plus loin dans cette section.For a Transact-SQLTransact-SQL example of this procedure, see Example (Transact-SQL), later in this section.

  1. Connectez-vous à l'instance de serveur principal.Connect to principal server instance.

  2. Créez une sauvegarde complète ou une sauvegarde différentielle de la base de données principale.Create either a full database backup or a differential database backup of the principal database.

  3. En général, vous devez prendre au moins une sauvegarde du journal sur la base de données principale.Typically, you need to take at least one log backup on the principal database. Toutefois, une sauvegarde du journal peut s'avérer superflue, si la base de données vient d'être créée et qu'aucune sauvegarde du journal n'a été encore réalisée ou si le mode de récupération vient d'être modifié de SIMPLE à 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. À moins que les sauvegardes se trouvent sur un lecteur réseau accessible à partir des deux systèmes, copiez les sauvegardes de la base de données et des journaux sur le système qui hébergera l'instance de serveur miroir.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. Connectez-vous à l'instance de serveur miroir.Connect to mirror server instance.

  6. À l'aide de RESTORE WITH NORECOVERY, créez la base de données miroir en restaurant la sauvegarde complète de la base de données et, éventuellement, la sauvegarde différentielle de base de données la plus récente, sur l'instance de serveur miroir.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.

    Note

    Si vous restaurez le groupe de fichiers de base de données par groupe de fichiers, veillez à restaurer l'intégralité de la base de données.If you restore the database filegroup by filegroup, be sure to restore the whole database.

  7. À l'aide de RESTORE WITH NORECOVERY, appliquez les autres sauvegardes de fichiers journaux ou sauvegardes en attente à la base de données miroir.Using RESTORE WITH NORECOVERY, apply any outstanding log backup or backups to the mirror database.

Exemple (Transact-SQL) Example (Transact-SQL)

Avant de démarrer une session de mise en miroir de bases de données, vous devez créer la base de données miroir.Before you can start a database mirroring session, you must create the mirror database. Vous devez procéder à cette opération avant de démarrer la session de mise en miroir.You should do this just before starting the mirroring session.

L'exemple suivant utilise l'exemple de base de données AdventureWorks2012AdventureWorks2012 qui emploie par défaut le mode de récupération simple.This example uses the AdventureWorks2012AdventureWorks2012 sample database, which uses the simple recovery model by default.

  1. Pour utiliser la mise en miroir de base de données sur la base de données AdventureWorks2012AdventureWorks2012 , modifiez-la afin qu'elle utilise le mode de restauration complète :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. Après avoir changé le mode de récupération de SIMPLE à FULL, créez une sauvegarde complète qui pourra être utilisée pour créer la base de données miroir.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. Dans la mesure où le mode de récupération vient d'être modifié, l'option WITH FORMAT est spécifiée pour créer un nouveau support de sauvegarde.Because the recovery model has just been changed, the WITH FORMAT option is specified to create a new media set. Il peut se révéler utile de séparer les sauvegardes effectuées en mode de récupération complète des sauvegardes préalablement effectuées en mode de récupération simple.This is useful to separate the backups under the full recovery model from any previous backups made under the simple recovery model. Pour les besoins de cet exemple, le fichier de sauvegarde (C:\AdventureWorks.bak) est créé sur le même lecteur que la base de données.For the purpose of this example, the backup file (C:\AdventureWorks.bak) is created on the same drive as the database.

    Note

    Dans le cas d'une base de données de production, il est conseillé de toujours effectuer les sauvegardes sur une unité distincte.For a production database, you should always back up to a separate device.

    Sur l'instance de serveur principal (sur PARTNERHOST1), créez une sauvegarde complète de la base de données principale comme suit :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. Copiez cette sauvegarde complète sur le serveur miroir.Copy the full backup to the mirror server.

  4. À l'aide de RESTORE WITH NORECOVERY, restaurez la sauvegarde complète sur l'instance de serveur miroir.Using RESTORE WITH NORECOVERY, restore the full backup onto the mirror server instance. La commande de restauration dépend si les chemins d'accès aux bases de données principale et miroir sont identiques ou non.The restore command depends on whether the paths of principal and mirror databases are identical.

    • Si les chemins d'accès sont identiques :If the paths are identical:

      Sur l'instance de serveur miroir (sur PARTNERHOST5), restaurez la sauvegarde complète comme suit :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 les chemins d'accès sont différents :If the paths differ:

      Si le chemin d'accès de la base de données miroir n'est pas le même que celui de la base de données principale (lettres de lecteurs distinctes, par exemple), la création de la base de données miroir requiert l'intégration d'une clause MOVE dans l'opération de restauration.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.

      Important

      Si les chemins d'accès des bases de données principale et miroir diffèrent, vous ne pouvez pas ajouter de fichier.If the path names of the principal and mirror databases differ, you cannot add a file. La raison tient à la réception du journal pour l'opération d'ajout de fichier puisque l'instance de serveur miroir tente de placer le nouveau fichier dans l'emplacement utilisé par la base de données principale.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.

      Par exemple, la commande ci-dessous restaure une sauvegarde d’une base de données principale qui réside dans C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ dans un emplacement différent, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, où la base de données miroir doit résider.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. Après avoir créé la sauvegarde complète, vous devez créer une sauvegarde du journal sur la base de données principale.After you create the full backup, you must create a log backup on the principal database. Par exemple, l'instruction Transact-SQLTransact-SQL suivante sauvegarde le journal dans le même fichier utilisé par la sauvegarde complète antérieure :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. Avant de démarrer la mise en miroir, vous devez appliquer la sauvegarde du journal requise (et toutes les sauvegardes de journal ultérieures).Before you can start mirroring, you must apply the required log backup (and any subsequent log backups).

    Par exemple, l'instruction Transact-SQLTransact-SQL ci-dessous restaure le premier journal à partir 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 des sauvegardes de journal supplémentaires se produisent avant le démarrage de la mise en miroir, vous devez également restaurer toutes ces sauvegardes de journal, dans l'ordre, sur le serveur miroir, en utilisant 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.

    Par exemple, l'instruction Transact-SQLTransact-SQL ci-dessous restaure deux journaux supplémentaires à partir 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  
    

    Pour voir un exemple de configuration de la mise en miroir d’une base de données illustrant la configuration de la sécurité, la préparation de la base de données miroir, la configuration des serveurs partenaires et l’ajout d’un témoin, consultez Configuration de la mise en miroir d’une base de données (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).

Suivi : Après avoir préparé une base de données miroir Follow Up: After Preparing a Mirror Database

  1. Si des sauvegardes de fichier journal supplémentaires ont été effectuées depuis votre opération RESTORE LOG la plus récente, vous devez appliquer manuellement chaque sauvegarde de journal supplémentaire, à l'aide de 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. Démarrez la session de mise en miroir.Start the mirroring session. Pour plus d’informations, consultez Établir une session de mise en miroir de bases de données au moyen de l’authentification Windows (SQL Server Management Studio) ou de Établir une session de mise en miroir de bases de données au moyen de l’authentification 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 vous avez désactivé le travail de sauvegarde sur la base de données principale, réactivez le travail.If you disabled the backup job on the principal database, reenable the job.

  4. Si la base de données doit être fiable après un basculement, des opérations de configuration supplémentaires sont requises après le début de la mise en miroir.If the database needs to be trustworthy after a failover, extra setup steps are necessary after mirroring begins. Pour plus d’informations, consultez Configurer une base de données miroir pour utiliser la propriété Trustworthy (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Voir aussiSee Also

Mise en miroir de bases de données (SQL Server) Database Mirroring (SQL Server)
Sécurité du transport de la mise en miroir de bases de données et des groupes de disponibilité Always On (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Configuration de la mise en miroir d’une base de données (SQL Server) Setting Up Database Mirroring (SQL Server)
Sauvegarder et restaurer des catalogues et des index de recherche en texte intégral Back Up and Restore Full-Text Catalogs and Indexes
Mise en miroir de bases de données et catalogues de texte intégral (SQL Server) Database Mirroring and Full-Text Catalogs (SQL Server)
Mise en miroir de bases de données et réplication (SQL Server) Database Mirroring and Replication (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Arguments RESTORE (Transact-SQL)RESTORE Arguments (Transact-SQL)