Hinterlasse einen Kommentar

Migration einer SharePoint Site-Collection mit SiteSubscription (Multi-Tenancy) auf eine Nicht-Mehrmandaten-Farm

In Microsoft SharePoint ist es möglich, in einer Farm mehrere Mandanten zu betreiben. Entscheidet sich nun ein Mandant für einen eigenen, vollwertigen SharePoint Server und will die Site-Collection vollständig auf den neuen Server übernehmen, steht man vor einem Problem, das offiziell nicht lösbar ist. Die Site-Collection kann zwar migriert werden mit dem vollständigen Inhalt, jedoch funktionieren auf der Ziel-Farm sämtliche Service-Applikationen nicht, welche mehrmandantenfähig eingerichtet sein müssten (partitioned service applications). Z.B. die Suche liefert dann keine Suchergebnisse, obwohl scheinbar alles richtig konfiguriert ist und die Inhalte indexiert wurden, ohne Fehlermeldungen.

Sobald eine SiteCollection einmal einer SiteSubscription zugewiesen wird (z.B. über Set-SPSite -SiteSubscription), kann diese SiteSubscription nie mehr entfernt werden. Will man diese SiteCollection auf eine neue SharePoint-Farm migrieren, muss auch die Ziel-Farm mit Multi-Tenancy konfiguriert sein. Eine Migration ohne diese Site-Subscription ist offiziell nicht möglich und wird auch nicht in absehbarer Zeit von Microsoft unterstützt werden. Der Microsoft Support hat uns dies bestätigt Ende August 2017, in Bezug auf SharePoint Server 2016.

Eine offizielle, funktionierende Alternative ist, alle benötigten Websites manuell zu exportieren und wieder zu importieren (Export-SPWeb und Import-SPWeb). Dieser Prozess kann sehr zeitaufwändig sein und die Site-Collection muss neu erstellt und konfiguriert werden.

Eine inoffizielle Alternative ist, die Zuweisung der Site-Subscription manuell aus der Inhaltsdatenbank zu löschen. Solche Datenbankeingriffe sind von Microsoft nicht unterstützt. Bei meinen Tests mit SharePoint 2013 hat dies erfolgreich funktioniert (alle Angaben ohne Gewähr!)

  1. Datenbank von SharePoint dismounten (Dismount-SPContentDatabase)
  2. SQL-Befehl auf der Inhaltsdatenbank ausführen:
    UPDATE Sites SET SubscriptionId = NULL WHERE SubscriptionId IS NOT NULL 
  3. Datenbank beim SharePoint mounten (Mount-SPContentDatabase)

Anschliessend hat bei mir die Suche wieder korrekt funktioniert. Es dauerte zwar ein paar Stunden, bis die Suchergebnisse erschienen. Bisher habe ich keine negativen Nebeneffekte festgestellt.

Update zu SharePoint 2019/Subscription Edition (Mai 2023)

Im SharePoint Server 2019 wurde der Multi-Tenancy Support entfernt. Bei der Migration einer SiteCollection von Multi-Tenancy auf SharePoint 2019 oder Subscription Edition tritt dieses Problem auch auf. Der beschriebene Workaround mit dem Datenbank-Eingriff funktioniert auch hier, insbesondere damit die Suche Ergebnisse anzeigt. Es war ein Server-Neustart nötig, bis die Suchergebnisse tatsächlich angezeigt wurden.

Über Benjamin Freitag

Full stack Web Developer bei 2sic seit 2006, entwickelt Web Apps mit Angular und .NET stack: DNN, Oqtane, 2sxc, SharePoint und nopCommerce.

Hinterlasse einen Kommentar