Mise en miroir et instantanés de bases de données (SQL Server)Database Mirroring and Database Snapshots (SQL Server)

Cette rubrique s’applique à : OuiSQL Serveraucunbase de données SQL AzureaucunAzure SQL Data Warehouse aucun Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Une base de données miroir maintenue à des fins de disponibilité peut être utilisée dans le but de décharger la création de rapports. You can take advantage of a mirror database that you are maintaining for availability purposes to offload reporting. Pour utiliser une base de données miroir à des fins de création de rapports, créez un instantané de base de données sur la base de données miroir et redirigez les requêtes de connexions clientes vers l'instantané le plus récent.To use a mirror database for reporting, you can create a database snapshot on the mirror database and direct client connection requests to the most recent snapshot. Un instantané de base de données est une image – statique, en lecture seule et cohérente par rapport aux transactions – de sa base de données source telle qu'elle existait au moment de la création de l'instantané.A database snapshot is a static, read-only, transaction-consistent snapshot of its source database as it existed at the moment of the snapshot's creation. Pour créer un instantané de base de données dans une base de données miroir, la base de données doit être dans un état de mise en miroir synchronisée.To create a database snapshot on a mirror database, the database must be in the synchronized mirroring state.

Contrairement à la base de données miroir, un instantané de base de données est accessible à tous les clients.Unlike the mirror database itself, a database snapshot is accessible to clients. Tant que le serveur miroir communique avec le serveur principal, vous pouvez demander aux clients sources des rapports de se connecter à un instantané.As long as the mirror server is communicating with the principal server, you can direct reporting clients to connect to a snapshot. Notez qu'un instantané de base de données étant statique, les nouvelles données ne sont pas disponibles.Note that because a database snapshot is static, new data is not available. Pour que les utilisateurs puissent accéder aux données relativement récentes, un instantané de base de données doit être créé régulièrement et les applications doivent diriger les connexions clientes entrantes vers ce nouvel instantané.To make relatively recent data available to your users, you must create a new database snapshot periodically and have applications direct incoming client connections to the newest snapshot.

Un nouvel instantané de base de données est pratiquement vide mais, au fil du temps, il grossit à mesure qu'un nombre croissant de pages de base de données sont mises à jour pour la première fois.A new database snapshot is almost empty, but it grows over time as more and more database pages are updated for the first time. Du fait de ce mode de croissance incrémentielle des instantanés dans une base de données, chaque instantané consomme autant de ressources qu'une base de données classique.Because every snapshot on a database grows incrementally in this way, each database snapshot consumes as much resources as a normal database. Selon les configurations du serveur miroir et du serveur principal, la présence d'un nombre excessif d'instantanés dans une base de données miroir peut réduire les performances dans la base de données principale.Depending on the configurations of the mirror server and principal server, having an excessive number of database snapshots on a mirror database might decrease performance on the principal database. Nous vous recommandons donc de conserver uniquement quelques instantanés relativement récents dans vos bases de données miroir.Therefore, we recommend that you keep only a few relatively recent snapshots on your mirror databases. Normalement, une fois que vous avez créé un instantané de remplacement, vous devez rediriger les requêtes entrantes vers le nouvel instantané et supprimer l'instantané antérieur après avoir exécuté toutes les requêtes en cours.Typically, after you create a replacement snapshot, you should redirect incoming queries to the new snapshot and drop the earlier snapshot after any current queries complete.

Note

Pour plus d’informations sur les instantanés de base de données, consultez Instantanés de base de données (SQL Server).For more information about database snapshots, see Database Snapshots (SQL Server).

