Share via


Exemple de script de configuration de la mise en miroir de bases de données SQL Server (SharePoint Server 2010)

 

S’applique à : SharePoint Foundation 2010, SharePoint Server 2010

Dernière rubrique modifiée : 2016-11-30

Cet article contient une série d’exemples de scripts qui vous permettent de configurer la mise en miroir Microsoft SQL Server pour un environnement Microsoft SharePoint Server 2010 de test. Il est recommandé de confier à un administrateur de base de données SQL Server la configuration de la mise en miroir pour un environnement de production.

Pour configurer la mise en miroir de bases de données avec SharePoint Server 2010, vous devez travailler sur chaque base de données à mettre en miroir.

Dans cet article :

Les étapes indiquées dans la section ci-après s’appliquent à la topologie de batterie de serveurs suivante :

  • Un ou plusieurs serveurs Web frontaux

  • Trois serveurs exécutant SQL Server 2008: un serveur principal, un serveur miroir et un serveur témoin

  • Une base de données de configuration

  • Plusieurs bases de données de contenu

  • Une ou plusieurs bases de données d’application de service

Configurer la mise en miroir de bases de données avec des certificats et une récupération complète

Chaque étape indique le serveur sur lequel elle doit être réalisée. Utilisez Transact-SQL pour envoyer ces commandes à SQL Server. Les informations des espaces réservés sont indiquées entre des crochets pointus (<>) ; remplacez ces informations par les informations propres à votre déploiement.

Pour configurer le serveur principal pour les connexions sortantes

  1. Sur le serveur principal, créez un certificat et ouvrez un port pour la mise en miroir.

    --On the master database, create the database master key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<test1234->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <MASTER_HostA_cert> 
       WITH SUBJECT = '<Master_HostA certificate>';
    GO
    --Create a mirroring endpoint for server instance by using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <MASTER_HostA_cert>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sur le serveur principal, sauvegardez le certificat.

    --Back up the HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. Sur le serveur principal, sauvegardez la base de données. Cet exemple utilise la base de données de configuration. Répétez l’opération pour toutes les bases de données.

    USE master;
    --Ensure that SharePoint_Config uses the full recovery model.
    ALTER DATABASE SharePoint_Config
       SET RECOVERY FULL;
    GO
    USE SharePoint_Config
    BACKUP DATABASE SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config.bak>' 
        WITH FORMAT
    GO
    BACKUP Log SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH FORMAT
    GO
    
  4. Copiez le fichier de sauvegarde sur le serveur miroir. Répétez l’opération pour toutes les bases de données.

  5. À l’aide de la méthode de copie sécurisée de votre choix, copiez le fichier de certificat de sauvegarde (C:\HOST_HostA_cert.cer, par exemple) sur le serveur miroir.

  6. Sur le serveur principal, créez un compte de connexion et un utilisateur pour le serveur miroir, associez le certificat à l’utilisateur et accordez au compte de connexion des autorisations de connexion pour le partenariat.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Pour configurer le serveur miroir pour les connexions sortantes

  1. Sur le serveur miroir, créez un certificat et ouvrez un port pour la mise en miroir.

    --On the master database, create the database master key, if needed.
    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234-test>';
    GO
    -- Make a certificate on the HOST_B server instance.
    CREATE CERTIFICATE <HOST_HostB>
       WITH SUBJECT = '<HOST_HostB certificate for database mirroring>';
    GO
    --Create a mirroring endpoint for the server instance on HOST_B.
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <HOST_HostB>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sur le serveur miroir, sauvegardez le certificat.

    --Back up the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. À l’aide de la méthode de copie sécurisée de votre choix, copiez le fichier de certificat de sauvegarde (C:\HOST_HostB_cert.cer, par exemple) sur le serveur principal.

  4. Sur le serveur miroir, restaurez la base de données à partir des fichiers de sauvegarde. Cet exemple utilise la base de données de configuration. Répétez l’opération pour toutes les bases de données.

    RESTORE DATABASE SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config.bak>' 
        WITH NORECOVERY
    GO
    RESTORE log SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH NORECOVERY
    GO
    

Pour configurer le serveur miroir pour les connexions entrantes

  1. Sur le serveur miroir, créez un compte de connexion et un utilisateur pour le serveur principal, associez le certificat à l’utilisateur et accordez au compte de connexion des autorisations de connexion pour le partenariat.

    --Create a login on HOST_B for HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    

Pour configurer le serveur principal pour les connexions entrantes

  1. Sur le serveur principal, créez un compte de connexion et un utilisateur pour le serveur miroir, associez le certificat à l’utilisateur et accordez au compte de connexion des autorisations de connexion pour le partenariat.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Pour configurer les serveurs partenaires de la mise en miroir

  1. Sur le serveur principal, configurez le partenariat de la mise en miroir. Cet exemple utilise la base de données de configuration. Répétez l’opération pour toutes les bases de données.

    --At HOST_A, set the server instance on HOST_B as a partner (mirror server).
    ALTER DATABASE SharePoint_Config
        SET PARTNER = '<TCP://databasemirror.adatum.com:5024>';
    GO
    
  2. Sur le serveur miroir, configurez le partenariat de la mise en miroir. Cet exemple utilise la base de données de configuration. Répétez l’opération pour toutes les bases de données.

    --At HOST_B, set the server instance on HOST_A as a partner (principal server):
    ALTER DATABASE SharePoint_Config 
        SET PARTNER = '<TCP://databasemaster.adatum.com:5024>';
    GO
    

Configurer un serveur témoin

Chaque étape indique le serveur sur lequel elle doit être réalisée. Utilisez Transact-SQL pour envoyer ces commandes à SQL Server. Les informations des espaces réservés sont indiquées entre des crochets pointus (<>) ; remplacez ces informations par les informations propres à votre déploiement.

  1. Sur le serveur témoin, configurez le certificat et ouvrez le port.

    --On the master database, create the database master key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234test->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <WITNESS_HostC_cert> 
       WITH SUBJECT = '<Witness_HostC certificate>';
    GO
    --Create a mirroring endpoint for server instance by using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <WITNESS_HostC_cert
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sur le serveur témoin, sauvegardez le certificat.

    --Back up the HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. À l’aide de la méthode de copie sécurisée de votre choix, copiez le fichier de certificat de sauvegarde (C:\WITNESS_HOSTC_cert.cer, par exemple) sur le serveur principal et sur le serveur miroir.

  4. Sur le serveur témoin, créez des comptes de connexion et des utilisateurs pour les serveurs principal et miroir, associez les certificats aux utilisateurs et accordez aux comptes de connexion des autorisations de connexion pour le partenariat.

    --Create a login on witness HOST_C for principal HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    --Create a login for the mirror Host_B
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    
  5. Sur le serveur principal, créez un compte de connexion et un utilisateur pour le serveur témoin, associez le certificat à l’utilisateur et accordez au compte de connexion des autorisations de connexion pour le partenariat. Répétez l’opération pour le serveur miroir.

    --Create a login on master HostA for witness HostC
    USE master;
    CREATE LOGIN <WITNESS_HostC_login> WITH PASSWORD = '<1234test->';
    GO
    --Create a user for that login.
    CREATE USER <WITNESS_HostC_user> FOR LOGIN <WITNESS_HostC_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <WITNESS_HostC_cert>
       AUTHORIZATION <WITNESS_HostC_user>
       FROM FILE = '<c:\WITNESS_HostC_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<WITNESS_HostC_login>];
    GO
    
  6. Sur le serveur principal, attachez le serveur témoin. Cet exemple utilise la base de données de configuration. Répétez l’opération pour toutes les bases de données.

    --Set up the witness server
    ALTER DATABASE SharePoint_Config
        SET WITNESS = 
        '<TCP://databasewitness.adatum.com:5024>'
    GO
    

Transférer les autorisations vers le serveur miroir

Lorsque vous configurez une base de données mise en miroir, les autorisations et les comptes de connexion SQL Server pour la base de données qui sera utilisée avec une batterie de serveurs SharePoint ne sont pas automatiquement configurés dans les bases de données master et msdb sur le serveur miroir. À la place, vous devez configurer les autorisations pour les comptes de connexion requis.

Il est recommandé de transférer vos comptes de connexion et vos autorisations depuis le serveur principal vers le serveur miroir en exécutant un script. Le script dont l’utilisation est recommandée est disponible dans l’article 918992 de la Base de connaissances, Comment faire pour transférer des noms d’accès et des mots de passe entre instances de SQL Server 2005 (https://go.microsoft.com/fwlink/?linkid=122053&clcid=0x40C).

Suppression de la mise en miroir d’un serveur

Pour supprimer la mise en miroir d’un serveur, voir Procédure : supprimer une mise en miroir de bases de données (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=185070&clcid=0x40C).