Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Konfigurieren von Sicherungen auf deiner Appliance

Im Rahmen eines Notfallwiederherstellungsplans kannst du Produktionsdaten auf your GitHub Enterprise Server instance schützen, indem du automatisierte Sicherungen konfigurierst.

Informationen zu GitHub Enterprise Server Backup Utilities

GitHub Enterprise Server Backup Utilities ist ein Sicherungssystem, das du auf einem separaten Host installierst, der in regelmäßigen Intervallen über eine sichere SSH-Netzwerkverbindung Sicherungsmomentaufnahmen von your GitHub Enterprise Server instance erstellt. Mit einem Snapshot kannst du eine vorhandene GitHub Enterprise Server-Instanz in einem vorherigen Zustand auf dem Backup-Host wiederherstellen.

Nur die seit dem letzten Snapshot hinzugefügten Daten werden über das Netzwerk übertragen und belegen zusätzlichen physischen Speicherplatz. Zum Minimieren der Auswirkung auf die Leistung werden Backups online unter der niedrigsten CPU-/E/A-Priorität durchgeführt. Zum Durchführen eines Backups muss kein Wartungsfenster geplant werden.

Hauptversionen und Versionsnummern für GitHub Enterprise Server Backup Utilities sind auf Featurereleases von GitHub Enterprise Server abgestimmt. Wir unterstützen die vier neuesten Versionen beider Produkte. Weitere Informationen findest du unter GitHub Enterprise Server releases.

Ausführlichere Informationen zu Features, Anforderungen und erweiterter Verwendung findest du in der README-Datei zu GitHub Enterprise Server Backup Utilities in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

Voraussetzungen

Du musst über ein von your GitHub Enterprise Server instance getrenntes Linux- oder Unix-Hostsystem verfügen, um GitHub Enterprise Server Backup Utilities verwenden zu können.

Du kannst GitHub Enterprise Server Backup Utilities auch zur langfristigen dauerhaften Speicherung von kritischen Daten in eine vorhandene Umgebung integrieren.

Der Sicherungshost und your GitHub Enterprise Server instance sollten geografisch voneinander getrennt sein. Dadurch wird gewährleistet, dass Backups wiederhergestellt werden können, falls am Hauptstandort eine schwere Katastrophe oder ein Netzwerkausfall auftritt.

Die Anforderungen an den physischen Speicher variieren basierend auf der Git-Repository-Festplattennutzung und den erwarteten Wachstumsmustern:

HardwareEmpfehlung
vCPUs2
Memory2 GB
StorageDas Fünffache des zugeordneten Speichers der primären Instanz

Entsprechend deiner Nutzung, beispielsweise in Bezug auf die Benutzeraktivität und die ausgewählten Integrationen, sind möglicherweise mehr Ressourcen erforderlich.

Ausführlichere Informationen findest du unter GitHub Enterprise Server Backup Utilities-Anforderungen in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

GitHub Enterprise Server Backup Utilities installieren

Zum Installieren von GitHub Enterprise Server Backup Utilities auf deinem Sicherungshost empfehlen wir, das Git-Repository des Projekts zu klonen. Mit diesem Ansatz kannst du neue Versionen direkt mithilfe von Git abrufen und deine vorhandene Sicherungskonfigurationsdatei (backup.config) beibehalten, wenn du eine neue Version installierst.

Falls der Hostcomputer nicht auf das Internet zugreifen kann, kannst du die einzelnen GitHub Enterprise Server Backup Utilities-Releases ansonsten auch als komprimiertes Archiv herunterladen und dann den Inhalt extrahieren und installieren. Weitere Informationen findest du unter Erste Schritte in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

Sicherungsmomentaufnahmen werden in den Datenträgerpfad geschrieben, der von der GHE_DATA_DIR-Datenverzeichnisvariable in deiner backup.config-Datei festgelegt wurde. Momentaufnahmen müssen auf einem Dateisystem gespeichert werden, das symbolische und feste Links unterstützt.

