# Wiederherstellen aus einer Sicherung

Stellen Sie eine GitHub Enterprise Server Instanz mithilfe einer zuvor erstellten Sicherungsmomentaufnahme wieder her.

Sie können 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.

> \[!WARNING] 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.

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:

1. **Aktiviere den Wartungsmodus** in der Zielinstanz. Siehe [Wartungsmodus aktivieren und planen](/de/enterprise-server@3.20/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode).
2. **Überprüfen Sie den Zugriff** auf den Sicherungsspeicher, der die Momentaufnahme enthält.
3. **Halte beeinträchtigende Dienste an**. Stelle bei Verwendung von Hochverfügbarkeit sicher, dass die Replikation beendet ist.
4. **Vorbereiten auf GitHub Actions** – Wenn diese Option aktiviert ist, stellen Sie sicher, dass die Zielinstanz mit dem richtigen externen Speicher konfiguriert ist. Einzelheiten findest du unter [Wiederherstellen mit aktivierter GitHub Actions](/de/enterprise-server@3.20/admin/backing-up-and-restoring-your-instance/restoring-with-github-actions-enabled).

## Starten des Wiederherstellungsvorgangs

Wiederherstellen aus einer Momentaufnahme:

1. Stelle eine SSH-Verbindung mit der Zielinstanz als `admin`-Benutzer her.

2. Führen Sie einen der folgenden Befehle aus:

   * Wiederherstellen der neuesten Momentaufnahme:

     ```shell
     ghe-restore
     ```

   * Stelle eine bestimmte Momentaufnahme wieder her. Ersetze `<SNAPSHOT_TIMESTAMP>` durch den Zeitstempel der Momentaufnahme, die du wiederherstellen möchtest (z. B. `YYYYMMDDTHHMMSS`).

     ```shell
     ghe-restore -s <SNAPSHOT_TIMESTAMP>
     ```

   * (Optional) Optionales Erzwingen des Überschreibens von Konfigurations-, Zertifikats- und Lizenzdaten

     ```shell
     ghe-restore -c          # Latest snapshot
     ghe-restore -s <SNAPSHOT_TIMESTAMP> -c  # Specific snapshot
     ```

3. **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.

4. **Überprüfe die wiederhergestellte Instanz**, um sicherzustellen, dass alles wie erwartet funktioniert.

5. **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ühre `ghe-repl-teardown` aus.
   * Für Hilfe wenden Sie sich an GitHub-Support.

6. **Registrieren Sie selbstgehostete GitHub Actions Runner** erneut, da bei der Wiederherstellung vorherige Token ungültig werden.

## 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 allgemeinen Fehler anzeigt, melden Sie sich per SSH bei der Instanz an, um auf ausführliche Protokolle zuzugreifen.