# Восстановление из резервной копии

Восстановите GitHub Enterprise Server экземпляр с помощью ранее созданного резервного снимка.

Вы можете восстановить GitHub Enterprise Server экземпляр из резервной копии через командную строку. Служба резервного копирования поддерживает полное восстановление экземпляра, включая данные конфигурации и пользователя.

> \[!WARNING] Восстановление из резервной копии перезаписывает **все существующие данные** в экземпляре. Отменить эту операцию невозможно.

## Требования к версии моментального снимка

Вы можете восстановить моментальный снимок только в том случае, если он находится не более двух версий компонентов за версией целевого экземпляра.

Рассмотрим пример.

* Моментальный снимок версии 3.17 можно восстановить в целевом объекте под управлением 3.17.x, 3.18.x или 3.19.x.
* Невозможно восстановить моментальный снимок 3.17 до 3.20 — это более двух версий впереди.

Вы также не можете восстановить более новую версию до более старой. Например, попытка восстановить снимок 3.18 в экземпляр 3.17 будет неудачной с: `Error: Snapshot can not be restored to an older release of GitHub Enterprise Server.`

## Необходимые условия

Перед восстановлением резервной копии:

1. **Включите режим** обслуживания в целевом экземпляре. См [. раздел AUTOTITLE](/ru/enterprise-server@3.18/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode).
2. **Проверьте доступ к** хранилищу резервных копий, содержащего моментальный снимок.
3. **Приостановка вмешательства служб** — если используется высокий уровень доступности (HA), убедитесь, что репликация остановлена.
4. **Готовьтесь к GitHub Actions** — если включено, убедитесь, что целевой экземпляр настроен с правильным внешним хранилищем. Дополнительные сведения см. в разделе [Восстановление с включённым GitHub Actions](/ru/enterprise-server@3.18/admin/backing-up-and-restoring-your-instance/restoring-with-github-actions-enabled) .

## Запуск операции восстановления

Восстановление из моментального снимка:

1. SSH в целевом экземпляре `admin` в качестве пользователя.

2. Выполните одну из следующих команд:

   * Восстановите последний моментальный снимок:

     ```shell
     ghe-restore
     ```

   * Восстановление определенного моментального снимка. Замените `<SNAPSHOT_TIMESTAMP>` метку времени моментального снимка, который требуется восстановить (например, `YYYYMMDDTHHMMSS`).

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

   * (Необязательно) Принудительное перезаписи данных конфигурации, сертификатов и лицензий:

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

3. **Завершить в Консоль управления:**

   * Просмотрите все параметры конфигурации (сеть, проверку подлинности, TLS и т. д.).
   * Нажмите кнопку **"Сохранить параметры"** , чтобы применить их и запустить службы.
   * Экземпляр не полностью работает до завершения этого шага.

4. **Проверьте восстановленный экземпляр** , чтобы убедиться, что все работает должным образом.

5. **При использовании высокой доступности** сначала завершите восстановление в автономном экземпляре. Затем перенастройка высокого уровня доступности.

   * При возникновении проблем синхронизации (например, устаревших UUID) `ghe-repl-status`выполните команду `ghe-repl-teardown`.
   * За помощью обращайтесь Служба поддержки GitHubк .

6. **Заново регистрируйте самостоятельные GitHub Actions роневы**, так как восстановление аннулирует предыдущие токены.

## Смена моментальных снимков и хранение

Моментальные снимки автоматически удаляются на основе параметров хранения:

* Хранятся только последние n моментальные снимки (как настроено).
* Старые моментальные снимки удаляются после каждой успешной резервной копии.
* Моментальные снимки называются с помощью меток времени (`YYYYMMDDTHHMMSS`) для простой ссылки.
* Жесткие ссылки используются для эффективного хранения без изменений файлов при сохранении полной возможности восстановления.

## Устранение неполадок восстановления

Если операция восстановления завершается ошибкой, проверьте:

* **Завершение** резервного копирования— убедитесь, что моментальный снимок не был прерван или поврежден.
* **Доступ к** хранилищу— убедитесь, что экземпляр может подключать и считывать том резервного копирования.
* **Несоответствие** версий— убедитесь, что версия моментального снимка совместима с целевым экземпляром.
* **Журналы** — проверка `/var/log/github-backup/restore-verbose-[timestamp].log` ошибок.

Если Консоль управления показывает общий сбой, подключите SSH к экземпляру для доступа к подробным логам.