Du kannst eine GitHub Enterprise Server-Instanz mithilfe der Befehlszeile aus einer Sicherung wiederherstellen. Der Sicherungsdienst unterstützt die vollständige Wiederherstellung von Instanzen, einschließlich der Konfiguration und Benutzerdaten.
Warnung
Durch die Wiederherstellung aus einer Sicherung werden alle vorhandenen Daten in deiner Instanz überschrieben. Dieser Vorgang kann nicht rückgängig gemacht werden.
Versionsanforderungen für Momentaufnahmen
Du kannst eine Momentaufnahme nur wiederherstellen, wenn sie aus maximal zwei Featureversionen hinter der Version der Zielinstanz stammt.
Zum Beispiel:
- Eine Momentaufnahme aus Version 3.17 kann auf einem Ziel mit 3.17.x, 3.18.x oder 3.19.x wiederhergestellt werden.
- Du kannst eine 3.17-Momentaufnahme nicht in Version 3.20 wiederherstellen, da diese mehr als zwei Versionen voraus ist.
Du kannst auch nicht von einer neueren Version auf eine ältere Version wiederherstellen. Wenn Sie z. B. versuchen, eine 3.18-Momentaufnahme in eine 3.17-Instanz wiederherzustellen, wird dies mit folgendem Fehler fehlschlagen: Error: Snapshot can not be restored to an older release of GitHub Enterprise Server.
Voraussetzungen
Vor dem Wiederherstellen einer Sicherung:
- Aktiviere den Wartungsmodus in der Zielinstanz. Weitere Informationen findest du unter AUTOTITLE.
- Bestätige den Zugriffs auf den Sicherungsspeicher, der die Momentaufnahme enthält.
- Pause beeinträchtigende Dienste — falls Hochverfügbarkeit (HA) verwendet wird, stellen Sie sicher, dass die Replikation gestoppt ist.
- Bereite GitHub Actions vor. Wenn aktiviert, musst du sicherstellen, dass die Zielinstanz mit dem richtigen externen Speicher konfiguriert ist. Einzelheiten findest du unter AUTOTITLE.
Starten des Wiederherstellungsvorgangs
Wiederherstellen aus einer Momentaufnahme:
-
Stelle als Benutzer über SSH eine Verbindung mit der Zielinstanz her.
-
Führen Sie einen der folgenden Befehle aus:
-
Wiederherstellen der neuesten Momentaufnahme:
ghe-restore -
Stelle eine bestimmte Momentaufnahme wieder her. Ersetze durch den Zeitstempel der Momentaufnahme, die du wiederherstellen möchtest (z. B. ).
ghe-restore -s <SNAPSHOT_TIMESTAMP> -
(Optional) Optionales Erzwingen des Überschreibens von Konfigurations-, Zertifikats- und Lizenzdaten
ghe-restore -c # Latest snapshot ghe-restore -s <SNAPSHOT_TIMESTAMP> -c # Specific snapshot
-
-
Abschließen in Verwaltungskonsole:
- Überprüfe alle Konfigurationseinstellungen (Netzwerk, Authentifizierung, TLS usw.).
- Klicke auf Save settings, um sie anzuwenden und die Dienste zu starten.
- Die Instanz ist erst vollständig funktionsfähig, wenn dieser Schritt abgeschlossen ist.
-
Überprüfe die wiederhergestellte Instanz, um sicherzustellen, dass alles wie erwartet funktioniert.
-
Führe bei Verwendung von Hochverfügbarkeit zuerst die Wiederherstellung für eine eigenständige Instanz aus. Konfiguriere dann HA neu.
- Wenn Synchronisierungsprobleme auftreten (z. B. veraltete UUIDs in ), führe aus.
- Wende dich an GitHub-Support, um Hilfe zu erhalten.
-
Registriere selbstgehostete GitHub Actions-Runner erneut, da die Wiederherstellung die vorherigen Token ungültig macht.
Momentaufnahmerotation und -aufbewahrung
Momentaufnahmen werden basierend auf deinen Aufbewahrungseinstellungen automatisch bereinigt:
- Nur die neuesten n Momentaufnahmen werden beibehalten (wie konfiguriert).
- Ältere Momentaufnahmen werden nach jeder erfolgreichen Sicherung gelöscht.
- Momentaufnahmen werden mithilfe von Zeitstempeln () benannt, um sie einfach zuordnen zu können.
- Hardlinks werden verwendet, um unveränderte Dateien effizient zu speichern und gleichzeitig die vollständige Wiederherstellbarkeit beizubehalten.
Wiederherstellungsfehler beheben
Wenn ein Wiederherstellungsvorgang fehlschlägt, überprüfe Folgendes:
- Vollständigkeit der Sicherung: Stelle sicher, dass die Momentaufnahme nicht unterbrochen oder beschädigt wurde.
- Speicherzugriff: Überprüfe, ob die Instanz das Sicherungsvolume bereitstellen und lesen kann.
- Versionskonflikt: Vergewissere dich, dass die Momentaufnahmeversion mit der Zielinstanz kompatibel ist.
- Protokolle: Überprüfe auf Fehler.
Wenn Verwaltungskonsole einen generischen Fehler anzeigt, stelle eine SSH-Verbindung mit der Instanz her, um auf die ausführlichen Protokolle zuzugreifen.