Hinweis: Es wird empfohlen, sicherzustellen, die Momentaufnahmen nicht in einem Unterverzeichnis des GitHub Enterprise Server Backup Utilities-Installationsverzeichnis zu speichern, um zu vermeiden, dass das Datenverzeichnis beim Aktualisieren von GitHub Enterprise Server Backup Utilities-Versionen versehentlich überschrieben wird.

  1. Führe den folgenden Befehl aus, um das GitHub Enterprise Server Backup Utilities-Projektrepository in ein lokales Verzeichnis auf deinem Sicherungshost zu klonen.

    $ git clone https://github.com/github/backup-utils.git /path/to/target/directory/backup-utils
    
  2. Führe den folgenden Befehl aus, um in das lokale Repositoryverzeichnis zu wechseln.

    cd backup-utils
    
  3. Zum Aktualisieren auf die neueste Projektreleaseversion verwende den stable-Branch, indem du den git checkout stable-Befehl ausführst.

    git checkout stable

    Falls du eine bestimmte Projektversion verwenden möchtest, kannst du alternativ den folgenden Befehl ausführen, wobei du X.Y.Z durch die gewünschte Releaseversion ersetzt.

    $ git checkout vX.Y.Z
  4. Führe den folgenden Befehl aus, um die enthaltene backup.config-example-Datei in backup.config zu kopieren.

    cp backup.config-example backup.config
  5. Zum Anpassen deiner Konfiguration bearbeite backup.config in einem Text-Editor.

    1. Lege den GHE_HOSTNAME-Wert auf den Hostnamen oder die IP-Adresse deiner primären GitHub Enterprise Server-Instanz fest.

      Hinweis: Wenn your GitHub Enterprise Server instance als Cluster oder in einer Hochverfügbarkeitskonfiguration mithilfe eines Lastenausgleichs bereitgestellt wird, kann GHE_HOSTNAME der Hostname des Lastenausgleichs sein, solange er (auf Port 122) SSH-Zugriff auf your GitHub Enterprise Server instance zulässt.

      Um sicherzustellen, dass eine wiederhergestellte Appliance sofort verfügbar ist, solltest du Backups durchführen, die selbst in einer Geo-Replikationskonfiguration auf die primäre Instanz abzielen.

    2. Lege den GHE_DATA_DIR-Wert auf den Dateisystempfad fest, unter dem du Backup-Momentaufnahmen speichern möchtest. Es wird empfohlen, einen Speicherort auszuwählen, der sich in demselben Dateisystem wie dein Sicherheitshost befindet, aber außerhalb des Pfads, in den du das Git-Repository in Schritt 1 geklont hast.

  6. Um deinem Sicherungshost Zugriff auf deine Instanz zu gewähren, öffne die Einstellungsseite deiner primären Instanz unter http(s)://HOSTNAME/setup/settings, und füge den SSH-Schlüssel des Sicherungshosts der Liste autorisierter SSH-Schlüssel hinzu. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).

  7. Überprüfe mit dem ghe-host-check-Befehl die SSH-Verbindung mit your GitHub Enterprise Server instance auf dem Sicherungshost.

    ./bin/ghe-host-check
  8. Führe den folgenden Befehl aus, um eine erste vollständige Sicherung zu erstellen.

    ./bin/ghe-backup

Weitere Informationen zur erweiterten Verwendung findest du in der README-Datei zu GitHub Enterprise Server Backup Utilities in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

Aktualisieren von GitHub Enterprise Server Backup Utilities

Wenn du GitHub Enterprise Server Backup Utilities aktualisierst, musst du eine Version auswählen, die mit deiner aktuellen Version von GitHub Enterprise Server funktioniert. Deine Installation von GitHub Enterprise Server Backup Utilities muss mindestens der Version von your GitHub Enterprise Server instance entsprechen und darf nicht älter als zwei Versionen davor sein. Weitere Informationen findest du unter Versionsanforderungen für GitHub Enterprise Server in der GitHub Enterprise Server Backup Utilities-Projektdokumentation. Du kannst GitHub Enterprise Server Backup Utilities in einem Git-Repository aktualisieren, indem du die neuesten Änderungen abrufst und auscheckst.

