Comment modifier le serveur de base de données dans une batterie de serveurs SharePoint

Synthèse

Dans une batterie de serveurs SharePoint, vous de devez peut-être migrer des bases de données d’un serveur qui SQL Server un autre. Si vous n’utilisez pas d’alias client SQL Server pendant l’installation de SharePoint ou si vous devez renommer le serveur de base de données pour diverses raisons (par exemple, après une violation de la sécurité), suivez les étapes de cet article pour modifier le serveur de base de données.

Grâce à une planification et une haute disponibilité, vous pouvez effectuer ces étapes dans un environnement de production sans avoir à arrêter tous les services.

Modifier le serveur de base de données

Cet article suppose que toutes les bases de données SharePoint sont hébergées sur SQL Server instance unique. Ajustez les paramètres dans ces étapes si nécessaire pour votre environnement.

Avant de commencer, créez une sauvegarde de la base de données de configuration pour la résolution des problèmes au cas où la batterie de serveurs SharePoint devient inaccessible lorsque vous effectuez les étapes.

Important

Avant de commencer, assurez-vous de bien comprendre ce plan d’action. Si la batterie de serveurs SharePoint devient complètement inaccessible ou si la base de données de configuration est endommagée, vous devez restaurer la fonctionnalité à partir de la dernière sauvegarde de batterie de serveurs.

Étape 1 : Créer un alias SQL sur tous les serveurs SharePoint de la batterie de serveurs

Pour cela, procédez comme suit :

  1. Veillez à utiliser un compte d’utilisateur membre des informations suivantes :
    • du groupe Administrateurs ;
    • Le rôle de base de données fixe db_owner.
  2. Démarrez l SQL Server un utilitaire de réseau client (cliconfg.exe). Cet utilitaire se trouve généralement dans le dossier C:\Windows\SysWOW64 (32 bits) ou C:\Windows\System32 (64 bits).
  3. Sous l’onglet Général, vérifiez que TCP/IP est activé.
  4. Sous l’onglet Alias, cliquez sur Ajouter.
    Remarque La fenêtre Ajouter une configuration de bibliothèque réseau s’affiche.
  5. Dans la zone Alias du serveur, entrez le nom du nouvel alias SQL Server serveur.
  6. Dans la zone Bibliothèques réseau, cliquez sur TCP/IP.
  7. Dans la zone Nom du serveur dans la zone Paramètres de connexion, entrez le nom de domaine complet du nouveau serveur qui exécute SQL Server, puis cliquez sur OK.
  8. Répétez les étapes 2 à 7 sur tous les serveurs SharePoint qui se connectent à l’instance de SQL Server qui héberge les bases de données.

Étape 2 : Pointez les bases de données SharePoint vers le nouvel alias SQL de données

Cette étape modifie le pointeur SQL Server instance sur toutes les bases de données SharePoint. Si vous souhaitez stocker les bases de données sur SQL Server instances, modifiez le script en conséquence.

Important

La base de données de configuration SharePoint et la base de données de contenu de l’Administration centrale doivent résider sur la même SQL Server instance.
Pour modifier le pointeur SQL Server’instance, exécutez le script PowerShell suivant dans une fenêtre SharePoint Management Shell avec élévation de niveaux :

$SPDBs = Get-SPDatabase  
 ForEach ($DB in $SPDBs)  
 {  
     $DB.ChangeDatabaseInstance('SPSQLRenamed')  
 }  

Pour vérifier la modification, exécutez l’cmdlet PowerShell suivante dans une fenêtre SharePoint Management Shell avec élévation de niveaux :

Get-SPDatabase | Select Name,Server  

Vous devez recevoir un résultat semblable à l’exemple suivant :

Sortie de la DB

Étape 3 : Pointez l’instance de base de données par défaut pour les applications web vers la nouvelle instance SQL Server de base de données

Cette étape est requise pour que lorsque vous créez des bases de données sans spécifier le serveur de base de données, elles ne se connectent pas à l’ancienne instance SQL Server base de données.

Le plan d’action suivant va pointer toutes les bases de données vers la même instance SQL Server (celle qui sert la base de données de configuration). Modifiez ce script pour qu’il corresponde à vos besoins.

Exécutez le script PowerShell suivant dans une fenêtre SharePoint Management Shell avec élévation de niveaux :

$ConfigDB = Get-SPDatabase | ?{$_.Name -eq 'SharePoint_Config'}  
 $WebApps = Get-SPWebApplication -IncludeCentralAdministration  
 ForEach ($WebApp in $WebApps)  
 {  
     $WebApp.Parent.DefaultDatabaseInstance = $ConfigDB.ServiceInstance  
     $webapp.Parent.Update()  
     $webapp.Update()  
 }  

Pour vérifier la modification, exécutez l’cmdlet PowerShell suivante dans une fenêtre SharePoint Management Shell avec élévation de niveaux :

$webapps = Get-SPWebApplication -IncludeCentralAdministration  
 foreach ($webapp in $webapps)  
 {  
     Write-host "WebAppUrl: $($webapp.DisplayName)`tDefaultDatabaseInstance: $($webapp.Parent.DefaultDatabaseInstance.DisplayName)"  
 }  

Vous devez recevoir un résultat semblable à l’exemple suivant :

Sortie d’instance de la DB

Étape 4 : Modifier la configuration du cluster de cache distribué

Important

Cette étape décrit comment modifier directement la base de données de configuration SharePoint. La modification directe de base de données n’est généralement pas prise en charge pour la plupart des bases de données liées à SharePoint. Les actions spécifiées ici sont autorisées uniquement à cet effet. Nous n’accordons pas l’autorisation d’utiliser ces étapes pour apporter d’autres modifications.

