Partager via


Établir une session de mise en miroir de bases de données à l’aide de l’authentification Windows (Transact-SQL)

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

  1. 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).

  2. 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_endpoints  
    

    Important

    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).

  3. 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).

  4. 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>

    <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.

  5. 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.

  6. 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 :

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).

  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 à 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.  
    
  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 à 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.  
    
  3. 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  
    GO  
    
  4. Sur l’instance de serveur miroir (on PARTNERHOST5), restaurez la base de données :

    RESTORE DATABASE AdventureWorks   
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak'   
        WITH NORECOVERY  
    GO  
    
  5. Aprè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'   
    GO  
    
  6. Avant 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  
    GO  
    
  7. Sur 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'  
    GO  
    

    Important

    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.

  8. Sur l’instance de serveur principal, définissez l’instance de serveur comme PARTNERHOST5 partenaire (ce qui en fait le serveur miroir initial) :

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5:7022'  
    GO  
    
  9. Si 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