Skip to main content

Restauración desde una copia de seguridad

Restaura una instancia de GitHub Enterprise Server mediante una instantánea de copia de seguridad creada anteriormente.

Puedes restaurar una instancia de GitHub Enterprise Server desde una copia de seguridad mediante la línea de comandos. El servicio de copia de seguridad admite la restauración completa de instancias, incluidos los datos de configuración y de usuario.

Advertencia

La restauración desde una copia de seguridad sobrescribirá todos los datos existentes en la instancia. No se puede deshacer esta operación.

Requisitos de la versión de instantánea

Solo puedes restaurar una instantánea si procede de como máximo dos versiones de características detrás de la versión de la instancia de destino.

Por ejemplo:

  • Una instantánea de la versión 3.17 se puede restaurar en un destino que ejecute 3.17.x, 3.18.x o 3.19.x.
  • No se puede restaurar una instantánea 3.17 a la 3.20, que es más de dos versiones anteriores.

Tampoco puedes restaurar desde una versión más reciente a una anterior. Por ejemplo, al intentar restaurar una instantánea 3.18 en una instancia 3.17, se producirá un error: Error: Snapshot can not be restored to an older release of GitHub Enterprise Server.

Requisitos previos

Antes de restaurar una copia de seguridad:

  1. Habilita el modo de mantenimiento en la instancia de destino. Consulta Habilitar y programar el modo de mantenimiento.
  2. Comprueba el acceso al almacenamiento de copia de seguridad que contiene la instantánea.
  3. Pausa los servicios que interfieran: si se usa alta disponibilidad (HA), asegúrate de que la replicación está detenida.
  4. Prepárate para GitHub Actions: si está habilitada, asegúrate de que la instancia de destino esté configurada con el almacenamiento externo correcto. Consulte Restauración con GitHub Actions habilitada para obtener más información.

Inicio de la operación de restauración

Para restaurar desde una instantánea:

  1. SSH en la instancia de destino como usuario admin.

  2. Ejecute uno de los siguientes comandos:

    • Restaura la instantánea más reciente:

      ghe-restore
      
    • Restaura una instantánea específica. Reemplaza <SNAPSHOT_TIMESTAMP> por la marca de tiempo de la instantánea que deseas restaurar (por ejemplo, YYYYMMDDTHHMMSS).

      ghe-restore -s <SNAPSHOT_TIMESTAMP>
      
    • (Opcional) Fuerza la sobrescritura de los datos de configuración, certificados y licencias:

      ghe-restore -c          # Latest snapshot
      ghe-restore -s <SNAPSHOT_TIMESTAMP> -c  # Specific snapshot
      
  3. Finaliza en Consola de administración:

    • Revisa todas las opciones de configuración (red, autenticación, TLS, etc.).
    • Haz clic en Guardar configuración para aplicarlas e iniciar servicios.
    • La instancia no está totalmente operativa hasta que se complete este paso.
  4. Valida la instancia restaurada para asegurarte de que todo funciona según lo previsto.

  5. Si usas alta disponibilidad, completa primero la restauración en una instancia independiente. A continuación, vuelve a configurar la alta disponibilidad.

    • Si tienes problemas de sincronización (por ejemplo, UUID obsoletos en ghe-repl-status), ejecuta ghe-repl-teardown.
    • Para obtener ayuda, ponte en contacto con Soporte de GitHub.
  6. Vuelve a registrar ejecutores de GitHub Actions, ya que la restauración invalida los tokens anteriores.

Rotación y retención de instantáneas

Las instantáneas se eliminan automáticamente en función de la configuración de retención:

  • Solo se conservan las n instantáneas más recientes (como configuradas).
  • Las instantáneas anteriores se eliminan después de cada copia de seguridad correcta.
  • Las instantáneas se denominan mediante marcas de tiempo (YYYYMMDDTHHMMSS) para facilitar la referencia.
  • Los vínculos físicos se usan para almacenar archivos sin cambios de forma eficaz, a la vez que se conserva la funcionalidad de restauración completa.

Solución de problemas de errores de restauración

Si se produce un error en una operación de restauración, comprueba:

  • Integridad de la copia de seguridad: asegúrate de que la instantánea no se interrumpió ni se ha dañado.
  • Acceso de almacenamiento: comprueba que la instancia puede montar y leer el volumen de copia de seguridad.
  • Error de coincidencia de versiones: confirma que la versión de instantánea es compatible con la instancia de destino.
  • Registros : revisa /var/log/github-backup/restore-verbose-[timestamp].log si hay errores.

SiConsola de administración muestra un error genérico, SSH en la instancia para acceder a registros detallados.