Pour cela, procédez comme suit :

  1. Obtenez l’objet de configuration actuel à partir du serveur qui exécute SQL Server l’aide de la requête SQL suivante :

    SELECT [ID],[Properties]  
    FROM [SharePoint_Config].[dbo].[Objects]  
    WITH (NOLOCK)  
    WHERE Properties like '%_cacheConfigStorageLocation%'  
    
  2. La requête renvoie une seule ligne avec deux colonnes. Une colonne est pour le GUID de l’élément de configuration et l’autre pour le contenu de l’élément de configuration, comme dans l’exemple suivant :

    <object type="Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfo, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=Token"><fld type="Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterConfigStorageLocation, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=Token" name="_cacheConfigStorageLocation"><object type="Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterConfigStorageLocation, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=Token"><sFld type="String" name="_provider">SPDistributedCacheClusterProvider</sFld><sFld type="String" name="_connectionString">Data Source=SPSQLRenamed;Initial Catalog=SharePoint_Config;Integrated Security=True;Persist Security Info=False;Enlist=False;Pooling=True;Min Pool Size=0;Max Pool Size=100;PoolBlockingPeriod=Auto;Asynchronous Processing=False;Connection Reset=True;MultipleActiveResultSets=False;Replication=False;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;Load Balance Timeout=0;Packet Size=8000;Type System Version=Latest;Application Name=".Net SqlClient Data Provider";User Instance=False;Context Connection=False;Transaction Binding="Implicit Unbind";ApplicationIntent=ReadWrite;MultiSubnetFailover=False;TransparentNetworkIPResolution=True;ConnectRetryCount=1;ConnectRetryInterval=10;Column Encryption Setting=Disabled</sFld></object></fld><sFld type="String" name="_clusterSize">medium</sFld><sFld type="Boolean" name="_enableHA">False</sFld><sFld type="Boolean" name="_isInitialized">True</sFld><sFld type="Boolean" name="_isDataCacheSecurityEnabled">False</sFld><sFld type="Boolean" name="m_DeploymentLocked">False</sFld><fld type="System.Collections.Hashtable, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=Token" name="m_UpgradedPersistedFields" /><fld name="m_Properties" type="null" /><sFld type="String" name="m_LastUpdatedUser">SP2016\Administrator</sFld><sFld type="String" name="m_LastUpdatedProcess">psconfigui (3536)</sFld><sFld type="String" name="m_LastUpdatedMachine">SP16APP1</sFld><sFld type="DateTime" name="m_LastUpdatedTime">Time</sFld><fld name="m_LastUpdatedStackTrace" type="null" /><sFld type="Int32" name="m_LastUpdatedThreadId">31</sFld><sFld type="Guid" name="m_LastUpdatedCorrelationId">CorrelationId</sFld></object>.
    
  3. Copiez le résultat dans le Bloc-notes, puis remplacez ce qui suit par la nouvelle instance SQL Server suivante :

    Data Source=SPSQLRenamed;Initial Catalog=SharePoint_Config;
    
  4. Exécutez la commande SQL suivante pour mettre à jour l’objet de configuration :

    UPDATE Objects  
    SET Properties = '[content in Notepad]'  
    WHERE ID = '[GUID of the configuration object in the query result]'  
    

Étape 5 : Réapprovisioner le service de cache distribué sur tous les serveurs de cache distribué

Pour cela, procédez comme suit :

  1. Sur l’un des serveurs de cache distribué, fermez normalement le service en exécutant l’applet de cmdlet PowerShell suivante dans une invite PowerShell avec élévation de niveaux :

    Use-CacheCluster  
    Stop-CacheHost -Graceful -CachePort 22233 -ComputerName $env:COMPUTERNAME  
    
  2. Patientez jusqu’à ce que le service soit arrêté. Vous pouvez surveiller l’état à l’aide de l’cmdlet PowerShell suivante :

    Get-CacheHost  
    

    Lorsque le service est arrêté, vous devez recevoir un résultat semblable à l’exemple suivant :

    Sortie de l’hôte de cache

  3. Supprimez le serveur local du cluster de cache distribué en exécutant l’cmdlet PowerShell suivante :

    Remove-SPDistributedCacheServiceInstance  
    
  4. Restituer le serveur local au cluster de cache distribué en exécutant l’cmdlet PowerShell suivante :

    Add-SPDistributedCacheServiceInstance  
    
  5. Ouvrez l’Éditeur du Registre, puis vérifiez que la valeur ConnectionString de la clé HKLM\SOFTWARE\Microsoft\AppFabric\V1.0\Configuration est mise à jour. Voici un exemple :

    registre

  6. Répétez les étapes 1 à 5 sur chacun des autres serveurs du cluster de cache distribué.

Étape 6 : Supprimer la référence à l’ancien serveur

Pour ce faire, exécutez l’cmdlet PowerShell suivante dans une fenêtre SharePoint Management Shell avec élévation de niveaux :

$OldServer = Get-SPServer | ?{$_.Address -eq '<The name of the SQL Server to be removed>'}  
 $OldServer.Delete()  

Étape 7 : Vérifier la modification

Pour vérifier que le serveur de base de données a bien été modifié, exécutez l’cmdlet suivante :

Get-SPServer  

Vous devez recevoir un résultat semblable à l’exemple suivant :

sortie du serveur

Informations supplémentaires

Encore besoin d’aide ? Go to SharePoint Community.