Mise en miroir de bases de données et copie des journaux de transaction (SQL Server)Database Mirroring and Log Shipping (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 déterminée peut être simultanément mise en miroir et/ou faire l’objet d’une copie des journaux de transaction. A given database can be mirrored or log shipped; it can also be simultaneously mirrored and log shipped. Pour choisir l'approche à utiliser, tenez compte des éléments suivants :To choose what approach to use, consider the following:

  • De combien de serveurs de destination avez-vous besoin ?How many destination servers do you require?

    Si vous n'avez besoin que d'une base de données de destination, la mise en miroir de bases de données est la solution recommandée.If you require only a single destination database, database mirroring is the recommended solution.

    Si plusieurs bases de données de destination sont nécessaires, vous devez utiliser la copie des journaux de transaction, seul ou avec la mise en miroir de bases de données.If you require more than one destination database, you need to use log shipping, either alone or with database mirroring. La combinaison de ces approches offre les avantages de la mise en miroir de bases de données ainsi que la prise en charge de plusieurs destinations, permise par la copie des journaux de transaction.Combining these approaches gives you the benefits of database mirroring along with the support for multiple destinations provided by log shipping.

  • Si vous devez différer la restauration du journal sur la base de données de destination (généralement pour la protéger contre les erreurs logiques), utilisez la copie des journaux de transaction, seul ou avec la mise en miroir de bases de données.If you need to delay restoring log on the destination database (typically, to protect against logical errors), use log shipping, alone or with database mirroring.

    Cette rubrique présente les observations relatives à la combinaison de la copie des journaux de transaction et de la mise en miroir de bases de données.This topic discusses considerations for combining log shipping and database mirroring.

Note

Pour obtenir une présentation de ces technologies, consultez Mise en miroir de bases de données (SQL Server) et À propos de la copie des journaux de transaction (SQL Server).For introductions to these technologies, see Database Mirroring (SQL Server) and About Log Shipping (SQL Server).

Combinaison de la copie des journaux de transaction et de la mise en miroir de bases de donnéesCombining Log Shipping and Database Mirroring

La base de données principale dans une session de mise en miroir peut également jouer le rôle de la base de données primaire dans une configuration de copie des journaux de transaction, ou inversement, car le partage de la sauvegarde de copie des journaux de transaction est intact.The principal database in a mirroring session can also act as the primary database in a log shipping configuration, or vice versa, as the log shipping backup share is intact. La session de mise en miroir de bases de données s'exécute dans n'importe quel mode d'exécution : synchrone (la sécurité des transactions ayant la valeur FULL) ou asynchrone (la sécurité des transactions ayant la valeur OFF).The database mirroring session run in any operating mode, whether synchronous (with transaction safety set to FULL) or asynchronous (with transaction safety set to OFF).

Note

Pour utiliser la mise en miroir de base de données sur une base de données, le mode de restauration complète est toujours requis.To use database mirroring on a database, the full recovery model is always required.

Généralement, lors de la combinaison de la copie des journaux de transaction et de la mise en miroir de bases de données, la session de mise en miroir de bases de données est établie avant la copie des journaux de transaction, même si cela n'est pas obligatoire.Typically, when combining log shipping and database mirroring, the mirroring session is established before log shipping, although this is not required. Ensuite, la base de données principale actuelle est configurée comme base de données primaire de copie des journaux de transaction ( base de données principale/primaire), associée à une ou plusieurs bases de données secondaires distantes.Then the current principal database is configured as the log shipping primary (the principal/primary database), along with one or more remote secondary databases. En outre, la base de données miroir doit être configurée comme base de données primaire de copie des journaux de transaction ( base de données miroir/primaire).Also, the mirror database must be configured as a log shipping primary (the mirror/primary database). Les bases de données secondaires de copie des journaux de transaction doivent se situer sur des instances du serveur différentes du serveur principal ou du serveur miroir/principal.The log shipping secondary databases should be on different server instances than either the principal/primary server or mirror/primary server.

Note

Les paramètres de respect de la casse des serveurs impliqués dans la copie des journaux de transaction doivent correspondre.The case sensitivity settings of the servers involved in log shipping should match.

Pendant une session de copie des journaux de transaction, les travaux de sauvegarde situés dans la base de données primaire entraînent la création de sauvegardes des journaux dans un dossier de sauvegarde.During a log shipping session, backup jobs on the primary database create log backups in a backup folder. À partir de cet endroit, les sauvegardes sont copiées par les travaux de copie des serveurs secondaires.From there, the backups are copied by the copy jobs of the secondary servers. Pour que les travaux de sauvegarde et de copie réussissent, ils doivent avoir accès au dossier de sauvegarde de la copie des journaux de transaction.For the backup jobs and copy jobs to succeed, they must have access to the log shipping backup folder. Pour optimiser la disponibilité du serveur principal, il est recommandé d'installer le dossier de sauvegarde à un emplacement de sauvegarde partagé sur un ordinateur hôte distinct.To maximize availability of the primary server, we recommend that you establish the backup folder in a shared backup location on a separate host computer. Vérifiez que tous les serveurs de copie des journaux de transaction, notamment le serveur miroir/principal, peuvent accéder à l’emplacement de sauvegarde partagé (connu sous le nom de partage de sauvegarde).Ensure that all the log shipping servers, including the mirror/primary server, can access the shared backup location (known as a backup share).

Pour permettre la poursuite de la copie des journaux de transaction après le basculement de la mise en miroir de base de données, vous devez également configurer le serveur miroir en tant que serveur principal, à l'aide de la même configuration que celle utilisée pour la base de données primaire ou la base de données principale.To allow log shipping to continue after database mirroring fails over, you must also configure the mirror server as a primary server, using the same configuration you use for the primary on the principal database. La base de données miroir est en état de restauration, ce qui empêche les travaux de sauvegarde de sauvegarder le journal dans celle-ci.The mirror database is in the restoring state, which prevents the backup jobs from backing up the log on the mirror database. De cette manière, la base de données miroir/primaire n'interfère pas avec la base de données principale/primaire dont les sauvegardes des journaux sont actuellement copiées par les serveurs secondaires.This ensures that the mirror/primary database does not interfere with the principal/primary database whose log backups are currently being copied by secondary servers. Pour empêcher les fausses alertes, quand un travail de sauvegarde s’exécute sur la base de données miroir/primaire, le travail de sauvegarde enregistre un message dans la tablelog_shipping_monitor_history_detail et le travail de l’Agent retourne un état de réussite.To prevent spurious alerts, after the backup job executes on the mirror/primary database, the backup job logs a message to the log_shipping_monitor_history_detail table, and the agent job returns a status of success.

La base de données miroir/primaire est inactive dans la session de copie des journaux de transaction.The mirror/primary database is inactive in the log shipping session. Cependant, si la mise en miroir bascule, la base de données miroir précédente se met en ligne en tant que base de données principale.However, if mirroring fails over, the former mirror database comes online as the principal database. À ce stade, cette base de données joue également le rôle de base de données primaire de copie des journaux de transaction.At that point, that database also becomes active as the log shipping primary database. Les travaux de sauvegarde de la copie des journaux de transaction qui ne pouvaient pas précédemment copier de journaux sur cette base de données, commencent la copie des journaux de transaction.The log shipping backup jobs that were previously unable to ship log on that database, begin shipping log. À l'inverse, un basculement entraîne la transformation de l'ancienne base de données principale/primaire en une nouvelle base de données miroir/primaire ainsi que son passage à l'état de restauration, tandis que les travaux de sauvegarde de cette base de données cessent de sauvegarder le journal.Conversely, a failover causes the former principal/primary database to become the new mirror/primary database and enter the restoring state, and backup jobs on that database cease to backup log.

Note

En cas de basculement automatique, le passage au rôle miroir se produit lorsque la base de données principale/primaire précédente rejoint la session de mise en miroir.In the event of an automatic failover, the switch to the mirror role occurs when the former principal/primary database rejoins the mirroring session.

Pour s’exécuter en mode haute sécurité avec basculement automatique, la session de mise en miroir est configurée avec une instance de serveur supplémentaire appelée témoin.To run in high-safety mode with automatic failover the mirroring session is configured with an additional server instance known as the witness. Si la base de données principale est perdue pour une quelconque raison après la synchronisation de la base de données et si le serveur miroir ainsi que son témoin peuvent toujours communiquer entre eux, un basculement automatique se produit.If the principal database is lost for any reason after the database is synchronized and if the mirror server and witness can still communicate with each other, automatic failover occurs. Lors d'un basculement automatique, le serveur miroir assume le rôle du principal et met sa base de données en ligne en tant que base de données principale.An automatic failover causes mirror server to assume the principal role and bring its database online as the principal database. Si l'emplacement de la sauvegarde de la copie des journaux de transaction est accessible au nouveau serveur principal, ses travaux de sauvegarde commencent à envoyer les sauvegardes des journaux à cet endroit.If the log shipping backup location is accessible to the new principal/primary server, its backup jobs begin to ship log backups to that location. Le mode synchrone de mise en miroir de bases de données garantit que la séquence de journaux de transactions consécutifs n'est pas affectée par un basculement de mise en miroir et que seul le journal valide est restauré.The database mirroring synchronous mode guarantees that the log chain is unaffected by a mirroring failover and that only valid log is restored. Les serveurs secondaires continuent de copier les sauvegardes des journaux sans savoir qu'une autre instance du serveur est devenue le serveur principal.The secondary servers continue to copy log backups without knowing that a different server instance has become the primary server.

Si vous utilisez un moniteur de copie des journaux de transaction local, aucune observation particulière n'est nécessaire pour la prise en charge de ce scénario.When using a local log shipping monitor, no special considerations are necessary to accommodate this scenario. Pour plus d'informations sur l'utilisation d'une instance de surveillance à distance avec ce scénario, consultez la section « Impact de la mise en miroir de bases de données sur une instance de surveillance à distance », plus loin dans cette rubrique.For information about using a remote monitoring instance with this scenario, see, "The Impact of Database Mirroring on a Remote Monitoring Instance," later in this topic.

Basculement d'une base de données principale vers une base de données miroirFailing over from the Principal to the Mirror database

La figure suivante illustre la manière dont la copie des journaux de transaction et la mise en miroir de bases de données interagissent lorsque la mise en miroir s'exécute en mode haute sécurité avec basculement automatique.The following figure shows how log shipping and database mirroring work together when mirroring is running in high-safety mode with automatic failover. Initialement, Server_A est à la fois le serveur du principal pour la mise en miroir et le serveur principal pour la copie des journaux de transaction.Initially, Server_A is both the principal server for mirroring and the primary server for log shipping. Server_B est le serveur miroir et est également configuré comme serveur principal actuellement inactif.Server_B is the mirror server and is also configured as a primary server, which is currently inactive. Server_C et Server_D sont des serveurs secondaires de copie des journaux de transaction.Server_C and Server_D are log shipping secondary servers. Pour optimiser la disponibilité de la session de copie des journaux de transaction, l'emplacement de sauvegarde se trouve dans un répertoire de partage situé sur un ordinateur hôte distinct.To maximize availability of the log shipping session, the backup location is on a share directory on a separate host computer.

Copie des journaux de transaction et mise en miroir de bases de donnéesLog shipping and database mirroring

Après un basculement de mise en miroir, le nom du serveur principal défini sur le serveur secondaire reste inchangé.After a mirroring failover, the primary server name defined on the secondary server is unchanged. ..

Impact de la mise en miroir de bases de données sur une instance de surveillance à distanceThe Impact of Database Mirroring on a Remote Monitoring Instance

Lorsque la copie des journaux de transaction utilise une instance de surveillance à distance, la combinaison de la session de copie des journaux de transaction et de la mise en miroir de bases de données affecte les informations contenues dans les tables de surveillance.When log shipping uses with a remote monitoring instance, combining the log shipping session and database mirroring affects the information in the monitor tables. Les informations relatives au serveur principal sont une combinaison de celles configurées au niveau du serveur principal et du moniteur configuré sur chaque serveur secondaire.The information about the primary is a combination of the one configured at the principal/primary and the monitor configured on each secondary.

Pour que la surveillance soit la plus transparente possible, lorsque vous utilisez un moniteur distant, il est recommandé de spécifier le nom du serveur principal d'origine lors de la configuration du serveur principal au niveau du serveur secondaire.To keep monitoring as seamless as possible, when you use a remote monitor, we recommend that you specify the original primary name when configuring the primary at the secondary. Cette approche facilite également la modification de la configuration de la copie des journaux de transaction à partir de l'Agent Microsoft SQL ServerSQL Server.This approach also facilitates changing the log shipping configuration from Microsoft SQL ServerSQL Server Agent. Pour plus d’informations sur la surveillance, consultez Surveiller la copie des journaux de transaction (Transact-SQL).For more information about monitoring, see Monitor Log Shipping (Transact-SQL).

Configuration simultanée de la mise en miroir et de la copie des journaux de transactionSetting Up Mirroring and Log Shipping Together

Pour configurer simultanément la mise en miroir de bases de données et la copie des journaux de transaction, les étapes suivantes sont requises :To set up database mirroring and log shipping together, the following steps are required:

  1. Restaurer les sauvegardes de la base de données principale/primaire à l'aide de NORECOVERY sur une autre instance du serveur afin de les utiliser ultérieurement comme base de données miroir de la mise en miroir de base de données pour la base de données principale/primaire.Restore backups of the principal/primary database with NORECOVERY onto another server instance to be later used as database mirroring mirror database for the principal/primary database. Pour plus d’informations, consultez Préparer une base de données miroir pour la mise en miroir (Transact-SQL).For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  2. Configurer la mise en miroir de bases de données.Set up database mirroring. 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 Configuration de la mise en miroir d’une base de données (SQL Server).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Setting Up Database Mirroring (SQL Server).

  3. Restaurer les sauvegardes de la base de données principale/primaire sur d'autres instances du serveur afin de les utiliser ultérieurement comme bases de données secondaires de copie des journaux de transaction pour la base de données primaire.Restore backups of the principal/primary database to other server instances to be later used as log shipping secondary databases for the primary database.

  4. Configurer la copie des journaux de transaction sur la base de données principale comme base de données primaire pour une ou plusieurs bases de données secondaires.Set up log shipping on the principal database as the primary database for one or more secondary databases.

    Il est conseillé de configurer un partage unique comme répertoire de sauvegarde (partage de sauvegarde).You should set up a single share as the backup directory (a backup share). Cela permet de garantir qu'après le changement de rôle entre le principal et le serveur miroir, les travaux de sauvegarde seront toujours écrits dans le même répertoire qu'auparavant.This ensures that after role switching between the principal and mirror servers, backup jobs continue to write to the same directory as before. Il est recommandé de vérifier que ce partage se situe sur un serveur physique différent des serveurs hébergeant les bases de données impliquées dans la mise en miroir et la copie des journaux de transaction.A best practice is to ensure that this share is located on a different physical server from the servers hosting the databases involved in mirroring and log shipping.

    Pour plus d’informations, consultez Configurer la copie des journaux de transaction (SQL Server).For more information, see Configure Log Shipping (SQL Server).

  5. Basculement manuel du principal au miroir.Manually failover from the principal to the mirror.

    Pour effectuer un basculement manuel :To perform a manual failover:

  6. Configurez la copie des journaux de transaction sur le nouveau principal (auparavant le miroir) comme la base de données primaire.Set up log shipping on the new principal (previously mirror) as the primary database.

    Important

    N'effectuez pas de configuration à partir d'un serveur secondaire.Do not perform any setup from a secondary.

    Vous devez utiliser le même partage de sauvegarde que celui utilisé à l'étape 4.You must use the same backup share that you used in step 4.

    L’interface Envoi des journaux de transactions de SQL Server Management StudioSQL Server Management Studio ne prend en charge qu’une base de données primaire par configuration de la copie des journaux de transaction.The Transaction Log Shipping interface in SQL Server Management StudioSQL Server Management Studio supports only one primary database per log shipping configuration. Par conséquent, vous devez utiliser des procédures stockées pour configurer le nouveau principal comme base de données primaire.Therefore, you must use stored procedures to set up the new principal as primary.

  7. Effectuez un autre basculement manuel pour revenir au principal d'origine.Perform another manual failover to fail back to the original principal.