Falls du kein Git-Repository für deine Installation verwendest, kannst du ansonsten auch ein neues Archiv extrahieren oder deinen Ansatz ändern, um stattdessen ein Git-Repository zu verwenden.

Überprüfen des Installationstyps

Du kannst die Installationsmethode für GitHub Enterprise Server Backup Utilities überprüfen und die beste Möglichkeit für die Aktualisierung deiner Installation ermitteln.

  1. Navigiere auf deinem Sicherungshost zu deinem GitHub Enterprise Server Backup Utilities-Verzeichnis, gewöhnlich backup-utils.

  2. Führe den folgenden Befehl aus, um zu überprüfen, ob ein gültiges Arbeitsverzeichnis in einem Git-Repository vorhanden ist.

    git rev-parse --is-inside-work-tree
    

    Wenn die Ausgabe true lautet, wurde GitHub Enterprise Server Backup Utilities durch Klonen des Git-Repositorys des Projekts installiert. Wenn die Ausgabe fatal: not a git repository (or any of the parent directories) lautet, wurde GitHub Enterprise Server Backup Utilities wahrscheinlich durch Extrahieren einer komprimierten Archivdatei installiert. Wenn sich deine Installation in einem Git-Repository befindet, kannst du die neueste Version mithilfe von Git installieren. Wenn die Installation aus einer komprimierten Archivdatei stammt, kannst du entweder die neueste Version herunterladen und extrahieren oder GitHub Enterprise Server Backup Utilities mithilfe von Git neu installieren, um zukünftige Upgrades zu vereinfachen.

Aktualisieren einer Installation in einem Git-Repository

  1. Navigiere auf deinem Sicherungshost zu deinem GitHub Enterprise Server Backup Utilities-Verzeichnis, gewöhnlich backup-utils.

    Hinweis: Es wird empfohlen, vor der Aktualisierung von GitHub Enterprise Server Backup Utilities eine Kopie der vorhandenen backup.config-Datei an einem temporären Speicherort zu erstellen (z. B. $HOME/backup.config).

  2. Führe den git fetch-Befehl aus, um die neuesten Projektupdates herunterzuladen.

    git fetch
  3. Zum Aktualisieren auf die neueste Projektreleaseversion verwende den stable-Branch, indem du den git checkout stable-Befehl ausführst.

    git checkout stable

    Falls du eine bestimmte Projektversion verwenden möchtest, kannst du alternativ den folgenden Befehl ausführen, wobei du X.Y.Z durch die gewünschte Releaseversion ersetzt.

    $ git checkout vX.Y.Z
    1. Führe den folgenden Befehl aus, um zu überprüfen, ob das Upgrade erfolgreich war.
    ./bin/ghe-backup --version
  4. Führe den folgenden Befehl aus, um die SSH-Konnektivität zwischen deinen konfigurierten GitHub Enterprise Server-Instanzen zu überprüfen.

    ./bin/ghe-host-check

Aktualisieren mit Git statt mit komprimierten Archiven

