SiteOrphan – Database contains a site that is not found in the site map

SiteOrphan – Database contains a site that is not found in the site map

Die Datenbank enthält eine Website, die in der Websiteübersicht nicht gefunden wurde

Folgende Fehlermeldung wird nach dem Update durch den SharePoint-Assistenten (bzw. durch das Kommandozeilentool PsConfig) angezeigt:

. . .
Fehler beim Ausführen des Upgrades für SharePoint-Produkte.

Eine Ausnahme vom Typ ‚Microsoft.SharePoint.Upgrade.SPUpgradeException‘ wurde ausgelöst. Weitere Ausnahmeinformationen:
Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an. (EventID:ajxkz)

Das Upgrade wurde mit Fehlern abgeschlossen. Überprüfen Sie die Upgradeprotokolldatei unter ‚C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\LOGS\Upgrade-<Date>-<Time>-169.log‘. Die Anzahl der Fehler und Warnungen ist am Ende der Updateprotokolldatei aufgeführt.

Folgen Sie diesem Link, um weitere Informationen zur Behandlung von Upgradefehlern zu erhalten:
http://go.microsoft.com/fwlink/?LinkId=259653

Database contains a site that is not found in the site map

Database [<SP_Database>] contains a site (Id = [<ID>], Url = [/managedpath/site]) that is not found in the site map. Consider detach and reattach the database which contains the orphaned sites.
Restart upgrade if neccesary.

Details

Beschreibung

Das SharePoint-Update kann nicht zu Ende ausgeführt werden, da nach dem Ausführen des Assistenten durch folgende Zeile

PSConfig -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources

das Update beim Schritt 6 von 7 mit einem Fehler abbricht.

Die Datenbank enthält eine Website, die in der Websiteübersicht nicht gefunden wurde

Konfigurationsaufgabe 6 von 7 wird ausgeführt
Das Update für SharePoint-Produkte wird ausgeführt…

Fehler beim Ausführen des Upgrades für SharePoint-Produkte.

Eine Ausnahme vom Typ ‚Microsoft.SharePoint.Upgrade.SPUpgradeException‘ wurde ausgelöst. Weitere Ausnahmeinformationen:
Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an. (EventID:ajxkz)

Das Upgrade wurde mit Fehlern abgeschlossen. Überprüfen Sie die Upgradeprotokolldatei unter ‚C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\LOGS\Upgrade-<Date>-<Time>-169.log‘. Die Anzahl der Fehler und Warnungen ist am Ende der Updateprotokolldatei aufgeführt.
. . .

In Englischen Systemen heißt die Fehlermeldung wie folgt oder ähnlich:

Database contains a site that is not found in the site map

Database [<SP_Database>] contains a site (Id = [<ID>], Url = [/managedpath/site]) that is not found in the site map. Consider detach and reattach the database which contains the orphaned sites.
Restart upgrade if neccesary.

Die verwaisten Websites verursachen ggf. Upgradefehler. Versuchen Sie, die Datenbank zu trennen und dann erneut anzufügen, die die verwaisten Websites enthält

Die Datei

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS\Upgrade-<Date>-<Time>-169-error.log

enthält unter anderem folgende Einträge.

PSCONFIG (0x3488) 0x3214 SharePoint Foundation Upgrade SPContentDatabaseSequence ajxkz ERROR Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an. 00000000-0000-0000-0000-000000000000

PSCONFIG (0x3488) 0x3214 SharePoint Foundation Upgrade SPContentDatabaseSequence ajxk0 WARNING Die verwaisten Websites verursachen ggf. Upgradefehler. Versuchen Sie, die Datenbank zu trennen und dann erneut anzufügen, die die verwaisten Websites enthält. Starten Sie das Upgrade bei Bedarf neu. 00000000-0000-0000-0000-000000000000

Exception: Microsoft.SharePoint.Upgrade.SPUpgradeException

Die Datei

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\LOGS\PSCDiagnostics_....log

enthält unter anderem folgende Einträge

ERR Task upgrade has failed with an unknown exception
ERR Exception: Microsoft.SharePoint.Upgrade.SPUpgradeException:
Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an. (EventID:ajxkz)

