SharePoint Backup / Restore ohne stsadm

7

Aufgrund von Problemen bei der Wiederherstellung von Websites / Websitesammlungen mit stsadm (unsere aus Workflows generierten Aufgaben wurden nicht wiederhergestellt) haben wir einen anderen Weg für die Sicherung / Wiederherstellung eingeschlagen. Wir planen eine größere Anpassung unserer SP-Site und möchten ein Backup erstellen, damit wir ein Rollback durchführen können, falls die Installation fehlschlägt. In unserer Systemtestumgebung (nicht in der Produktionsumgebung) haben wir die 12-Struktur, die virtuellen Verzeichnisse, auf die der IIS auf SharePoint verweist, und die SharePoint-Datenbanken in SQL gesichert (mithilfe von SQL Server für die Datenbank-Sicherungen).
Wir haben benutzerdefinierte Ereignishandler und Workflows, die mit Visual Studio erstellt wurden, und stellen die DLLs als Version 2 (signiert und versioniert in Visual Studio) im GAC bereit. Wenn wir also bereitstellen, enthält der GAC zwei Versionen der Workflows - Version 1 und Version 2. Während der Bereitstellung verwenden wir SP stsadm-Funktionen, um die WFs zu installieren / zu aktivieren. Wir gehen auch zu jeder Bibliothek und fügen die neuen WFs der Version 2 hinzu. Dies setzt die WFs der Version 1 automatisch auf "Nicht zulassen" neuer Instanzen (was wir wollen) und die Version 2 als aktiv - bisher perfekt.

Wenn wir die Installation abgeschlossen haben, gehen wir von einem Fehler aus und versuchen, auf denselben Computern wiederherzustellen (SharePoint auf einem Server, SQL auf einem anderen). Wir beginnen mit der Deinstallation der WFs der Version 2 vom GAC, setzen IIS zurück (um den Cache dieser WF-DLLs der Version 2 zu löschen), stellen die Ordner mit 12 Hive- und virtuellen Verzeichnissen wieder her und stellen dann die SQL-Datenbank wieder her. Dies ist alles genauso manuell wie Sie es lesen - kein stsadm hier. Alles scheint nach unserer Wiederherstellung zu funktionieren, es scheint, dass die Wiederherstellung erfolgreich war - die Modifikationen, die wir während der Installation an Spaltennamen, Datenänderungen usw. vorgenommen haben, werden alle auf den ursprünglichen Zustand vor der Installation zurückgesetzt. Mit einer Ausnahme. Wenn wir einen Workflow ausführen, schlägt dieser immer fehl und die Protokolle in der 12-Struktur zeigen an, dass die WF immer noch versucht, die Version 2 der DLL zu verwenden (Fehler System.IO-Datei nicht gefunden).

Danke, Kevin


quelle
1
Update - Ich bin der festen Überzeugung, dass die SP Config-Datenbank nicht in der von uns versuchten Weise wiederhergestellt werden kann. Sie funktioniert einfach nicht. Wir verwenden immer noch die RTM-Version und es wurde uns auch mitgeteilt, dass die Patches und Hotfixes für SP2007 mehr als 50 Fixes für die Sicherung / Wiederherstellung enthalten. Wir müssen ein Upgrade durchführen. Dies würde unser Problem erklären, dass stsadm die aus unserem Workflow generierten Aufgaben nicht wiederherstellt. Wir schauen uns das AvePoint-Produkt DocAve Backup and Recovery an, um unser Backup durchzuführen. Wird erneut posten, wenn es erfolgreich ist. Kevin
1
Die Wiederherstellung der Konfigurationsdatenbank wird nicht unterstützt. Die "Wiederherstellungsmethode" zum Wiederherstellen des Inhalts besteht darin, eine neue Farm zu erstellen und die Werte entsprechend der neuen Umgebung festzulegen.
Shufler

Antworten:

1

Kevin,

Wenn ich Ihre Arbeitsreihenfolge richtig verstehe, habe ich eine große Frage: Stellen Sie Inhaltsdatenbanken wieder her, lassen aber die Farmkonfigurationsdatenbank (und andere Datenbanken wie SSP-Datenbanken) während Ihrer Wiederherstellung intakt? Wenn die Antwort "Ja" lautet, vermute ich, dass SharePoint eine Anpassung auslöst, da Ihre Konfigurationsdatenbank weiterhin einen Verweis auf Version 2 Ihres Workflows enthält. Ich vermute, dass Folgendes passiert.

Wenn Sie ein Feature in Ihrer SharePoint-Farm installieren, wird die SPFarm.FeatureDefinitions- Auflistung (die in der Farmkonfigurationsdatenbank verwaltet wird) aktualisiert, um das widerzuspiegeln, was Sie hinzugefügt haben. Dies umfasst alle Standardinformationen, die Ihr Feature enthalten soll: Name, Bereich, ID, Version usw. Außerdem werden unter anderem FeatureReceiver-Assembly-Informationen und ein RootDirectory- Wert verwaltet. Die RootDirectory- Eigenschaft verweist auf den Ordner in der 12- Struktur , in dem sich das Feature-Manifest für das Feature befindet.

