Use the GitHub Enterprise Backup Utilities to back up and restore data on your appliance.
The GitHub Enterprise Backup Utilities back up and restore the following data:
- Git repository data
- generated GitHub Pages sites
- ElasticSearch indexes
- MySQL data
- Redis data
- SSH host keys
- public SSH keys for the Management Console
The public SSH keys that you add to the Management Console will be backed up and restored, but all of the other settings will only be backed up—they will not be automatically restored.
The GitHub Enterprise Backup Utilities automatically use one of the following backup strategies, depending on which version of GitHub Enterprise your appliance is running:
|Strategy||Incremental backups?||Requires maintenance mode?||Supported Enterprise versions|
|"rsync"||yes||no||11.10.341 and up|
|"tarball"||no||yes||11.10.300 and up|
We highly recommend that you upgrade your appliance to the latest version so that you can use the "rsync" strategy.
If you are running version 11.10.341 or later of GitHub Enterprise, you can set up scheduled, incremental backups of your appliance without placing it in maintenance mode.
Other advanced features of the "rsync" strategy include:
- Incremental backup of Git repository data. Only changes since the last snapshot are transferred, leading to faster backup runs and lower network bandwidth and machine utilization.
- Multiple backup snapshots with configurable retention periods.
- Efficient snapshot storage. Only data added since the previous snapshot consumes new space on the backup host.
- Backup commands run under the lowest CPU/IO priority on the GitHub appliance, reducing performance impact while backups are in progress.
If you are running version 11.10.300 or later of GitHub Enterprise, you can back up your appliance with a single command. Note that you must put your appliance in maintenance mode during every backup, which will generate a tar archive of all the data on your appliance. The time required to generate a tar archive will increase linearly with the amount of Git repository data stored on your appliance, and could take several hours.
The "tarball" strategy also lets you keep multiple backup snapshots with configurable retention periods.