Wenn dein Sicherungshost über eine Internetverbindung verfügt und du zuvor ein komprimiertes Archiv (.tar.gz) zum Installieren oder Aktualisieren von GitHub Enterprise Server Backup Utilities verwendet hast, empfehlen wir, für deine Installation stattdessen ein Git-Repository zu verwenden. Das Aktualisieren mit Git ist weniger arbeitsaufwendig, und deine Sicherungskonfiguration wird beibehalten.

  1. Navigiere auf deinem Sicherungshost zu deinem GitHub Enterprise Server Backup Utilities-Verzeichnis, gewöhnlich backup-utils.

  2. Wenn du die vorhandene GitHub Enterprise Server Backup Utilities-Installation sichern möchtest, kopiere die aktuelle backup.config-Datei an einen sicheren Speicherort, z. B. dein Stammverzeichnis.

    $ cp backup.config $HOME/backup.config.saved-$(date +%Y%m%d-%H%M%S)
    
  3. Ändere das lokale Verzeichnis auf deinem Sicherungshost, in dem du das Git-Repository für GitHub Enterprise Server Backup Utilities installieren möchtest.

  4. Führe den folgenden Befehl aus, um das Projektrepository in das Verzeichnis auf deinem Sicherungshost zu klonen.

    git clone https://github.com/github/backup-utils.git
    
  5. Führe den folgenden Befehl aus, um in das geklonte Repository zu wechseln.

    cd backup-utils
    
  6. Zum Aktualisieren auf die neueste Projektreleaseversion verwende den stable-Branch, indem du den git checkout stable-Befehl ausführst.

    git checkout stable

    Falls du eine bestimmte Projektversion verwenden möchtest, kannst du alternativ den folgenden Befehl ausführen, wobei du X.Y.Z durch die gewünschte Releaseversion ersetzt.

    $ git checkout vX.Y.Z
  7. Kopiere die vorhandene Sicherungskonfigurationsdatei in das lokale Repositoryverzeichnis, um deine vorherige Sicherungskonfiguration wiederherzustellen. Ersetze den Pfad im Befehl durch den Speicherort der Datei, die in Schritt 2 gespeichert wurde.

    $ cp PATH/TO/BACKUP/FROM/STEP/2 backup.config
    

    Hinweis: Du kannst auswählen, wo deine Sicherungskonfigurationsdatei nach dem Klonen wiederhergestellt werden soll. Weitere Informationen zum Speicherort von Konfigurationsdateien findest du unter Erste Schritte in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

  8. Um zu bestätigen, dass die Pfade zu Verzeichnissen oder Skripts in deiner Sicherungskonfigurationsdatei richtig sind, überprüfe die Datei in einem Text-Editor.

  9. Führe den folgenden Befehl aus, um zu überprüfen, ob das Upgrade erfolgreich war.

    ./bin/ghe-backup --version
  10. Führe den folgenden Befehl aus, um die SSH-Konnektivität zwischen deinen konfigurierten GitHub Enterprise Server-Instanzen zu überprüfen.

    ./bin/ghe-host-check
  11. Lösche dein altes GitHub Enterprise Server Backup Utilities-Verzeichnis aus Schritt 1 (wo sich die komprimierte Archivinstallation befindet).

Backup planen

Mithilfe des Befehls cron(8) oder eines ähnlichen Diensts zum Planen von Befehlen kannst du regelmäßige Backups auf dem Backup-Host planen. Die konfigurierte Sicherungshäufigkeit schreibt die ungünstigste Recovery Point Objective (RPO) in deinem Wiederherstellungsplan vor. Angenommen, du hast das Backup so geplant, dass es täglich um Mitternacht ausgeführt wird. In diesem Fall könntest du in einem Notfallszenario bis zu 24 Stunden an Daten verlieren. Es wird empfohlen, mit einem stündlichen Backup-Plan zu beginnen. Dadurch wird garantiert, dass schlimmstenfalls maximal eine Stunde an Daten am Hauptstandort vernichtet wird.

Wenn sich Backup-Versuche überschneiden, wird der Befehl ghe-backup mit einer Fehlermeldung abgebrochen. Diese gibt an, dass ein gleichzeitiges Backup vorhanden ist. In diesem Fall wird empfohlen, die Häufigkeit deiner geplanten Sicherungen zu verringern. Weitere Informationen findest du im Abschnitt „Planen von Sicherungen“ der README-Datei zu GitHub Enterprise Server Backup Utilities in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.

Wiederherstellen einer Sicherung

Im Falle eines längeren Ausfalls oder eines Notfalls am Hauptstandort kannst du your GitHub Enterprise Server instance wiederherstellen. Stelle dazu eine andere GitHub Enterprise-Appliance bereit, und führe auf dem Sicherungshost eine Wiederherstellung aus. Du musst der Ziel-GitHub Enterprise-Appliance den SSH-Schlüssel des Backup-Hosts als einen autorisierten SSH-Schlüssel hinzufügen, bevor du eine Appliance wiederherstellst.

Hinweis: Bei der Ausführung von Vorgängen zur Sicherungswiederherstellung auf your GitHub Enterprise Server instance gelten die gleichen Versionsunterstützungsregeln. Du kannst nur Daten wiederherstellen, die maximal zwei Feature-Releases zurückliegen.