Das Upgrade wurde mit Fehlern abgeschlossen.

Health Analyzer: Serverseitige Abhängigkeiten fehlen

Im SharePoint Health Analyzer findet man auch die Fehlermeldung in der Kategorie „Konfiguration“ mit dem Titel „Serverseitige Abhängigkeiten fehlen„.

[SiteOrphan] Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an. Die verwaisten Websites verursachen ggf. Upgradefehler. Versuchen Sie, die Datenbank zu trennen und dann erneut anzufügen, die die verwaisten Websites enthält. Starten Sie das Upgrade bei Bedarf neu.
[SiteOrphan] Die Datenbank [‚<SP_Database>‚] enthält eine Website (ID = [‚<ID>‚], URL = [‚/managedpath/site‚]), deren URL bereits von einer anderen Website in der Datenbank (ID = [<DB-ID>], Name = [<SP_Database>]) in der gleichen Webanwendung verwendet wird. Löschen Sie ggf. eine der Websites mit einer URL, die einen Konflikt verursacht. Die verwaisten Websites verursachen ggf. Upgradefehler. Versuchen Sie, die Datenbank zu trennen und dann erneut anzufügen, die die verwaisten Websites enthält. Starten Sie das Upgrade bei Bedarf neu.

SharePoint Umgebung

Fix

Folgende Richtung wurde eingeschlagen, um das Problem zu lösen.

PowerShell-Konsole als Administrator öffnen und folgende Kommandos ausführen.

# SharePoint CMD-lets laden
Add-PSSnapin Microsoft.SharePoint.PowerShell

#Puffer (sonst werden z.B. Spalten rechts abgeschnitten) 
$buffer = $host.ui.RawUI.BufferSize; $buffer.width = 3000; $buffer.height = 3000; $host.UI.RawUI.Set_BufferSize($buffer)

Übersicht über die vorhandene Inhaltsdatenbanken verschaffen und diese testen.

# Inhaltsdatenbanken auflisten 
Get-SPContentDatabase

# Datenbanken auf verwaiste Einräge testen
# Get-SPContentDatabase | Test-SPContentDatabase -ShowLocation | ft -Auto
Get-SPContentDatabase | Test-SPContentDatabase -ShowLocation

<#Ausgabe
Category : SiteOrphan
Error : True
UpgradeBlocking : False
Message : Die Datenbank ['<SP_Database>'] enthält eine Website (ID = ['<ID>'], URL = ['/managedpath/site']), die in der Websiteübersicht nicht gefunden wurde. Trennen Sie die Datenbank, und fügen Sie sie dann erneut an.
Remedy : Die verwaisten Websites verursachen ggf. Upgradefehler. Versuchen Sie, die Datenbank zu trennen und dann erneut anzufügen, die die verwaisten Websites enthält. Starten Sie das Upgrade bei Bedarf neu.
Locations :
#>

Der Versuch, die Seite mit Hilfe der angezeigten ID aufzulisten scheiterte mit dem Fehler

Es war kein an http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc lauschender Endpunkt vorhanden, der die Nachricht annehmen konnte. Dies wird häufig durch eine fehlerhafte Adresse oder SOAP-Aktion verursacht. Weitere Details finden Sie unter „InnerException“, sofern vorhanden.

# Seiten mit der ID auflisten
$IDs = "<ID>"
get-spsite -Limit All | ?{$IDs -contains $_.ID} | Select -Property ServerRelativeUrl, ID, Owner, SecondaryContact, HostName, Protocol, Port, Zone, Url, SystemAccount, @{label="Size in MB";Expression={[math]::round($_.usage.storage/1MB, 2)}}, UserCodeEnabled, Impersonating, AllWebs, LastContentModifiedDate, LastSecurityModifiedDate, Upgrading, UpgradeReminderDate, AllowSelfServiceUpgrade, MaintenanceMode, Archived, UserIsSiteAdminInSystem, ContentDatabase, SchemaVersion, CompatibilityLevel, IsEvalSite, ExpirationDate, CanUpgrade, NeedsUpgrade | Sort ServerRelativeUrl, HostName | ft * -auto