S'il se produit un basculement de rôle, la base de données et ses instantanés sont redémarrés, ce qui entraîne une déconnexion temporaire des utilisateurs.If role switching occurs, the database and its snapshots are restarted, temporarily disconnecting users. Ensuite, les instantanés de base de données demeurent sur l'instance de serveur où ils ont été créés et qui est devenue la nouvelle base de données principale.Afterwards, the database snapshots remain on the server instance where they were created, which has become the new principal database. Les utilisateurs peuvent continuer à utiliser ces instantanés après le basculement.Users can continue to use the snapshots after the failover. Cependant, il s'ensuit une charge supplémentaire sur le nouveau serveur principal.However, this places an additional load on the new principal server. Si les performances constituent l'une de vos préoccupations majeures, nous vous recommandons de créer un instantané sur la nouvelle base de données miroir dès qu'elle est disponible, de rediriger les clients vers le nouvel instantané et de supprimer de la base de données miroir précédente l'ensemble des instantanés de base de données.If performance is a concern in your environment, we recommend that you create a snapshot on the new mirror database when it becomes available, redirect clients to the new snapshot, and drop all of the database snapshots from the former mirror database.

Note

Pour une solution de création de rapports dotée d'une bonne capacité de déploiement horizontal, envisagez la réplication.For a dedicated reporting solution that scales out well, consider replication. Pour plus d’informations, consultez Réplication SQL Server.For more information, see SQL Server Replication.

ExempleExample

Cet exemple créé des instantanés de bases de données sur une base de données miroir.This example creates snapshots on a mirrored database.

Imaginons que la base de données d'une session de mise en miroir de base de données soit la base de données AdventureWorks2012AdventureWorks2012.Assume that the database of a database mirroring session is AdventureWorks2012AdventureWorks2012. Cet exemple crée trois instantanés de base de données sur la copie miroir de la base de données AdventureWorks qui réside sur le lecteur F .This example creates three database snapshots on the mirror copy of the AdventureWorks database, which resides on the F drive. Les noms des instantanés sont AdventureWorks_0600, AdventureWorks_1200et AdventureWorks_1800 ; ils identifient les heures de création approximatives des captures.The snapshots are named AdventureWorks_0600, AdventureWorks_1200, and AdventureWorks_1800 to identify their approximate creation times.

  1. Créez le premier instantané de base de données sur le miroir de la base de données AdventureWorks2012AdventureWorks2012.Create the first database snapshot on the mirror of AdventureWorks2012AdventureWorks2012.

    CREATE DATABASE AdventureWorks_0600  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP')  
       AS SNAPSHOT OF AdventureWorks2012  
    
  2. Créez le deuxième instantané de base de données sur le miroir de la base de données AdventureWorks2012AdventureWorks2012.Create the second database snapshot on the mirror of AdventureWorks2012AdventureWorks2012. Les utilisateurs qui se servent encore de AdventureWorks_0600 peuvent continuer à le faire.Users who are still using AdventureWorks_0600 can continue to use it.

    CREATE DATABASE AdventureWorks_1200  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP')  
       AS SNAPSHOT OF AdventureWorks2012  
    

    À ce stade, les nouvelles connexions clientes peuvent être orientées, par programme, vers l'instantané le plus récent.At this point, new client connections can be programmatically directed to the latest snapshot.

  3. Créez le troisième instantané de base de données sur le miroir de la base de données AdventureWorks2012AdventureWorks2012.Create the third snapshot on the mirror AdventureWorks2012AdventureWorks2012. Les utilisateurs qui se servent encore de AdventureWorks_0600 ou de AdventureWorks_1200 peuvent continuer à le faire.Users who are still using AdventureWorks_0600 or AdventureWorks_1200 can continue to use them.

    CREATE DATABASE AdventureWorks_1800  
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP')  
        AS SNAPSHOT OF AdventureWorks2012  
    

    À ce stade, les nouvelles connexions clientes peuvent être orientées, par programme, vers l'instantané le plus récent.At this point, new client connections can be programmatically directed to the latest snapshot.

Tâches associéesRelated Tasks

Voir aussiSee Also

Instantanés de base de données (SQL Server) Database Snapshots (SQL Server)
Connecter des clients à une session de mise en miroir de bases de données (SQL Server)Connect Clients to a Database Mirroring Session (SQL Server)