Mise en miroir de base de données - Établir une session - Authentification WindowsDatabase Mirroring - Establish Session - Windows Authentication

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

Note

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server.This feature will be removed in a future version of 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é.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Utilisez à la place Groupes de disponibilité Always OnAlways On availability groups. Use Groupes de disponibilité Always OnAlways On availability groups instead.

Après avoir préparé la base de données miroir (voir 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.After the mirror database is prepared (see Prepare a Mirror Database for Mirroring (SQL Server)), you can establish a database mirroring session. Le principal, le serveur miroir et le serveur témoin doivent être trois instances distinctes, ayant chacune un système d'hébergement qui lui est propre.The principal, mirror, and witness server instances must be separate server instances, which should be on separate host systems.

Important

Il est recommandé de configurer la mise en miroir de la base de données pendant les heures creuses, car la configuration de la mise en miroir peut avoir une incidence sur les performances.We recommend that you configure database mirroring during off-peak hours because configuring mirroring can impact performance.

Note

Une instance de serveur peut participer à plusieurs sessions simultanées de mise en miroir de bases de données avec des partenaires identiques ou différents.A given server instance can participate in multiple concurrent database mirroring sessions with the same or different partners. Une instance de serveur peut être partenaire dans certaines sessions et témoin dans d'autres.A server instance can be a partner in some sessions and a witness in other sessions. L'instance du serveur miroir doit être en train d'exécuter la même édition de SQL ServerSQL Server comme instance de serveur principal.The mirror server instance must be running the same edition of SQL ServerSQL Server as the principal server instance. La mise en miroir de bases de données n’est pas disponible dans toutes les éditions de MicrosoftMicrosoft SQL ServerSQL Server.Database mirroring is not available in every edition of MicrosoftMicrosoft SQL ServerSQL Server. Pour obtenir la liste des fonctionnalités prises en charge par les éditions de SQL ServerSQL Server, consultez Fonctionnalités prise en charge par les éditions de SQL Server 2016.For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016. En outre, nous vous conseillons vivement d'exécuter les instances sur des systèmes comparables pouvant gérer des charges de travail identiques.Also, we strongly recommend that they run on comparable systems that can handle identical workloads.

Pour établir une session de mise en miroir de bases de donnéesTo establish a database mirroring session

  1. Création de la base de données miroirCreate the mirror database. Pour plus d’informations, consultez Préparer une base de données miroir pour la mise en miroir (SQL Server).For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  2. Configurez la sécurité sur chaque instance de serveur.Set up security on each server instance.

    Chaque instance de serveur participant à une session de mise en miroir de bases de données requiert un point de terminaison de mise en miroir de bases de données.Each server instance in a database mirroring session requires a database mirroring endpoint. Si le point de terminaison n'existe pas, vous devez le créer.If the endpoint does not exist, you must create it.

    Note

    Le type d'authentification utilisé pour la mise en miroir de la base 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.The form of authentication used for database mirroring by a server instance is a property of its database mirroring endpoint. Deux types de sécurité de transport sont disponibles pour la mise en miroir de bases de données : Authentification Windows ou authentification basée sur les certificats.Two types of transport security are available for database mirroring: Windows Authentication or certificate-based authentication. Pour plus d’informations, consultez Sécurité du transport de la mise en miroir de bases de données et des groupes de disponibilité Always On (SQL Server).For more information, see Transport Security for Database Mirroring and Always On Availability Groups (SQL Server).

    Sur chaque serveur partenaire, assurez-vous de la présence d'un point de terminaison pour la mise en miroir.On each partner server, ensure that an endpoint exists for database mirroring. Indépendamment du nombre de sessions de mise en miroir à prendre en charge, l'instance du serveur ne peut avoir qu'un seul point de terminaison de mise en miroir de bases de données.Regardless of the number of mirroring sessions to be supported, the server instance can have only one database mirroring endpoint. Si vous envisagez d’utiliser cette instance de serveur exclusivement pour les partenaires de sessions de mise en miroir, vous pouvez attribuer le rôle de partenaire au point de terminaison (ROLE=PARTNER).If you intend to use this server instance exclusively for partners in database mirroring sessions, you can assign the role of partner to the endpoint (ROLE=PARTNER). Si vous comptez aussi utiliser ce serveur comme témoin dans d'autres sessions, attribuez au point de terminaison le rôle ALL.If you intend also to use this server for the witness in other database mirroring sessions, assign the role of the endpoint as ALL.

    Pour exécuter une instruction SET PARTNER, le paramètre STATE des points de terminaison des deux partenaires doit avoir la valeur STARTED.To execute a SET PARTNER statement, the STATE of the endpoints of both partners must be set to STARTED.

    Pour savoir si une instance de serveur dispose d'un point de terminaison de mise en miroir de bases de données et pour connaître son rôle et son état (sur cette instance), utilisez l'instruction Transact-SQLTransact-SQL suivante :To learn whether a server instance has a database mirroring endpoint and to learn its role and state, on that instance, use the following Transact-SQLTransact-SQL statement:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Important

    Ne reconfigurez pas un point de terminaison de mise en miroir de base de données en cours d'utilisation.Do not reconfigure an in-use database mirroring endpoint. Si le point de terminaison de mise en miroir de base de données existe et est déjà utilisé, nous vous recommandons d'utiliser ce point de terminaison pour toute session établie sur l'instance du serveur.If a database mirroring endpoint exists and is already in use, we recommend that you use that endpoint for every session on the server instance. La suppression d'un point de terminaison en cours d'utilisation peut entraîner son redémarrage et perturber les connexions des sessions existantes, ce qui peut être perçu comme une erreur par les autres instances de serveurs.Dropping an in-use endpoint can cause the endpoint to restart, disrupting the connections of the existing sessions, which can appear to be an error to the other server instances. Cela est particulièrement important en mode haute sécurité avec basculement automatique, où la reconfiguration d'un point de terminaison sur un partenaire peut déclencher un basculement.This is particularly important in high-safety mode with automatic failover, in which reconfiguring the endpoint on a partner could cause a failover to occur. Par ailleurs, si un témoin a été défini pour une session, la suppression du point de terminaison de la mise en miroir de bases de données peut provoquer la perte du quorum par le serveur principal de cette session ; si cela se produit, la base de données est mise en mode hors connexion et ses utilisateurs sont déconnectés.Also, if a witness has been set for a session, dropping the database mirroring endpoint can cause the principal server of that session to lose quorum; if that occurs, the database is taken offline and its users are disconnected. Pour plus d’informations, consultez Quorum : effets d’un témoin sur la disponibilité de la base de données (mise en miroir de bases de données).For more information, see Quorum: How a Witness Affects Database Availability (Database Mirroring).

    Si l’un ou l’autre partenaire 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).If either partner lacks an endpoint, see Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL).

  3. Si des instances de serveurs s'exécutent sous différents comptes d'utilisateurs de domaine, chaque instance requiert une connexion à la base de données master de toutes les autres.If server instances are running under different domain user accounts, each requires a login in the master database of the others. Si la connexion n'existe pas, vous devez la créer.If the login does not exist, you must create it. Pour plus d’informations, consultez Autoriser l’accès sur le réseau à un point de terminaison de mise en miroir de bases de données au moyen de l’authentification Windows (SQL Server).For more information, see Allow Network Access to a Database Mirroring Endpoint Using Windows Authentication (SQL Server).

  4. Pour définir le serveur principal comme partenaire sur la base de données miroir, connectez-vous au serveur miroir et exécutez l'instruction suivante :To set the principal server as partner on the mirror database, connect to the mirror server, and issue the following statement:

    ALTER DATABASE <nom_base_de_données> SET PARTNER =<adresse_réseau_serveur>ALTER DATABASE <database_name> SET PARTNER =<server_network_address>

    <nom_base_de_données> correspond au nom de la base de données à mettre en miroir (ce nom est identique sur les deux partenaires) et <adresse_réseau_serveur> est l’adresse réseau du serveur principal.where <database_name> is the name of the database to be mirrored (this name is the same on both partners), and <server_network_address> is the server network address of the principal server.

    La syntaxe pour une adresse réseau de serveur est la suivante :The syntax for a server network address is as follows:

    TCP://<adresse-système>:<port>TCP://<system-address>:<port>

    où <adresse-système> est une chaîne qui identifie de façon non ambiguë l’ordinateur de destination et <port> est le numéro de port utilisé par le point de terminaison de la mise en miroir de l’instance de serveur partenaire.where <system-address> is a string that unambiguously identifies the destination computer system, and <port> is the port number used by the mirroring endpoint of the partner server instance. Pour plus d’informations, consultez Spécifier une adresse réseau de serveur (mise en miroir de bases de données).For more information, see Specify a Server Network Address (Database Mirroring).

    Par exemple, sur l'instance de serveur miroir, l'instruction ALTER DATABASE suivante définit le partenaire comme instance de serveur principal d'origine.For example, on the mirror server instance, the following ALTER DATABASE statement sets the partner as the original principal server instance. Le nom de la base de données est AdventureWorks, l'adresse système est DBSERVER1 (nom du système du partenaire) et le port utilisé par le point de terminaison de la mise en miroir de la base de données du partenaire est 7022 :The database name is AdventureWorks, the system address is DBSERVER1—the name of the partner's system—and the port used by the partner's database mirroring endpoint is 7022:

    ALTER DATABASE AdventureWorks   
       SET PARTNER = 'TCP://DBSERVER1:7022'  
    

    Cette instruction prépare le serveur miroir à former une session lorsqu'il sera contacté par le serveur principal.This statement prepares the mirror server to form a session when it is contacted by the principal server.

  5. Pour définir le serveur miroir comme partenaire sur la base de données principale, connectez-vous au serveur principal et exécutez l'instruction suivante :To set the mirror server as partner on the principal database, connect to the principal server, and issue the following statement:

    ALTER DATABASE <nom_base_de_données> SET PARTNER =<adresse_réseau_serveur>ALTER DATABASE <database_name> SET PARTNER =<server_network_address>

    Pour plus d'informations, consultez l'étape 4.For more information, see step 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.For example, on the principal server instance, the following ALTER DATABASE statement sets the partner as the original mirror server instance. Le nom de la base de données est AdventureWorks, l'adresse système est DBSERVER2 – nom du système du partenaire, et le port utilisé par le point de terminaison de la mise en miroir de la base de données du partenaire est 7025 :The database name is AdventureWorks, the system address is DBSERVER2—the name of the partner's system—and the port used by the partner's database mirroring endpoint is 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 des bases de données.Entering this statement on the principal server begins the database mirroring session.

  6. Par défaut, les sessions sont définies sur une sécurité des transactions totale (valeur de SAFETY définie sur FULL), la session est donc démarrée en mode haute sécurité sans basculement automatique.By default a session is set to full transaction safety (SAFETY is set to FULL), which starts the session in synchronous, high-safety mode without automatic failover. Pour reconfigurer la session pour qu'elle s'exécute en mode haute sécurité avec basculement automatique ou en mode haute performance asynchrone, procédez comme suit :You can reconfigure the session to run in high-safety mode with automatic failover or in asynchronous, high-performance mode, as follows:

