How to – SharePoint Site Collection Migration

Es gibt sicher mehrere Möglichkeiten, SharePoint Site Collections zu migrieren. Die im Folgenden beschriebene Vorgehensweise ist aber von mir getestet und für gut befunden worden 🙂

Es kann immer zu Inkompatibilitäten zwischen den verschiedenen Versionen kommen. Hierauf gehe ich aber nicht näher ein. Das würde den Rahmen sicher sprengen. Des Weiteren muss beachtet werden, dass eine Migration von SharePoint 2007 auf 2013 nur mit dem Zwischenschritt über 2010 möglich ist. Im beschriebenen Beispiel habe ich eine 2007er Site Collection, die auf einen 2013 migriert werden soll. Also werde ich auch den Zwischenschritt mit beschreiben.


1.) Backup / Restore Site Collection

Zunächst wird ein Backup der zu migrierenden Site Collection mit STSAdm erstellt:

STSAdm -o Backup -URL $SiteURL -Filename $Filename

Das so erstellte Backup spiele ich nun auf dem gleichen SharePoint in einer separaten WebApplication mit einer eigenen Datenbank wieder ein. So ist sichergestellt, dass die Site exklusiv in einer DB abgelegt wird. Sollten Sie mehrere Migrationen durchführen, sollten sie nach Abschluss einer solchen am besten die Datenbank auf dem SQL löschen. Das stellt auf jeden Fall die sauberste Vorgehensweise dar. Achten Sie darauf beim Restore schon die zukünftige (nicht die seitherige) URL anzugeben.

Erstellen Sie (falls noch nicht vorhanden) eine neue Webapplication (z.B. über die Central Administration)

sps_Mig_1

Der folgende Dialog ist relativ selbsterklärend. Vergeben Sie einen Namen für die WebApplication und geben Sie den entsprechenden Service Account (Application Pool Username) an. Achten Sie darauf, beim Anlegen auch eine neue Datenbank anzugeben.

Nun erfolgt der Restore der Site Collection in diese WebApplication.

STSAdm -o restore -url $neueSiteURL -hostheaderwebapplicationurl $WebApplicationURL -filename $filename


2.) SQL

Führen Sie ein Backup der Datenbank über SQL durch.

sps_Mig_2

Nun wird das Backup der DB auf dem (evtl. neuen) SQL restored.

sps_Mig_3


3.) Test

Im nächsten Schritt testen Sie, ob die Datenbank migriert werden kann. Dazu nutzen Sie auf dem Ziel SharePoint das CMDLet Test-SPContentDatabase.

Test-SPContentDatabase –Name $ContentDB –WebApplication $WebApplicationURL

Sollten hierbei keine Fehler zurück gegeben werden, war der Test erfolgreich. Achten Sie darauf, dass hierbei keine(!) Erfolgsmeldung erscheint.


4.) Mount

War der Test erfolgreich, können Sie die Datenbank an die WebApplication mounten.

Mount-SpContentDatabase –Name $ContentDB –WebApplication $WebApplicationURL

Dieser Vorgang kann je nach Größe einige Zeit in Anspruch nehmen.


5.) 2013

Sollte das Mounten erfolgreich gewesen sein, ist die Site Collection nun auf den SharePoint 2010 migriert. Die weitere Migration auf den SharePoint 2013 läuft im Prinzip über die gleichen Schritte. Der einzige Unterschied ist, dass das initiale Backup der Site Collection nun auch über CMDLets angestoßen werden kann. Bei 2007 musste noch das STSAdm verwendet werden. Führen Sie also das Backup auf dem SharePoint 2010 mit folgendem Befehl aus.

Backup-SPSite $SiteURL -Path $Filename

Der Restore erfolgt mit:

Restore-SPSite $neueSiteURL -Path $Filename -HostHeaderWebApplication $WebApplicationURL -DatabaseName $ZielContentDB –Force

Die weiteren Schritte sind identisch den schon beschriebenen.


6.) UserAccountPath / ServiceAccountPath – Optional!

Wenn Sie eine “Mandantenfähigkeit” benötigen, können Sie abschließend noch die Pfade (PeoplePicker) für die User und den Service Account setzen. Damit wird gewährleistet, dass z.B. beim  Berechtigen von Usern nur in den der Site Collection zugeordneten OUs gesucht wird.

Den Userpath können Sie mit folgendem Befehl setzen.

Set-SPSite $SiteURL -UserAccountDirectoryPath “OU=Name,DC=Domain,DC=xx”

Der ServiceAccountDirectoryPath kann leider nur über STSAdm (auch noch in 2013) gesetzt werden. Warum weiß alleine MS…

STSAdm -o setproperty -pn peoplepicker-serviceaccountdirectorypaths -pv “OU=Name,DC=Domain,DC=xx” -url $SiteUrl


7.) User Migration

Wenn es erforderlich sein sollte, können Sie noch die User, die auf die Site Collection berechtigt sind, migrieren. Dazu dient das CMDLet Move-SPUser, bzw Set-SPUser.

Mit Move-SPUser ersetzen Sie schon vorhandene User. Diese werden aber im Adressbuch des SharePoint dann noch mit dem alten Displayname dargestellt. Sollten Sie auch diesen ändern wollen/müssen, geht das mit Set-SPUser -Displayname. 

8.) Live Datenbank

Die migrierte Site Collection befindet sich immer noch in einer separaten Datenbank. Das macht im Betrieb natürlich wenig Sinn. Verschieben Sie nach erfolgreicher Migration die Site Collection noch in eine entsprechend produktive Datenbank.

Move-SPSite $SiteURL -DestinationDatabase $ContentDB