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
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
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
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
Copiez le fichier de sauvegarde sur le serveur miroir. Répétez cette opération pour toutes les bases de données.
À 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.
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
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
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
À 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.
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
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
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
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
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.
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
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
À 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.
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
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
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).