<# Fehler:

get-spsite : Es war kein an http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc lauschender Endpunkt vorhanden, der die Nachricht annehmen konnte. Dies wird häufig durch eine fehlerhafte Adresse oder SOAP-Aktion verursacht. Weitere Details finden Sie unter "InnerException", sofern vorhanden.
In Zeile:2 Zeichen:1
+ get-spsite -Limit All | ?{$IDs -contains $_.ID} | Select -Property ServerRelativ ...
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Share...SPCmdletGetSite:SPCmdletGetSite) [Get-SPSite], EndpointNotFoundException
    + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletGetSite
 #>

Scheinbar war der IIS-Webserver-Dienst auf dem Server, auf dem der SharePoint-Assistent ausgeführt und nicht zu Ende geführt wurde, gestoppt.

IIS Starten

# Der IIS ist nach dem nicht erfolgreichen bzw. abgebrochenen Update gestoppt. Wieder starten.

IISRESET /start

Neuer Versuch die Seite per Get-SpSite und <ID> zu finden.

# Seiten mit der ID auflisten 
$IDs = "<ID>" get-spsite -Limit All | ?{$IDs -contains $_.ID} | Select -Property ServerRelativeUrl, ID, Owner, SecondaryContact, HostName, Protocol, Port, Zone, Url, SystemAccount, @{label="Size in MB";Expression={[math]::round($_.usage.storage/1MB, 2)}}, UserCodeEnabled, Impersonating, AllWebs, LastContentModifiedDate, LastSecurityModifiedDate, Upgrading, UpgradeReminderDate, AllowSelfServiceUpgrade, MaintenanceMode, Archived, UserIsSiteAdminInSystem, ContentDatabase, SchemaVersion, CompatibilityLevel, IsEvalSite, ExpirationDate, CanUpgrade, NeedsUpgrade | Sort ServerRelativeUrl, HostName | ft * -auto

Es wird mit der ID leider nichts gefunden.

Neuer Versuch die Sitecollection per URL /managedpath/site zu finden.

get-spsite -Limit All | Where {$_.Url -like '*/managedpath/site*'} | Select -Property ServerRelativeUrl, Owner, SecondaryContact, HostName, Protocol, Port, Zone, Url, ID, SystemAccount, @{label="Size in MB";Expression={[math]::round($_.usage.storage/1MB, 2)}}, UserCodeEnabled, Impersonating, AllWebs, LastContentModifiedDate, LastSecurityModifiedDate, Upgrading, UpgradeReminderDate, AllowSelfServiceUpgrade, MaintenanceMode, Archived, UserIsSiteAdminInSystem, ContentDatabase, SchemaVersion, CompatibilityLevel, IsEvalSite, ExpirationDate, CanUpgrade, NeedsUpgrade | Sort ServerRelativeUrl, HostName | ft * -auto

Es wird keine Site gefunden.

In der Auflistung der Sites in der Inhaltsdatenbank „<SP_Database>“ wird diese Seite /managedpath/site nicht aufgeführt.

# Alle SiteCollections einer DB anzeigen (mit allen relevanten Informationen)
Get-SPContentDatabase '<SP_Database>' | Get-SPSite -Limit All | Select -Property ServerRelativeUrl, Owner, SecondaryContact, HostName, Protocol, Port, Zone, Url, ID, SystemAccount, @{label="Size in MB";Expression={[math]::round($_.usage.storage/1MB, 2)}}, UserCodeEnabled, Impersonating, AllWebs, LastContentModifiedDate, LastSecurityModifiedDate, Upgrading, UpgradeReminderDate, AllowSelfServiceUpgrade, MaintenanceMode, Archived, UserIsSiteAdminInSystem, ContentDatabase, SchemaVersion, CompatibilityLevel, IsEvalSite, ExpirationDate, CanUpgrade, NeedsUpgrade | Sort ServerRelativeUrl, HostName | ft * -auto

Man kann sich mit dem Tool stsadm alle Seiten in eine XML-Datei ausgeben. Am besten kann man sich diese mit dem Internet-Explorer anzeigen.

