Skip to main content

백업에서 복원

이전에 만든 백업 스냅샷을 사용하여 GitHub Enterprise Server 인스턴스를 복원합니다.

명령줄을 사용하여 백업에서 GitHub Enterprise Server 인스턴스를 복원할 수 있습니다. 백업 서비스는 구성 및 사용자 데이터를 포함하여 전체 인스턴스 복원을 지원합니다.

경고

백업에서 복원하면 인스턴스에 있는 모든 기존 데이터를 덮어쓰게 됩니다. 이 작업은 실행 취소할 수 없습니다.

스냅샷 버전 요구 사항

대상 인스턴스의 버전보다 뒤떨어진 최대 두 개의 기능 버전에서 나온 스냅샷만 복원할 수 있습니다.

예시:

  • 버전 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. 대상 인스턴스에서 유지 관리 모드 활성화를 수행합니다. 유지 관리 모드 사용 설정 및 예약을(를) 참조하세요.
  2. 스냅샷이 포함된 백업 스토리지에 대한 액세스를 확인합니다.
  3.        **방해가 되는 서비스를 일시 중지하세요.** HA(고가용성)를 사용하는 경우, 복제가 중지되어 있는지 확인합니다.
    
  4.        **GitHub Actions를 준비합니다.** 활성화된 경우 대상 인스턴스가 올바른 외부 스토리지로 구성되어 있는지 확인합니다. 자세한 내용을 보려면 [AUTOTITLE](/admin/backing-up-and-restoring-your-instance/backup-service-for-github-enterprise-server/restoring-with-github-actions-enabled)(을)를 참조하세요.
    

복원 작업 시작

스냅샷에서 복원하려면:

  1.        `admin` 사용자로 대상 인스턴스에 SSH를 실행합니다.
    
  2. 다음 명령 중 하나를 실행합니다.

    • 최신 스냅샷 복원:

      ghe-restore
      
    • 특정 스냅샷을 복원합니다. <SNAPSHOT_TIMESTAMP>를 복원하려는 스냅샷의 타임스탬프로 바꾸세요(예: YYYYMMDDTHHMMSS).

      ghe-restore -s <SNAPSHOT_TIMESTAMP>
      
    • (선택 사항) 구성, 인증서, 라이선스 데이터를 강제로 덮어씁니다.

      ghe-restore -c          # Latest snapshot
      ghe-restore -s <SNAPSHOT_TIMESTAMP> -c  # Specific snapshot
      
  3.        **관리 콘솔에서 마무리:**
    
    • 모든 구성 설정(네트워크, 인증, TLS 등)을 검토합니다.
    •     **Save settings**를 클릭하여 이 설정을 적용하고 서비스를 시작합니다.
      
    • 이 단계가 완료될 때까지 인스턴스는 완전히 작동하지 않습니다.
  4.        **복원된 인스턴스의 유효성을 검사**하여 모든 것이 예상대로 작동하는지 확인합니다.
    
  5.        **HA를 사용하는 경우**, 먼저 독립 실행형 인스턴스에서 복원을 완료하세요. 그런 다음 HA를 다시 구성합니다.
    
    • 동기화 문제(예: ghe-repl-status의 부실 UUID)가 발생하면 ghe-repl-teardown을 실행합니다.
    • 도움이 필요하면 GitHub 지원에 문의하세요.
  6. 복원 작업으로 인해 이전 토큰이 무효화되므로 자체 호스팅 GitHub Actions 러너를 다시 등록하세요.

스냅샷 순환 및 보존

스냅샷은 보존 설정에 따라 자동으로 정리됩니다.

  • 가장 최근의 n개 스냅샷만 유지됩니다(구성된 대로).
  • 백업이 성공적으로 완료될 때마다 이전 스냅샷은 삭제됩니다.
  • 스냅샷은 쉽게 참조할 수 있도록 타임스탬프(YYYYMMDDTHHMMSS)를 사용하여 이름이 지정됩니다.
  • 하드 링크는 전체 복원 기능을 유지하는 동시에 변경되지 않은 파일을 효율적으로 저장하는 데 사용됩니다.

복원 실패 문제 해결

복원 작업이 실패하면 다음을 확인하세요.

  •         **백업 완전성** – 스냅샷이 중단되거나 손상되지 않았는지 확인합니다.
    
  •         **스토리지 액세스** – 인스턴스가 백업 볼륨을 탑재하고 읽을 수 있는지 확인합니다.
    
  •         **버전 불일치** – 스냅샷 버전이 대상 인스턴스와 호환되는지 확인합니다.
    
  •         **로그** – `/var/log/github-backup/restore-verbose-[timestamp].log`를 검토하여 오류가 있는지 확인하세요.
    

관리 콘솔에 일반적인 오류가 표시되면 인스턴스에 SSH로 액세스하여 자세한 로그를 확인하세요.