Wenn du beispielsweise eine Sicherung von GitHub Enterprise Server 3.0.x durchführst, kannst du die Sicherung in einer Instanz von GitHub Enterprise Server 3.2.x wiederherstellen. Du kannst keine Daten aus einer Sicherung von GitHub Enterprise Server 2.22.x in einer Instanz wiederherstellen, die 3.2.x ausführt, da dadurch drei Versionen übersprungen würden (2.22 auf 3.0 auf 3.1 auf 3.2). Die Wiederherstellung muss zuerst in einer Instanz erfolgen, die 3.1.x ausführt, und dann auf 3.2.x aktualisiert werden.

Führe den Befehl ghe-restore aus, um your GitHub Enterprise Server instance aus der letzten erfolgreichen Momentaufnahme wiederherzustellen.

Hinweis: Stelle vor dem Wiederherstellen einer Sicherung Folgendes sicher:

Beim Ausführen des ghe-restore-Befehls sollte eine Ausgabe wie die folgende angezeigt werden:

$ ghe-restore -c 169.154.1.1
> Checking for leaked keys in the backup snapshot that is being restored ...
> * No leaked keys found
> Connect 169.154.1.1:122 OK (v2.9.0)

> WARNING: All data on GitHub Enterprise appliance 169.154.1.1 (v2.9.0)
>          will be overwritten with data from snapshot 20170329T150710.
> Please verify that this is the correct restore host before continuing.
> Type 'yes' to continue: yes

> Starting restore of 169.154.1.1:122 from snapshot 20170329T150710
# ...output truncated
> Completed restore of 169.154.1.1:122 from snapshot 20170329T150710
> Visit https://169.154.1.1/setup/settings to review appliance configuration.

Optional kannst du zur Validierung der Wiederherstellung eine IP-Ausnahmeliste konfigurieren, um den Zugriff auf eine bestimmte Liste von IP-Adressen zuzulassen. Weitere Informationen findest du unter Überprüfen von Änderungen im Warungsmodus mithilfe der IP-Ausnahmeliste.

Hinweis:

  • Die Netzwerkeinstellungen sind von der Sicherungsmomentaufnahme ausgeschlossen. Du musst das Netzwerk auf der Ziel-GitHub Enterprise Server-Appliance manuell konfigurieren, wie dies für deine Umgebung erforderlich ist.

  • Beim Wiederherstellen auf neue Datenträger auf einer vorhandenen oder leeren GitHub Enterprise Server-Instanz können veraltete UUIDs vorhanden sein, was dazu führt, dass die Git- und/oder Alambic-Replikation als nicht synchronisiert gemeldet wird. Veraltete Servereintrags-IDs können aufgrund eines eingestellten Knotens in einer Hochverfügbarkeitskonfiguration vorhanden sein, der noch in der Anwendungsdatenbank vorhanden ist, aber nicht in der wiederhergestellten Replikationskonfiguration. Zur Behebung können veraltete UUIDs mithilfe von ghe-repl-teardown entfernt werden, sobald die Wiederherstellung abgeschlossen ist und bevor die Replikation gestartet wird. Wende dich in diesem Szenario an GitHub Enterprise Support, um Unterstützung zu erhalten.

Du kannst die folgenden zusätzlichen Optionen mit dem ghe-restore-Befehl verwenden:

  • Das -c-Flag überschreibt die Einstellungen, Zertifikate und Lizenzdaten auf dem Zielhost, selbst wenn es bereits konfiguriert ist. Lass dieses Flag weg, wenn du eine Testinstanz für Testzwecke einrichtest und die vorhandene Konfiguration auf dem Ziel beibehalten möchtest. Weitere Informationen findest du im Abschnitt „Verwenden von Sicherungs- und Wiederherstellungsbefehlen“ der README-Datei zu GitHub Enterprise Server Backup Utilities in der GitHub Enterprise Server Backup Utilities-Projektdokumentation.
  • Mit dem -s-Flag kannst du eine andere Backup-Momentaufnahme auswählen.