ExempleExample

Note

L'exemple suivant établit une session de mise en miroir de base de données entre partenaires d'une base de données miroir existante.The following example establishes a database mirroring session between partners for an existing mirror database. 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).For information on creating a mirror database, see Prepare a Mirror Database for Mirroring (SQL Server)=.

L'exemple montre les étapes de base à suivre pour créer une session de mise en miroir de bases de données sans témoin.The example shows the basic steps for creating a database mirroring session without a witness. Les deux partenaires sont les instances de serveur par défaut présentes sur deux systèmes informatiques (PARTNERHOST1 et PARTNERHOST5).The two partners are the default server instances on two computer systems (PARTNERHOST1 and PARTNERHOST5). Ces deux instances partenaires exécutent le même compte d'utilisateur de domaine Windows (MYDOMAIN\dbousername).The two partner instances run the same Windows domain user account (MYDOMAIN\dbousername).

  1. 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 par le biais du port 7022 :On the principal server instance (default instance on PARTNERHOST1), create an endpoint that supports all roles using 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.  
    
  2. 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 par le biais du port 7022 :On the mirror server instance (default instance on PARTNERHOST5), create an endpoint that supports all roles using 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.  
    
  3. Sur l'instance de serveur principal (sur PARTNERHOST1), procédez à la sauvegarde de la base de données :On the principal server instance (on PARTNERHOST1), back up the database:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdvWorks_dbmirror.bak'   
        WITH FORMAT  
    GO  
    
  4. Sur l'instance de serveur miroir (sur PARTNERHOST5), restaurez la base de données :On the mirror server instance (on PARTNERHOST5), restore the database:

    RESTORE DATABASE AdventureWorks   
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak'   
        WITH NORECOVERY  
    GO  
    
  5. Après avoir créé la sauvegarde complète de base de données, vous devez créer une sauvegarde du journal sur la base de données principale.After you create the full database 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 de base de données antérieure :For example, the following Transact-SQLTransact-SQL statement backs up the log to the same file used by the preceding database 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 suivante 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. Sur l'instance de serveur miroir, définissez l'instance de serveur sur PARTNERHOST1 comme étant le partenaire (ce qui en fait le serveur principal initial) :On the mirror server instance, set the server instance on PARTNERHOST1 as the partner (making it the initial principal server):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1:7022'  
    GO  
    

    Important

    Une session de mise en miroir de bases de données s'exécute par défaut en mode synchrone, ce qui dépend de la sécurité des transactions totale (SAFETY défini sur FULL).default, a database mirroring session runs in synchronous mode, which depends on having full transaction safety (SAFETY is set to FULL). Pour qu'une session s'exécute en mode hautes performances asynchrone, définissez SAFETY sur OFF.To cause a session to run in asynchronous, high-performance mode, set SAFETY to OFF. Pour en savoir plus, voir Database Mirroring Operating Modes.For more information, see Database Mirroring Operating Modes.

  8. Dans l'instance de serveur principal, définissez l'instance de serveur sur PARTNERHOST5 comme étant le partenaire (ce qui en fait le serveur miroir initial) :On the principal server instance, set the server instance on PARTNERHOST5 as the partner (making it the initial mirror server):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5:7022'  
    GO  
    
  9. Si vous avez l'intention d'utiliser le mode haute sécurité avec basculement automatique, vous pouvez éventuellement définir l'instance de serveur témoin.Optionally, if you intend to use high-safety mode with automatic failover, set up the witness server instance. 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).For more information, see Add a Database Mirroring Witness Using Windows Authentication (Transact-SQL).

