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 zu einem Ziel wiederhergestellt werden, auf dem 3.17.x, 3.18.x oder 3.19.x ausgeführt wird.
- 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](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode). -
**Überprüfen Sie den Zugriff** auf den Sicherungsspeicher, der die Momentaufnahme enthält. -
**Halte beeinträchtigende Dienste an**. Stelle bei Verwendung von Hochverfügbarkeit sicher, dass die Replikation beendet 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](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/restoring-with-github-actions-enabled).
Starten des Wiederherstellungsvorgangs
Wiederherstellen aus einer Momentaufnahme:
-
Stelle eine SSH-Verbindung mit der Zielinstanz als
admin-Benutzer her. -
Führen Sie einen der folgenden Befehle aus:
-
Wiederherstellen der neuesten Momentaufnahme:
ghe-restore -
Stelle eine bestimmte Momentaufnahme wieder her. Ersetze
<SNAPSHOT_TIMESTAMP>durch den Zeitstempel der Momentaufnahme, die du wiederherstellen möchtest (z. B.YYYYMMDDTHHMMSS).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. -
**Wenn Hochverfügbarkeit (HA) genutzt wird**, führe zuerst die Wiederherstellung auf einer eigenständigen Instanz durch. Konfiguriere dann HA neu.- Wenn Synchronisierungsprobleme auftreten (z. B. veraltete UUIDs in
ghe-repl-status), führeghe-repl-teardownaus. - Wende dich an GitHub-Support, um Hilfe zu erhalten.
- Wenn Synchronisierungsprobleme auftreten (z. B. veraltete UUIDs in
-
**Registriere selbstgehostete GitHub Actions-Runner erneut**, da die Wiederherstellung vorherige Token ungültig macht.
Rotation und Aufbewahrung von Momentaufnahmen
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 (
YYYYMMDDTHHMMSS) 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 `/var/log/github-backup/restore-verbose-[timestamp].log` auf Fehler.
Wenn Verwaltungskonsole einen generischen Fehler anzeigt, stelle eine SSH-Verbindung mit der Instanz her, um auf die ausführlichen Protokolle zuzugreifen.