# Seiten und Unterseiten einer DB auflisten (XML Konsolenausgabe)
# stsadm -o enumallwebs -databasename <SP_Database>

# Seiten und Unterseiten einer DB auflisten (XML-Datei auf dem Desktop)
stsadm -o enumallwebs -databasename <SP_Database> > "$home\desktop\$(Get-Date -Format 'yyyy-MM-dd HH.mm.ss') $(gc env:computername) Sites.xml"

<# Ausgabe:
<Databases>
  <Database SiteCount="12" Name="<SP_Database>" DataSource="<SQL_Server>">
. . .
    <Site Id="<ID>" OwnerLogin="<Username>" InSiteMap="False">
      <Webs Count="3">
        . . .
      </Webs>
    </Site>
 . . .
#>

Die Seiten verwaisten Seiten („SiteOrphan„) kann man in der Zeile finden, in der InSiteMap="False“ steht. Dort ist auch die <ID> zu finden.

SiteOrphan - Database contains a site that is not found in the site map - Die Datenbank enthält eine Website, die in der Websiteübersicht nicht gefunden wurde - ERROR - SharePoint 2013

stsadm -o deletesite -force …

SiteOrphan auflisten

Nun kann man sich wie folgt die verwaisten Seiten (die in der DB aber nicht in der SiteMap vorhanden sind) anzeigen.

(Datenbanknamen nach dem „-databasename“ anpassen)

# Alle verwaisten Seiten einer DB anzeigen
[xml]$allwebs = stsadm -o enumallwebs -databasename <SP_Database>
$OrphanedSites = $allwebs.Databases.Database.site | ?{$_.InsiteMap -match "false"}
#$allwebs.OuterXML
$OrphanedSites | ft Id, OwnerLogin, InnerXML -AutoSize
#Foreach($site in $OrphanedSites) {Write-Host "orphaned site, id=" $site.Id ", Url=" $site.Url ", not in sitemap"}

SiteOrphan löschen

Und mit folgendem Befehl kann man die verwaisten Seiten löschen.
Vorher <ID><SP_Database> und <SQL_Server> anpassen.
(Die Angaben können auch aus der vorher erzeugten XML-Datei entnommen werden.)

Die Befehle vorher unbedingt in einer Testumgebung ausprobieren und vor dem Ausführen eine Sicherung erstellen!

#SiteOrphan delete - verwaiste Seiten löschen.
stsadm -o deletesite -force -SiteID <ID> -databasename <SP_Database> -DatabaseServer <SQL_Server>
# stsadm -o deletesite -force -SiteID <ID> -databasename $allwebs.Databases.Database.Name -DatabaseServer $allwebs.Databases.Database.datasource

Danach sollte die Erfolgsmeldung erscheinen:

Der Vorgang wurde erfolgreich abgeschlossen.

Letzter Test

Sollte keine „SiteOrphan“ liefern (die Ausgabe bleibt leer)

# Alle verwaisten Seiten anzeigen
[xml]$allwebs = stsadm -o enumallwebs -databasename <SP_Database>
$OrphanedSites = $allwebs.Databases.Database.site | ?{$_.InsiteMap -match "false"}
#$allwebs.OuterXML
$OrphanedSites | ft Id, OwnerLogin, InnerXML -AutoSize


# Datenbanken auf verwaiste Einräge testen
Get-SPContentDatabase | Test-SPContentDatabase -ShowLocation | ft -Auto

Alternative: DB trennen und anfügen

Diese Lösung ist wohl möglich, wurde aber nicht ausprobiert.

Links

  1. Eric Fang’s SharePoint Boat: PowerShell to remove „SiteOrphan“
  2. sharepoint.stackexchange.com: Removing orphaned sites
  3. blogs.msdn.microsoft.com: Orphaned Host Header Site Collections
  4. http://sharepoint-mattharmon.blogspot.de: Deleting Orphaned Sites From SharePoint Content Database
  5. social.technet.microsoft.com: orphaned site collection in sharepoint
  6. sharepointdiary.com: Force Delete Corrupted Site Collections using PowerShell
  7. http://krossfarm.com: Deleting the Orphan Sites in the Sharepoint, 0x80070003

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert