Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez Always On groupes de disponibilité à la place.
Une fois la base de données miroir préparée (consultez Préparer une base de données miroir pour la mise en miroir (SQL Server)), vous pouvez établir une session de mise en miroir de bases de données. Les instances de serveur principal, miroir et serveur témoin doivent être des instances de serveur distinctes, qui doivent se trouver sur des systèmes hôtes distincts.
Important
Nous vous recommandons de configurer la mise en miroir de bases de données pendant les heures creuses, car la configuration de la mise en miroir peut avoir un impact sur les performances.
Remarque
Une instance de serveur donnée peut participer à plusieurs sessions de mise en miroir de bases de données simultanées avec les mêmes partenaires ou différents. Une instance de serveur peut être un partenaire dans certaines sessions et un témoin dans d’autres sessions. L’instance de serveur miroir doit exécuter la même édition de SQL Server que l’instance de serveur principal. La mise en miroir de bases de données n’est pas disponible dans chaque édition de MicrosoftSQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL Server, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2014. En outre, nous vous recommandons vivement de les exécuter sur des systèmes comparables qui peuvent gérer des charges de travail identiques.
Pour établir une session de mise en miroir de bases de données
Créez la base de données miroir. Pour plus d’informations, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server).
Configurez la sécurité sur chaque instance de serveur.
Chaque instance de serveur d’une session de mise en miroir de bases de données nécessite un point de terminaison de mise en miroir de bases de données. Si le point de terminaison n’existe pas, vous devez le créer.
Remarque
La forme d’authentification utilisée pour la mise en miroir de bases de données par une instance de serveur est une propriété de son point de terminaison de mise en miroir de bases de données. Deux types de sécurité de transport sont disponibles pour la mise en miroir de bases de données : l’authentification Windows ou l’authentification basée sur des certificats. Pour plus d’informations, consultez Sécurité du transport pour la mise en miroir de bases de données et les groupes de disponibilité AlwaysOn (SQL Server).
Sur chaque serveur partenaire, vérifiez qu’un point de terminaison existe pour la mise en miroir de bases de données. Quel que soit le nombre de sessions de mise en miroir à prendre en charge, l’instance de serveur ne peut avoir qu’un seul point de terminaison de mise en miroir de bases de données. Si vous envisagez d’utiliser cette instance de serveur exclusivement pour les partenaires dans les sessions de mise en miroir de bases de données, vous pouvez attribuer le rôle de partenaire au point de terminaison (ROLE**=**PARTNER). Si vous envisagez également d’utiliser ce serveur pour le témoin dans d’autres sessions de mise en miroir de bases de données, attribuez le rôle du point de terminaison comme ALL.
Pour exécuter une instruction SET PARTNER, l’ÉTAT des points de terminaison des deux partenaires doit être défini sur STARTED.
Pour savoir si une instance de serveur a un point de terminaison de mise en miroir de bases de données et pour découvrir son rôle et son état, sur cette instance, utilisez l’instruction Transact-SQL suivante :
SELECT role_desc, state_desc FROM sys.database_mirroring_endpointsImportant
Ne reconfigurez pas un point de terminaison de mise en miroir de bases de données en cours d'utilisation. Si un point de terminaison de mise en miroir de bases de données existe et est déjà utilisé, nous vous recommandons d’utiliser ce point de terminaison pour chaque session sur l’instance de serveur. La suppression d’un point de terminaison in-use peut entraîner le redémarrage du point de terminaison, ce qui interrompt les connexions des sessions existantes, ce qui peut sembler une erreur pour les autres instances de serveur. Cela est particulièrement important en mode haute sécurité avec basculement automatique, dans lequel la reconfiguration du point de terminaison sur un partenaire peut entraîner un basculement. En outre, si un témoin a été défini pour une session, la suppression du point de terminaison de mise en miroir de bases de données peut entraîner la perte du quorum par le serveur principal de cette session ; si cela se produit, la base de données est mise hors connexion et ses utilisateurs sont déconnectés. Pour plus d’informations, consultez Quorum : Comment un témoin affecte la disponibilité de la base de données (mise en miroir de bases de données).
Si l’un des partenaires ne dispose pas d’un point de terminaison, consultez Créer un point de terminaison de mise en miroir de bases de données pour l’authentification Windows (Transact-SQL).
Si les instances de serveur s’exécutent sous différents comptes d’utilisateur de domaine, chacune nécessite une connexion dans la base de données master des autres. Si la connexion n’existe pas, vous devez la créer. Pour plus d’informations, consultez Autoriser l’accès réseau à un point de terminaison de mise en miroir de bases de données à l’aide de l’authentification Windows (SQL Server).
Pour définir le serveur principal comme partenaire sur la base de données miroir, connectez-vous au serveur miroir et émettez l’instruction suivante :
ALTER DATABASE <database_name> SET PARTNER =<server_network_address>
où <database_name> est le nom de la base de données à mettre en miroir (ce nom est le même sur les deux partenaires) et <server_network_address> est l’adresse réseau du serveur principal.
La syntaxe d’une adresse réseau de serveur est la suivante :
TCP ://<system-address> :<port>
où <l’adresse système> est une chaîne qui identifie sans ambiguïté le système informatique de destination et <port> est le numéro de port utilisé par le point de terminaison de mise en miroir de l’instance de serveur partenaire. Pour plus d’informations, consultez Spécifier une adresse réseau de serveur (Mise en miroir de bases de données).
Par exemple, sur l’instance de serveur miroir, l’instruction ALTER DATABASE suivante définit le partenaire comme instance de serveur principal d’origine. Le nom de la base de données est AdventureWorks, l’adresse système est DBSERVER1-le nom du système du partenaire et le port utilisé par le point de terminaison de mise en miroir de bases de données du partenaire est 7022 :
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1:7022'Cette instruction prépare le serveur miroir à former une session lorsqu’elle est contactée par le serveur principal.
Pour définir le serveur miroir en tant que partenaire sur la base de données principale, connectez-vous au serveur principal et émettez l’instruction suivante :
ALTER DATABASE <database_name> SET PARTNER =<server_network_address>
Pour plus d’informations, consultez l’étape 4.
Par exemple, sur l’instance de serveur principal, l’instruction ALTER DATABASE suivante définit le partenaire comme instance de serveur miroir d’origine. Le nom de la base de données est AdventureWorks, l’adresse système est DBSERVER2-le nom du système du partenaire et le port utilisé par le point de terminaison de mise en miroir de bases de données du partenaire est 7025 :
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'La saisie de cette instruction sur le serveur principal démarre la session de mise en miroir de bases de données.
Par défaut, une session est définie sur la sécurité complète des transactions (SAFETY est définie sur FULL), ce qui démarre la session en mode synchrone et haute sécurité sans basculement automatique. Vous pouvez reconfigurer la session pour qu’elle s’exécute en mode haute sécurité avec basculement automatique ou en mode asynchrone hautes performances, comme suit :
Mode haute sécurité avec basculement automatique
Si vous souhaitez qu’une session en mode haute sécurité prend en charge le basculement automatique, ajoutez une instance de serveur témoin. Pour plus d’informations, consultez Ajouter un témoin de mise en miroir de bases de données à l’aide de l’authentification Windows (Transact-SQL).
Mode hautes performances
Sinon, si vous ne souhaitez pas le basculement automatique et que vous préférez mettre en évidence les performances par rapport à la disponibilité, désactivez la sécurité des transactions. Pour plus d’informations, consultez Modifier la sécurité des transactions dans une session de mise en miroir de bases de données (Transact-SQL).
Remarque
En mode hautes performances, WITNESS doit être défini sur OFF. Pour plus d’informations, consultez Quorum : Comment un témoin affecte la disponibilité de la base de données (mise en miroir de bases de données).
Exemple :
Remarque
L’exemple suivant établit une session de mise en miroir de bases de données entre les partenaires pour une base de données miroir existante. Pour plus d’informations sur la création d’une base de données miroir, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server)=.
L’exemple montre les étapes de base de la création d’une session de mise en miroir de bases de données sans témoin. Les deux partenaires sont les instances de serveur par défaut sur deux systèmes informatiques (PARTNERHOST1 et PARTNERHOST5). Les deux instances partenaires exécutent le même compte d’utilisateur de domaine Windows (MYDOMAIN\dbousername).
Sur l’instance de serveur principal (instance par défaut sur PARTNERHOST1), créez un point de terminaison qui prend en charge tous les rôles à l’aide du port 7022 :
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.Remarque
Pour obtenir un exemple de configuration d’une connexion, consultez Autoriser l’accès réseau à un point de terminaison de mise en miroir de bases de données à l’aide de l’authentification Windows (SQL Server).
Sur l’instance de serveur miroir (instance par défaut sur PARTNERHOST5), créez un point de terminaison qui prend en charge tous les rôles à l’aide du port 7022 :
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.Sur l’instance de serveur principal (sur PARTNERHOST1), sauvegardez la base de données :
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdvWorks_dbmirror.bak' WITH FORMAT GOSur l’instance de serveur miroir (on
PARTNERHOST5), restaurez la base de données :RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\AdvWorks_dbmirror.bak' WITH NORECOVERY GOAprès avoir créé la sauvegarde complète de la base de données, vous devez créer une sauvegarde de journal sur la base de données principale. Par exemple, l’instruction Transact-SQL suivante sauvegarde le journal dans le même fichier que celui utilisé par la sauvegarde de base de données précédente :
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.bak' GOAvant de pouvoir commencer la mise en miroir, vous devez appliquer la sauvegarde de journal requise (et toutes les sauvegardes de journal suivantes).
Par exemple, l’instruction Transact-SQL suivante restaure le premier fichier journal à partir du répertoire C:\AdventureWorks.bak :
RESTORE LOG AdventureWorks FROM DISK = 'C:\ AdventureWorks.bak' WITH FILE=1, NORECOVERY GOSur l’instance de serveur miroir, définissez l’instance de serveur sur PARTNERHOST1 en tant que partenaire (ce qui en fait le serveur principal initial) :
USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST1:7022' GOImportant
par défaut, une session de mise en miroir de bases de données s’exécute en mode synchrone, qui dépend de la sécurité totale des transactions (SAFETY a la valeur FULL). Pour que une session s’exécute en mode asynchrone et hautes performances, définissez SAFETY sur OFF. Pour plus d’informations, consultez Modes d’exploitation de mise en miroir de bases de données.
Sur l’instance de serveur principal, définissez l’instance de serveur comme
PARTNERHOST5partenaire (ce qui en fait le serveur miroir initial) :USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST5:7022' GOSi vous envisagez d’utiliser le mode haute sécurité avec basculement automatique, configurez l’instance de serveur témoin. Pour plus d’informations, consultez Ajouter un témoin de mise en miroir de bases de données à l’aide de l’authentification Windows (Transact-SQL).
Remarque
Pour obtenir un exemple complet montrant la configuration de la sécurité, la préparation de la base de données miroir, la configuration des partenaires et l’ajout d’un témoin, consultez Configuration de la mise en miroir de bases de données (SQL Server).
Voir aussi
Configuration de la mise en miroir de bases de données (SQL Server)
MODIFIER LA BASE DE DONNÉES (Transact-SQL)
Autoriser l’accès réseau à un point de terminaison de mise en miroir de bases de données à l’aide de l’authentification Windows (SQL Server)
Préparer une base de données miroir pour la mise en miroir (SQL Server)
Créer un point de terminaison de mise en miroir de bases de données pour l'authentification Windows (Transact-SQL)
Mise en miroir de bases de données et copie des journaux de transaction (SQL Server)
Mise en miroir de bases de données (SQL Server)
Mise en miroir de bases de données et réplication (SQL Server)
Configuration de la mise en miroir de bases de données (SQL Server)
Spécifier une adresse réseau de serveur (mise en miroir de bases de données)
Modes de fonctionnement de la mise en miroir de bases de données