Note

Pour voir un exemple illustrant la configuration de la sécurité, la préparation de la base de données miroir, la définition 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 showing security setup, preparing the mirror database, setting up the partners, and adding a witness, see Setting Up Database Mirroring (SQL Server).

Voir aussiSee Also

Configuration de la mise en miroir d’une base de données (SQL Server) Setting Up Database Mirroring (SQL Server)
ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Autoriser l’accès sur le réseau à un point de terminaison de mise en miroir de bases de données au moyen de l’authentification Windows (SQL Server) Allow Network Access to a Database Mirroring Endpoint Using Windows Authentication (SQL Server)
Préparer une base de données miroir pour la mise en miroir (SQL Server) Prepare a Mirror Database for Mirroring (SQL Server)
Créer un point de terminaison de mise en miroir de bases de données pour l’authentification Windows (Transact-SQL) Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL)
Mise en miroir de bases de données et copie des journaux de transaction (SQL Server) Database Mirroring and Log Shipping (SQL Server)
Mise en miroir de bases de données (SQL Server) Database Mirroring (SQL Server)
Mise en miroir de bases de données et réplication (SQL Server) Database Mirroring and Replication (SQL Server)
Configuration de la mise en miroir d’une base de données (SQL Server) Setting Up Database Mirroring (SQL Server)
Spécifier une adresse réseau de serveur (mise en miroir de bases de données) Specify a Server Network Address (Database Mirroring)
Modes de fonctionnement de la mise en miroir de bases de donnéesDatabase Mirroring Operating Modes