Ändern des Datenbankservers in einer SharePoint-Farm
Zusammenfassung
In einer SharePoint-Farm müssen Sie möglicherweise Datenbanken von einem Server, auf dem SQL Server ausgeführt wird, zu einem anderen migrieren. Wenn Sie während der SharePoint-Installation keinen SQL Server Clientalias verwenden oder den Datenbankserver aus verschiedenen Gründen umbenennen müssen (z. B. nach einer Sicherheitsverletzung), führen Sie die Schritte in diesem Artikel aus, um den Datenbankserver zu ändern.
Durch gute Planung und Hochverfügbarkeit können Sie diese Schritte in einer Produktionsumgebung ausführen, ohne alle Dienste beenden zu müssen.
Ändern des Datenbankservers
In diesem Artikel wird davon ausgegangen, dass alle SharePoint-Datenbanken auf einer einzelnen SQL Server instance gehostet werden. Passen Sie die Parameter in diesen Schritten nach Bedarf für Ihre Umgebung an.
Bevor Sie beginnen, erstellen Sie eine Sicherung der Konfigurationsdatenbank zur Problembehandlung, falls beim Ausführen der Schritte nicht mehr auf die SharePoint-Farm zugegriffen werden kann.
Wichtig
Bevor Sie beginnen, stellen Sie sicher, dass Sie mit diesem Aktionsplan vertraut sind. Wenn auf die SharePoint-Farm nicht mehr zugegriffen werden kann oder die Konfigurationsdatenbank beschädigt wird, müssen Sie die Funktionalität aus der letzten Farmsicherung wiederherstellen.
Schritt 1: Erstellen eines neuen SQL-Alias auf allen SharePoint-Servern in der Farm
Gehen Sie dazu wie folgt vor:
- Stellen Sie sicher, dass Sie ein Benutzerkonto verwenden, das Mitglied der folgenden Ist:
- Der Gruppe Administratoren
- Feste Datenbankrolle db_owner
- Starten Sie das cliconfg.exe (SQL Server Client Network Utility). Dieses Hilfsprogramm befindet sich in der Regel im Ordner C:\Windows\SysWOW64 (32-Bit) oder C:\Windows\System32 (64-Bit).
- Prüfen Sie auf der Registerkarte Allgemein, dass TCP/IP aktiviert ist.
- Klicken Sie auf der Registerkarte Alias auf Hinzufügen.
Hinweis Das Fenster Netzwerkbibliothekskonfiguration hinzufügen wird angezeigt. - Geben Sie im Feld Serveralias den Namen des neuen alias SQL Server ein.
- Klicken Sie im Bereich Netzwerkbibliotheken auf TCP/IP.
- Geben Sie im Feld Servername im Bereich Verbindungsparameter den vollqualifizierten Domänennamen des neuen Servers ein, auf dem SQL Server ausgeführt wird, und klicken Sie dann auf OK.
- Wiederholen Sie die Schritte 2 bis 7 auf allen SharePoint-Servern, die eine Verbindung mit dem instance SQL Server herstellen, der die Datenbanken hostet.
Schritt 2: Verweisen der SharePoint-Datenbanken auf den neuen SQL-Alias
Dieser Schritt ändert den SQL Server instance Zeiger für alle SharePoint-Datenbanken. Wenn Sie die Datenbanken auf verschiedenen SQL Server-Instanzen speichern möchten, ändern Sie das Skript entsprechend.
Wichtig
Die SharePoint-Konfigurationsdatenbank und die Inhaltsdatenbank der Zentraladministration müssen sich auf demselben SQL Server instance befinden.
Um den SQL Server instance-Zeiger zu ändern, führen Sie das folgende PowerShell-Skript in einem SharePoint-Verwaltungsshell-Fenster mit erhöhten Rechten aus:
$SPDBs = Get-SPDatabase
ForEach ($DB in $SPDBs)
{
$DB.ChangeDatabaseInstance('SPSQLRenamed')
}
Führen Sie zum Überprüfen der Änderung das folgende PowerShell-Cmdlet in einem SharePoint-Verwaltungsshell-Fenster mit erhöhten Rechten aus:
Get-SPDatabase | Select Name,Server
Sie sollten ein Ergebnis erhalten, das dem folgenden Beispiel ähnelt:
Schritt 3: Verweisen Der Standarddatenbank-instance für die Webanwendungen auf den neuen SQL Server instance
Dieser Schritt ist erforderlich, damit beim Erstellen von Datenbanken ohne Angabe des Datenbankservers keine Verbindung mit dem alten SQL Server instance hergestellt wird.
Der folgende Aktionsplan verweist alle Datenbanken auf denselben SQL Server instance (die Datenbank, die für die Konfigurationsdatenbank dient). Ändern Sie dieses Skript entsprechend Ihren Anforderungen.
Führen Sie das folgende PowerShell-Skript in einem SharePoint-Verwaltungsshell-Fenster mit erhöhten Rechten aus:
$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()
}
Führen Sie zum Überprüfen der Änderung das folgende PowerShell-Cmdlet in einem SharePoint-Verwaltungsshell-Fenster mit erhöhten Rechten aus:
$webapps = Get-SPWebApplication -IncludeCentralAdministration
foreach ($webapp in $webapps)
{
Write-host "WebAppUrl: $($webapp.DisplayName)`tDefaultDatabaseInstance: $($webapp.Parent.DefaultDatabaseInstance.DisplayName)"
}
Sie sollten ein Ergebnis erhalten, das dem folgenden Beispiel ähnelt:
Schritt 4: Ändern der Clusterkonfiguration für verteilten Cache
Wichtig
In diesem Schritt wird beschrieben, wie Sie die SharePoint-Konfigurationsdatenbank direkt ändern. Direkte Datenbankänderungen werden für die meisten SharePoint-bezogenen Datenbanken im Allgemeinen nicht unterstützt. Die hier angegebenen Aktionen sind nur für diesen bestimmten Zweck zulässig. Wir erteilen keine Berechtigung zum Ausführen dieser Schritte, um andere Änderungen vorzunehmen.
Gehen Sie dazu wie folgt vor:
Rufen Sie das aktuelle Konfigurationsobjekt von dem Server ab, auf dem SQL Server ausgeführt wird, indem Sie die folgende SQL-Abfrage verwenden:
SELECT [ID],[Properties] FROM [SharePoint_Config].[dbo].[Objects] WITH (NOLOCK) WHERE Properties like '%_cacheConfigStorageLocation%'
Die Abfrage gibt eine einzelne Zeile mit zwei Spalten zurück. Eine Spalte ist für die GUID des Konfigurationselements und die andere für den Inhalt des Konfigurationselements, wie im folgenden Beispiel gezeigt:
<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>.
Kopieren Sie das Ergebnis in Editor, und ersetzen Sie dann Folgendes durch die neue SQL Server instance:
Data Source=SPSQLRenamed;Initial Catalog=SharePoint_Config;
Führen Sie den folgenden SQL-Befehl aus, um das Konfigurationsobjekt zu aktualisieren:
UPDATE Objects SET Properties = '[content in Notepad]' WHERE ID = '[GUID of the configuration object in the query result]'
Schritt 5: Erneutes Bereitstellen des Verteilten Cachediensts auf allen Servern mit verteiltem Cache
Gehen Sie dazu wie folgt vor:
Fahren Sie den Dienst auf einem der Verteilten Cacheserver ordnungsgemäß herunter, indem Sie das folgende PowerShell-Cmdlet in einer PowerShell-Eingabeaufforderung mit erhöhten Rechten ausführen:
Use-CacheCluster Stop-CacheHost -Graceful -CachePort 22233 -ComputerName $env:COMPUTERNAME
Warten Sie, bis der Dienst beendet wurde. Sie können die status mit dem folgenden PowerShell-Cmdlet überwachen:
Get-CacheHost
Wenn der Dienst beendet wird, sollten Sie ein Ergebnis erhalten, das dem folgenden Beispiel ähnelt:
Entfernen Sie den lokalen Server aus dem Verteilten Cachecluster, indem Sie das folgende PowerShell-Cmdlet ausführen:
Remove-SPDistributedCacheServiceInstance
Stellen Sie den lokalen Server im Cluster für verteilten Cache wieder her, indem Sie das folgende PowerShell-Cmdlet ausführen:
Add-SPDistributedCacheServiceInstance
Öffnen Sie registry Editor, und überprüfen Sie dann, ob der ConnectionString-Wert des Schlüssels HKLM\SOFTWARE\Microsoft\AppFabric\V1.0\Configuration aktualisiert wird. Hier ein Beispiel:
Wiederholen Sie die Schritte 1 bis 5 auf jedem der anderen Server im Verteilten Cachecluster.
Schritt 6: Entfernen des Verweises auf den alten Server
Führen Sie dazu das folgende PowerShell-Cmdlet in einem SharePoint-Verwaltungsshell-Fenster mit erhöhten Rechten aus:
$OldServer = Get-SPServer | ?{$_.Address -eq '<The name of the SQL Server to be removed>'}
$OldServer.Delete()
Schritt 7: Überprüfen der Änderung
Führen Sie das folgende Cmdlet aus, um zu überprüfen, ob der Datenbankserver erfolgreich geändert wurde:
Get-SPServer
Sie sollten ein Ergebnis erhalten, das dem folgenden Beispiel ähnelt:
Weitere Informationen
Benötigen Sie weitere Hilfe? Navigieren Sie zu SharePoint-Community.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für