Wenn Sie Ihre v2-Workflow-Funktion zur Farm hinzufügen und aktivieren, wird die Konfigurationsdatenbank aktualisiert. Selbst wenn Sie eine Workflow-Version Ihrer Inhaltsdatenbank vor Version 2 wiederherstellen, sucht die Farm aufgrund der Funktionszuordnung, die auf der Ebene der Konfigurationsdatenbank verwaltet wird, nach Version 2 Ihres Workflows. Wenn der v2-Funktionsordner noch im 12-Hive vorhanden ist und seine Manifest auf die v2-Assembly im GAC verweist, ist es leicht zu erkennen, wo Probleme auftreten können.

Wenn Ihr Workflow-Feature einen FeatureReceiver nutzt, werden diese Informationen gleichzeitig (in der Konfigurationsdatenbank) in der ReceiverAssembly- Eigenschaft der FeatureDefinitions- Auflistung gespeichert , wenn das Feature installiert wurde.

Wenn ich mich irre und Sie tatsächlich Ihre gesamte Farm (einschließlich der Konfigurationsdatenbank) direkt wiederherstellen, gilt das, was ich geschrieben habe, nicht. In diesem Fall würde ich mich auch ein bisschen am Kopf kratzen. :-)

Ich hoffe das hilft!

Sean P. McDonough
quelle
1
Sean, danke für die Antwort. Wir haben es überprüft und sichern alle SharePoint-Datenbanken - Inhalt, Konfiguration, alle. Wir verwenden die SQL-Sicherung und stellen sie dann mit "Überschreiben" wieder her. Alle DB-Berichte sind zu 100% vollständig, keine Fehler. Wir wissen also immer noch nicht, woher die Referenz für die v2-Assembly stammt.
Wenn Sie Sichern der Datenbanken und Dateisystem zuerst (12-Nest + inetpub Ordner), die Installation und Funktion bereitstellen , nachdem das, und dann Referenzen sah nach einem Dateisystem + DB wiederherstellen ... Ich denke , ich bin ratlos . Die einzigen anderen OOTB-Referenzen wären Suchindexinformationen, aber das erklärt (für mich jedenfalls) nicht, wo sich die Assemblyreferenzen befinden. Sie könnten den Kompilierungsbereich von ASP.NET JIT / temp explizit für ein gutes Maß ausgeben, aber es fällt mir schwer zu glauben, dass dies im Spiel ist. Wenn Sie zusätzliche Einblicke erhalten, posten Sie bitte. Ich bin sehr interessiert!
Sean P. McDonough
0

Könnten Sie versuchen, die Workflow-Bindungen nach Abschluss der Installation aus den Listen zu entfernen? Löschen Sie also zuerst alle Workflow-Zuordnungen aus der Liste, entfernen Sie dann die V2-DLLs aus dem GAC, stellen Sie die DLLs erneut bereit und ordnen Sie die Workflows erneut zu, um dies sicherzustellen Alle verbleibenden Verweise auf die Workflows werden entfernt (sowohl von der Inhaltsdatenbank als auch von der Konfigurationsdatenbank) und zwingen den Sharepoint, die Workflowzuordnungen neu zu binden / neu zu konfigurieren.

PS Es ist SEHR seltsam, dass die Workflow-bezogenen Aufgaben nicht wiederhergestellt werden. Sie sind nichts anderes als Inhalt und sollten sich in der Inhaltsdatenbank befinden. Ich denke, die Workflow-Aufgaben sind an einen Workflow gebunden, der nicht korrekt wiederhergestellt wird (da beide Workflow-Zuordnungen gespeichert sind im Inhalt db und in der config db ...). Wenn die Wiederherstellung stattfindet, werden die Workflows grundsätzlich neu initialisiert, erhalten eine neue GUID usw. Für Sharepoint scheint dies ein neuer Workflow zu sein, sodass die Aufgaben, die sich auf den alten Workflow beziehen, nicht mehr gebunden werden können.

Ich schlage vor, Sie vertiefen sich in das eigentliche Problem, anstatt eine benutzerdefinierte Lösung zu erstellen.

Weitere Informationen zu Workflow-bezogenen Wiederherstellungs- / Verpackungsproblemen und zum tatsächlichen Speichern / Erstellen eines Workflows finden Sie auf dieser Website und in diesem Artikel .

Colin Dekker
quelle
1
Hallo Colin, wenn wir das tun, was Sie in Ihrem ersten Absatz vorgeschlagen haben, und alle Workflow-Zuordnungen entfernen, verlieren wir alle Aufgaben, die mit Workflow V1.0 erstellt wurden. Ich kann sehen, wie stsadm möglicherweise neue GUIDs generieren möchte, aber das ist nicht sinnvoll, wenn stsadm eine Sicherung / Wiederherstellung bereitstellt, dann sollte es 100% wiederherstellen. Unsere Methode scheint diese Möglichkeit auszuschließen, indem wir alle Datenbanken und vermutlich alle Assoziationen sichern. Ich weiß nicht, warum nach unserem Wiederherstellungsprozess, auf den ich beschrieben habe, auf V2 des Workflows verwiesen wird.
0

Ich habe es nie benutzt (nicht einmal ein Sharepoint-Typ), aber das könnte für Sie funktionieren. Stolperte darüber auf CodePlex ...

http://spbackup.codeplex.com/

Amargeson
quelle