Partager via


Exemple de script pour la configuration de la mise en miroir SQL Server (SharePoint Foundation 2010)

 

S’applique à : SharePoint Foundation 2010

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

Cet article propose une série d’exemples de script que vous pouvez utiliser pour configurer la mise en miroir Microsoft SQL Server pour un environnement de test Microsoft SharePoint Foundation 2010. Il est recommandé de confier la mise en miroir pour un environnement de production à un administrateur de base de données SQL Server.

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

Dans cet article :

Les étapes décrites ci-dessous 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’applications de service

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

Chaque étape indique le serveur sur lequel elle doit être exécutée. Utilisez Transact-SQL pour envoyer ces commandes à SQL Server. Les informations d’espaces réservés sont indiquées par des crochets angulaires (<>) ; remplacez ces espaces réservés par des informations spécifiques à 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 cette 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 cette opération pour toutes les bases de données.

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

  6. Sur le serveur principal, créez un nom d’accès et un utilisateur pour le serveur miroir, associez le certificat à l’utilisateur et accordez les 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 d’une méthode de copie sécurisée, copiez le fichier de certificat sauvegardé (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 cette 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 nom d’accès et un utilisateur pour le serveur principal, associez le certificat à l’utilisateur et accordez les 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 nom d’accès et un utilisateur pour le serveur miroir, associez le certificat à l’utilisateur et accordez les 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 partenaires de mise en miroir

  1. Sur le serveur principal, configurez le partenariat de mise en miroir. Cet exemple utilise la base de données de configuration. Répétez cette 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 mise en miroir. Cet exemple utilise la base de données de configuration. Répétez cette 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 exécutée. Utilisez Transact-SQL pour envoyer ces commandes à SQL Server. Les informations d’espaces réservés sont indiquées par des crochets angulaires (<>) ; remplacez ces espaces réservés par des informations spécifiques à 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 d’une méthode de copie sécurisée, copiez le fichier de certificat sauvegardé (C:\WITNESS_HOSTC_cert.cer, par exemple) sur le serveur principal et le serveur miroir.

  4. Sur le serveur témoin, créez des nom d’accès et des utilisateurs pour les serveurs principal et miroir, associez les certificats aux utilisateurs et accordez les 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 nom d’accès et un utilisateur pour le serveur témoin, associez le certificat à l’utilisateur et accordez les autorisations de connexion pour le partenariat. Répétez cette procédure 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 cette 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 sur le serveur miroir

Lorsque vous configurez une base de données mise en miroir, les noms d’accès et les autorisations SQL Server pour la base de données appelée à être utilisée avec une batterie de serveurs SharePoint ne sont pas automatiquement configurés dans les bases de données master et msdb du serveur miroir. De ce fait, vous devez configurer les autorisations pour les noms d’accès requis.

Nous vous recommandons de transférer vos noms d’accès et vos autorisations du serveur principal vers le serveur miroir en exécutant un script. Le script que nous vous recommandons d’utiliser est disponible dans l’article n° 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).