Crea copias de seguridad y restablece en Kubernetes

Selecciona una versión de la documentación:

En esta página, se muestra cómo crear copias de seguridad y restablecer tus datos de AlloyDB Omni con el operador de Kubernetes de AlloyDB Omni. Esto requiere conocimientos básicos sobre la actualización de un clúster de Kubernetes con archivos de manifiesto y la herramienta de línea de comandos de kubectl. Si deseas obtener más información para instalar y ejecutar AlloyDB Omni en un clúster de Kubernetes, consulta Instala AlloyDB Omni en Kubernetes.

Para habilitar la copia de seguridad y recuperación continuas de AlloyDB Omni, debes crear un plan de copias de seguridad para cada clúster de base de datos. Las copias de seguridad se realizan según los programas de copias de seguridad definidos en el recurso backupPlan. Si no se define un programa de copias de seguridad en el plan, se realizan copias de seguridad continuas a diario de forma predeterminada. Puedes restablecer o clonar copias de seguridad desde cualquier marca de tiempo del período de recuperación con una granularidad de segundos.

Si deseas obtener información para crear copias de seguridad y restablecer tus datos de AlloyDB Omni en implementaciones que no son de Kubernetes, consulta Configura Barman para AlloyDB Omni y Configura pgBackRest para AlloyDB Omni.

Habilita y programa copias de seguridad

Las copias de seguridad continuas se habilitan cuando creas un recurso de plan de copia de seguridad para tu clúster de base de datos. Debes crear un recurso backupPlan para cada clúster de base de datos para habilitar la copia de seguridad continua de ese clúster. Este recurso de plan de copias de seguridad define los siguientes parámetros:

  • Ubicación en la que el operador de AlloyDB Omni almacena las copias de seguridad. Puede ser local para tu clúster de Kubernetes o para un bucket de Cloud Storage.

  • Opción para establecer varios programas de copias de seguridad que crean automáticamente copias de seguridad de full, incremental y differential Puedes pausar esta programación en cualquier momento, incluso cuando definas el plan de copia de seguridad por primera vez. Si se pausa un plan de copias de seguridad, no se crearán copias de seguridad programadas, pero podrás usarlo para crear copias de seguridad de forma manual.

    Si no se especifican programas de copias de seguridad, el valor predeterminado es "0 0 * * *", que realiza una copia de seguridad completa diaria a la medianoche, hora local.

  • Es un período de retención para las copias de seguridad almacenadas. Esto puede tardar desde un día hasta 90 días. El valor predeterminado es 14.

  • Puedes crear copias de seguridad desde clústeres de Kubernetes principales o en espera especificando el valor primary o standby para el campo backupSourceStrategy, respectivamente. Para mejorar el rendimiento del clúster principal, programa las operaciones de copia de seguridad desde un clúster en espera para transferirlas.

Tu clúster de base de datos puede tener varios planes de copia de seguridad, cada uno con su propio nombre y configuración. Si creas varios recursos backupPlan con diferentes programas de copias de seguridad para un clúster de base de datos, debes definir una ubicación de copia de seguridad única para cada recurso de copia de seguridad.

Crea un plan para almacenar copias de seguridad de forma local

Para habilitar las copias de seguridad que se almacenan de forma local, aplica el siguiente manifiesto:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: BackupPlan
    metadata:
      name: BACKUP_PLAN_NAME
      namespace: NAMESPACE
    spec:
      dbclusterRef: DB_CLUSTER_NAME
      backupSchedules:
        full: "FULL_CRON_SCHEDULE"
        differential: "DIFF_CRON_SCHEDULE"
        incremental: "INCR_CRON_SCHEDULE"
      backupRetainDays: RETENTION_DAYS
      backupSourceStrategy: SOURCE_STRATEGY
      paused: PAUSED_BOOLEAN

Reemplaza lo siguiente:

  • BACKUP_PLAN_NAME: Es un nombre para este recurso del plan de copia de seguridad, por ejemplo, backup-plan-1.

  • NAMESPACE: Es el espacio de nombres de Kubernetes para este plan de copia de seguridad. Debe coincidir con el espacio de nombres del clúster de la base de datos.

  • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos que asignaste cuando lo creaste.

  • FULL_CRON_SCHEDULE: Es una programación de copia de seguridad para crear una copia de seguridad completa que contenga todos los datos, expresada en formato cron. Por ejemplo, establece el valor en "0 0 * * 0" para crear una copia de seguridad completa a las 00:00 todos los domingos.

  • DIFF_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que, inicialmente, son copias de seguridad completas. Las copias de seguridad posteriores son diferenciales y se basan en los cambios que se producen en los datos, expresados en formato cron. Por ejemplo, establece "0 22 * * 3" para realizar una copia de seguridad diferencial a las 22:00 todos los miércoles.

  • INCR_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que incluyan datos que cambiaron desde la última copia de seguridad completa, diferencial o incremental. Se expresa en formato cron. Por ejemplo, establece "0 21 * * *" para crear una copia de seguridad incremental a las 21:00 todos los días.

  • RETENTION_DAYS: Es la cantidad de días durante los que el operador de AlloyDB Omni conserva esta copia de seguridad. Debe ser un número entero entre 1 y 90. El valor predeterminado es 14.

  • SOURCE_STRATEGY: Determina si las copias de seguridad se toman del clúster de Kubernetes principal o de reserva. El valor predeterminado es primary. Puedes elegir entre los siguientes valores:

    • primary: Las copias de seguridad se toman del clúster principal de Kubernetes.

    • standby: Las copias de seguridad se toman del clúster de Kubernetes en espera. Si no hay una instancia en espera disponible cuando el campo SOURCE_STRATEGY se establece en standby, la copia de seguridad se toma del clúster de Kubernetes principal.

  • PAUSED_BOOLEAN: Especifica si el plan de copia de seguridad está pausado o no. Proporciona uno de los siguientes valores:

    • true: Las copias de seguridad están en pausa y no se crean copias de seguridad programadas.

    • false: El operador de AlloyDB Omni crea copias de seguridad según el programa especificado por cronSchedule. Este es el valor predeterminado si no se establece explícitamente en true.

    El valor predeterminado es false.

Crea un plan que almacene copias de seguridad en Cloud Storage

Para habilitar las copias de seguridad que se almacenan en Cloud Storage, sigue estos pasos:

  1. Crea un bucket de Cloud Storage. Toma nota del nombre que le asignes a este bucket, ya que lo necesitarás en un paso posterior.

  2. Crea una cuenta de servicio para agregar copias de seguridad al bucket.

  3. Otorga el rol de Identity and Access Management storage.objectAdmin a la cuenta de servicio.

  4. Crea una clave para la cuenta de servicio. Esta acción descargará la clave privada en tu entorno local.

  5. Cambia el nombre del archivo de clave descargado a key.json.

  6. Crea un secreto de Kubernetes que contenga la clave privada:

    kubectl create secret generic SECRET_NAME --from-file=KEY_PATH -n NAMESPACE

    Reemplaza lo siguiente:

    • SECRET_NAME: Es el nombre del Secret de Kubernetes que estás creando, por ejemplo, gcs-key.

    • KEY_PATH: Es la ruta del sistema de archivos local al archivo key.json que descargaste en los pasos anteriores.

    • NAMESPACE: Es el espacio de nombres del clúster de la base de datos.

  7. Aplica el siguiente manifiesto:

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: BackupPlan
      metadata:
        name: BACKUP_PLAN_NAME
        namespace: NAMESPACE
      spec:
        dbclusterRef: DB_CLUSTER_NAME
        backupSchedules:
          full: "FULL_CRON_SCHEDULE"
          differential: "DIFF_CRON_SCHEDULE"
          incremental: "INCR_CRON_SCHEDULE"
        backupRetainDays: RETENTION_DAYS
        backupSourceStrategy: SOURCE_STRATEGY
        paused: PAUSED_BOOLEAN
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_URL
            key: BACKUP_PATH
            secretRef:
              name: SECRET_NAME
              namespace: NAMESPACE
    

    Reemplaza lo siguiente:

    • BACKUP_PLAN_NAME: Es un nombre para este recurso del plan de copia de seguridad, por ejemplo, backup-plan-1.

    • NAMESPACE: Es el espacio de nombres de Kubernetes para este plan de copia de seguridad. Debe coincidir con el espacio de nombres del clúster de la base de datos.

    • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos que asignaste cuando lo creaste.

    • FULL_CRON_SCHEDULE: Es una programación de copia de seguridad para crear una copia de seguridad completa que contenga todos los datos, expresada en formato cron. Por ejemplo, establece el valor en "0 0 * * 0" para crear una copia de seguridad completa a las 00:00 todos los domingos.

    • DIFF_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que, inicialmente, son copias de seguridad completas. Las copias de seguridad posteriores son diferenciales y se basan en los cambios que se producen en los datos, expresados en formato cron. Por ejemplo, establece "0 22 * * 3" para realizar una copia de seguridad diferencial a las 22:00 todos los miércoles.

    • INCR_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que incluyan datos que cambiaron desde la última copia de seguridad completa, diferencial o incremental. Se expresa en formato cron. Por ejemplo, establece "0 21 * * *" para crear una copia de seguridad incremental a las 21:00 todos los días.

    • RETENTION_DAYS: Es la cantidad de días durante los que el operador de AlloyDB Omni conserva esta copia de seguridad. Debe ser un número entero entre 1 y 90. El valor predeterminado es 14.

    • SOURCE_STRATEGY: Determina si las copias de seguridad se toman del clúster de Kubernetes principal o de reserva. El valor predeterminado es primary. Puedes elegir entre los siguientes valores:

      • primary: Las copias de seguridad se toman del clúster principal de Kubernetes.

      • standby: Las copias de seguridad se toman del clúster de Kubernetes en espera. Si no hay una instancia en espera disponible cuando el campo SOURCE_STRATEGY se establece en standby, la copia de seguridad se toma del clúster de Kubernetes principal.

    • PAUSED_BOOLEAN: Especifica si el plan de copia de seguridad está pausado o no. Proporciona uno de los siguientes valores:

      • true: Las copias de seguridad están en pausa y no se crean copias de seguridad programadas.

      • false: El operador de AlloyDB Omni crea copias de seguridad según el programa especificado por cronSchedule. Este es el valor predeterminado si no se establece explícitamente en true.

      El valor predeterminado es false.

    • BUCKET_URL: Es el nombre del bucket de Cloud Storage que creaste en un paso anterior. Esta no es la URL completa del bucket. No agregues el prefijo gs:// al nombre del bucket.

    • BACKUP_PATH: Es la ruta de acceso del directorio en el que el operador de AlloyDB Omni escribe las copias de seguridad dentro del bucket de Cloud Storage. La ruta de acceso debe ser absoluta y comenzar con /.

    • SECRET_NAME: Es el nombre que elegiste para el secreto de Kubernetes que creaste en un paso anterior.

Crea copias de seguridad en almacenamiento compatible con S3

Puedes usar el campo s30options para enviar copias de seguridad a extremos compatibles con S3.

Los pasos del siguiente procedimiento son de alto nivel. Para obtener instrucciones específicas para tu caso de uso, consulta la documentación de tu proveedor de S3.

Para habilitar las copias de seguridad en tu almacenamiento compatible con S3, sigue estos pasos generales:

  1. Crea un bucket de almacenamiento de S3. Toma nota del nombre que le asignes a este bucket, ya que lo usarás en un paso posterior.
  2. Para acceder al bucket de almacenamiento de S3, crea un principal, por ejemplo, una cuenta de servicio o un usuario. Consulta a tu proveedor de S3 para saber si debes otorgar un rol o una política predefinidos a la principal.
  3. Otorga acceso de lectura y escritura a la principal que creaste en el paso anterior. Este paso te permite leer y escribir en el bucket de almacenamiento de S3.
  4. Crea una clave de acceso para la principal que creaste. La clave de acceso incluye un ID y un secreto. Esta operación descarga la clave en tu entorno local.
  5. Crea un secreto de Kubernetes que contenga la clave:

    kubectl create secret generic SECRET_NAME --from-literal=access-key-id=KEY_ID --from-literal=access-key=KEY -n NAMESPACE

    Reemplaza lo siguiente:

    • SECRET_NAME: Es el nombre del Secret de Kubernetes que estás creando, por ejemplo, s3-key.
    • KEY_ID: Es el ID de la clave de acceso.
    • KEY: Es el secreto de la clave de acceso.
    • NAMESPACE: Es el espacio dentro del cual se mantiene el nombre del secreto. Este valor debe ser único.
  6. Aplica el siguiente manifiesto:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: BackupPlan
    metadata:
      name: BACKUP_PLAN_NAME
      namespace: NAMESPACE
    spec:
      dbclusterRef: DB_CLUSTER_NAME
      backupSchedules:
        full: "FULL_CRON_SCHEDULE"
        differential: "DIFF_CRON_SCHEDULE"
        incremental: "INCR_CRON_SCHEDULE"
      backupRetainDays: RETENTION_DAYS
      backupSourceStrategy: SOURCE_STRATEGY
      paused: PAUSED_BOOLEAN
      backupLocation:
        type: S3
        s3Options:
          bucket: BUCKET_NAME
          region: REGION
          endpoint: S3ENDPOINT
          key: BACKUP_PATH
          secretRef:
            namespace: NAMESPACE
            name: SECRET_NAME
          certRef:
            name: CA_BUNDLE_SECRET_NAME
            namespace: NAMESPACE
    

    Reemplaza lo siguiente:

    • BACKUP_PLAN_NAME: Es un nombre para este recurso de plan de copia de seguridad, por ejemplo, backup-plan-1.
    • NAMESPACE: Es el espacio de nombres de Kubernetes para este plan de copia de seguridad. El espacio de nombres debe coincidir con el del clúster de la base de datos.
    • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos que asignaste cuando lo creaste.
    • FULL_CRON_SCHEDULE: Es una programación de copia de seguridad para crear una copia de seguridad completa, que contiene todos los datos, expresada en formato cron. Por ejemplo, para realizar una copia de seguridad completa a las 00:00 todos los domingos, configura FULL_CRON_SCHEDULE como
      0 0 * * 0.
    • DIFF_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que, inicialmente, son copias de seguridad completas. Las copias de seguridad posteriores son diferenciales y se basan en los cambios que se producen en los datos, expresados en formato cron. Por ejemplo, para realizar una copia de seguridad diferencial a las 22:00 todos los miércoles, establece 0 22 * * 3 .
    • INCR_CRON_SCHEDULE: Es una programación de copia de seguridad para crear copias de seguridad que incluyan los datos que cambiaron desde la última copia de seguridad completa, diferencial o incremental. Esto se expresa en formato cron. Por ejemplo, para realizar una copia de seguridad incremental todos los días a las 21:00, establece este parámetro en 0 21 * * * .
    • RETENTION_DAYS: Es la cantidad de días durante los que el operador de Kubernetes de AlloyDB Omni conserva esta copia de seguridad. Este parámetro debe ser un número entero entre 1 y 90. El valor predeterminado es 14.
    • SOURCE_STRATEGY: Determina si las copias de seguridad se toman del clúster de Kubernetes principal o de reserva. El valor predeterminado es primary. Puedes elegir entre los siguientes valores:
      • primary: Las copias de seguridad se toman del clúster principal de Kubernetes.
      • standby: Las copias de seguridad se toman del clúster de Kubernetes en espera. Si no hay una instancia en espera disponible cuando el campo SOURCE_STRATEGY se establece en standby, la copia de seguridad se toma del clúster de Kubernetes principal.
    • PAUSED_BOOLEAN: Especifica si el plan de copia de seguridad está en pausa o no. Proporciona uno de los siguientes valores:
      • true: Las copias de seguridad están en pausa y no se crean copias de seguridad programadas.
      • false: Es el valor predeterminado. El operador de AlloyDB Omni crea copias de seguridad según el programa especificado por cronSchedule. Este es el valor predeterminado si no se establece explícitamente en true.
    • BUCKET_NAME: Es el nombre del bucket de almacenamiento de S3 que creaste. El nombre del bucket no es la URL completa del bucket. No agregues el prefijo gs:// al nombre del bucket.
    • REGION: Es la región en la que se almacena el bucket de S3.
    • S3ENDPOINT: Es el extremo del bucket de almacenamiento de S3.
    • BACKUP_PATH: Es la ruta de acceso del directorio en el que el operador de AlloyDB Omni escribe copias de seguridad, dentro del bucket de almacenamiento de S3. La ruta de acceso debe ser absoluta y comenzar con /.
    • NAMESPACE: Es el espacio dentro del cual el nombre del secreto debe ser único.
    • SECRET_NAME: Es el nombre que elegiste para el secreto de Kubernetes que creaste.
    • CA_BUNDLE_SECRET_NAME: Es un grupo de certificados de CA codificados en PEM que el servidor de S3 usa para validar el certificado. Asegúrate de que el paquete se incluya en el secreto con una clave llamada ca.crt.

      En el siguiente ejemplo, se muestra cómo crear un secreto que contiene el certificado, en el que PEM_FILE_PATH es la ruta de acceso al archivo del paquete ca:

      kubectl create secret generic CA_BUNDLE_SECRET_NAME -n NAMESPACE --from-file=ca.crt=PEM_FILE_PATH
      

Cómo crear una copia de seguridad de forma manual

Puedes crear manualmente un recurso de copia de seguridad en cualquier momento con cualquier plan de copia de seguridad que ya hayas aplicado a un clúster de base de datos. El operador de AlloyDB Omni aplica la ubicación de almacenamiento y el período de retención del plan de copia de seguridad elegido a la nueva copia de seguridad manual.

Para crear manualmente una copia de seguridad desde un clúster de Kubernetes principal o en espera, debes especificar la instancia de la base de datos de origen para la copia de seguridad con el campo backupSourceRole y aplicar el siguiente manifiesto:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: Backup
metadata:
  name: BACKUP_NAME
  namespace: NAMESPACE
spec:
  dbclusterRef: DB_CLUSTER_NAME
  backupPlanRef: BACKUP_PLAN_NAME
  manual: true
  backupSourceRole: SOURCE_ROLE
  physicalBackupSpec:
    backupType: BACKUP_TYPE

Reemplaza lo siguiente:

  • BACKUP_NAME: Es un nombre para esta copia de seguridad, por ejemplo, backup-1.

  • NAMESPACE: Es el espacio de nombres de Kubernetes de esta restauración. Debe coincidir con el espacio de nombres del clúster de la base de datos.

  • BACKUP_PLAN_NAME: Es el nombre del recurso del plan de copia de seguridad al que pertenece esta copia de seguridad. Debe coincidir con el nombre que elegiste cuando creaste el plan de copia de seguridad.

  • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos que asignaste cuando lo creaste.

  • SOURCE_ROLE: Especifica el rol de la instancia de base de datos de origen desde la que se toma la copia de seguridad manual. El valor predeterminado es primary. Puedes elegir uno de los siguientes valores:

    • primary: Configura la copia de seguridad desde el clúster principal de Kubernetes.
    • standby: Configura la copia de seguridad desde el clúster de Kubernetes en espera.
  • BACKUP_TYPE: Especifica el tipo de copia de seguridad manual que deseas crear. Elige uno de los siguientes valores:

    • full: Crea una copia de seguridad completa que contiene todos los datos.

    • diff: Crea una copia de seguridad diferencial que depende de la última copia de seguridad completa. Las copias de seguridad posteriores son diferenciales y se basan en los cambios que se producen en los datos.

    • incr: Crea una copia de seguridad incremental que depende de la copia de seguridad completa o diferencial anterior para incluir los datos que cambiaron desde la última copia de seguridad completa o diferencial.

Supervisa y muestra una lista de las copias de seguridad

Tus planes de copias de seguridad y copias de seguridad son todos recursos en tu clúster de Kubernetes. Para ver información sobre ellos, usa el comando kubectl get.

Cómo ver un resumen del plan de copia de seguridad

Para ver información sobre los planes de copias de seguridad de tu clúster de bases de datos, ejecuta el siguiente comando:

kubectl get backupplan.alloydbomni.dbadmin.goog -n NAMESPACE

Reemplaza NAMESPACE por el espacio de nombres del clúster de la base de datos.

El resultado se ve de la manera siguiente:

NAME               PHASE   LASTBACKUPTIME         NEXTBACKUPTIME
backup-plan-prod   Ready   2023-10-26T17:26:43Z   2023-10-27T00:00:00Z

Visualiza una lista de las copias de seguridad

Para ver una lista de las copias de seguridad disponibles para tu clúster de base de datos, ejecuta el siguiente comando:

kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE

Reemplaza NAMESPACE por el espacio de nombres del clúster de la base de datos.

El resultado se ve de la manera siguiente:

NAME                              PHASE       COMPLETETIME
backup-plan-prod-20231026172643   Succeeded   2023-10-26T17:26:53Z
manual-backup-1                   Succeeded   2023-10-26T18:15:27Z
manual-backup-2                   InProgress

Cada fila de la tabla de salida representa un recurso de copia de seguridad, con los siguientes atributos:

  • Nombre de la copia de seguridad.
  • Es el estado de la copia de seguridad, en el que Succeeded marca una copia de seguridad lista para restablecerse.
  • Es la marca de tiempo de la creación de la copia de seguridad.

Restablecer copia de seguridad

AlloyDB te permite restablecer desde copias de seguridad individuales o clonar un clúster con una copia de seguridad de un momento específico.

Cómo restablecer desde una copia de seguridad con nombre

Para restablecer desde una copia de seguridad y reemplazar los datos de tu clúster de base de datos por los datos de la copia de seguridad, sigue estos pasos.

  1. Enumera todas las copias de seguridad cuya fase es Succeeded.

    kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE | grep Succeeded

    Reemplaza NAMESPACE por el espacio de nombres del clúster de la base de datos.

    Si existe al menos una buena opción de copia de seguridad, el resultado es similar al siguiente:

    backup-plan-prod-20231026172643   Succeeded   2023-10-26T17:26:53Z
    manual-backup-1                   Succeeded   2023-10-26T18:15:27Z
    
  2. Elige una de las copias de seguridad que se enumeran en el paso anterior como la copia de seguridad desde la que se realizará el restablecimiento. Toma nota de su nombre, que usarás en el siguiente paso.

  3. Aplica el siguiente manifiesto:

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: Restore
      metadata:
        name: RESTORE_NAME
        namespace: NAMESPACE
      spec:
        sourceDBCluster: DB_CLUSTER_NAME
        backup: BACKUP_NAME
    

    Reemplaza lo siguiente:

    • RESTORE_NAME: Es un nombre para usar con el recurso de restauración de datos que crea este manifiesto, por ejemplo, restore-1.

    • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos, que asignaste cuando lo creaste.

    • BACKUP_NAME: Es el nombre de la copia de seguridad que elegiste en el paso anterior.

Clona un clúster desde un momento determinado

El operador de AlloyDB Omni te permite clonar los datos del clúster desde cualquier momento dentro de un período de recuperación. La duración del período de recuperación está determinada directamente por el período de retención.

Por ejemplo, si tu período de retención está establecido en 14 días, no podrás recuperar datos con más de 14 días de antigüedad. Puedes restablecer los datos a cualquier momento dentro del período de recuperación. El operador de AlloyDB Omni conserva las copias de seguridad y los registros durante un día más que el valor especificado.

  1. Supervisa tu ventana de recuperación para identificar el punto de restauración:

    kubectl get backupplan.alloydbomni.dbadmin.goog BACKUP_NAME -n NAMESPACE -o json | jq .status.recoveryWindow
    

    A continuación, se muestra un ejemplo de respuesta:

    recoveryWindow:
    begin: "2024-01-31T02:54:35Z"
    

    El valor de la marca de tiempo en el formato de marca de tiempo RFC 3339 se usa en el recurso de restauración.

  2. Crea y aplica el siguiente manifiesto de recurso de restauración:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: Restore
    metadata:
      name: RESTORE_NAME
      namespace: NAMESPACE
    spec:
      sourceDBCluster: DB_CLUSTER_NAME
      pointInTime: "DATE_AND_TIME_STAMP"
      clonedDBClusterConfig:
        dbclusterName: NEW_DB_CLUSTER_NAME
    

    Reemplaza lo siguiente:

    • RESTORE_NAME: Es un nombre para usar con el recurso de restauración de datos que crea este manifiesto, por ejemplo, restore-1.

    • DB_CLUSTER_NAME: Es el nombre del clúster de la base de datos que asignaste cuando lo creaste.

    • DATE_AND_TIME_STAMP: Es la marca de tiempo RFC 3339 con un nivel de detalle por minuto de la copia de seguridad continua desde la que deseas realizar la restauración, por ejemplo, 2024-03-05T15:32:10Z.

    • NEW_DB_CLUSTER_NAME: Es el nombre del clúster de base de datos nuevo.

Cómo ver el estado del restablecimiento

  1. Para ver el progreso de la operación de restablecimiento, haz lo siguiente:

    kubectl get restore.alloydbomni.dbadmin.goog -n NAMESPACE

    Reemplaza NAMESPACE por el espacio de nombres del clúster de la base de datos.

    Para ejecutar el comando de forma continua, agrega la marca -Aw.

    El resultado se ve de la manera siguiente:

    NAME        PHASE               COMPLETETIME   RESTOREDPOINTINTIME
    restore-1   RestoreInProgress
    

    Cuando el valor de la columna PHASE en la tabla de salida indica ProvisionSucceeded, significa que se completó la restauración.

  2. Consulta el progreso del clúster de base de datos restablecido o clonado que se conecta:

    kubectl get dbclusters -A -n NAMESPACE

    Reemplaza NAMESPACE por el espacio de nombres del clúster de la base de datos.

    Para ejecutar el comando de forma continua, agrega la marca -Aw.

    El resultado se ve de la manera siguiente:

    NAMESPACE   NAME               PRIMARYENDPOINT   PRIMARYPHASE   DBCLUSTERPHASE
    default     db-cluster-1       10.128.0.55       Ready          DBClusterReady
    

    Cuando el valor de la columna DBCLUSTERPHASE en la tabla de salida indica DBClusterReady, el clúster de base de datos clonado o restablecido está listo para usarse.

Borrar una copia de seguridad

Por lo general, no es necesario que borres las copias de seguridad de forma manual. El operador de AlloyDB Omni borra automáticamente las copias de seguridad que son más antiguas que el período de retención que especificas cuando creas un plan de copia de seguridad.

Si quieres borrar una copia de seguridad de forma manual, esta debe cumplir con los siguientes requisitos:

  • La copia de seguridad no es la única que se almacena para su plan de copias de seguridad. El operador de AlloyDB Omni requiere que exista al menos una copia de seguridad por plan de copia de seguridad.

  • La copia de seguridad no depende de ninguna otra copia de seguridad. Por ejemplo, una copia de seguridad completa con copias de seguridad incrementales o diferenciales que dependen de ella, o una copia de seguridad incremental con copias de seguridad diferenciales que dependen de ella.

Para borrar una copia de seguridad, ejecuta el siguiente comando:

kubectl delete backup.alloydbomni.dbadmin.goog/BACKUP_NAME -n NAMESPACE

Reemplaza lo siguiente:

  • BACKUP_NAME: Es el nombre de la copia de seguridad que se borrará.

  • NAMESPACE: Es el espacio de nombres del clúster de la base de datos.

Cambia el tamaño de un disco de copia de seguridad

Para cambiar el tamaño del disco local que almacena tus copias de seguridad en el clúster de Kubernetes, completa los siguientes pasos:

  1. Actualiza el campo resources.disks del manifiesto de DBCluster de la siguiente manera:

    spec:
      primarySpec:
        resources:
          disks:
            - name: BACKUP_DISK
              size: 10Gi
    

    Reemplaza BACKUP_DISK por el nombre del disco en el que se almacenan tus copias de seguridad.

  2. Aplica el manifiesto para forzar la actualización.

    El operador de AlloyDB Omni aplica las especificaciones actualizadas a tu DBCluster de inmediato.

Se aplican las siguientes restricciones a la modificación del disco de copia de seguridad de un clúster de base de datos en ejecución:

  • Solo puedes aumentar el tamaño de un disco si el storageClass especificado admite la expansión del volumen.
  • No puedes disminuir el tamaño de un disco.

Actualiza un plan de copia de seguridad

Cada plan de copias de seguridad es un recurso de Kubernetes. Para actualizar su configuración, realiza una de las siguientes acciones:

  • Edita y vuelve a aplicar el archivo de manifiesto del plan de copias de seguridad.

  • Usa el comando kubectl patch.

Por ejemplo, para pausar un plan de copia de seguridad en ejecución, cambia el atributo paused de su manifiesto a true y, luego, vuelve a aplicar el manifiesto.

Borra un plan de copia de seguridad

Para borrar un plan de copia de seguridad y quitar todos sus recursos de copia de seguridad, ejecuta el siguiente comando:

kubectl delete backupplan.alloydbomni.dbadmin.goog/BACKUP_PLAN_NAME -n NAMESPACE

Reemplaza lo siguiente:

  • BACKUP_PLAN_NAME: El nombre del plan de copia de seguridad que se borrará.

  • NAMESPACE: Es el espacio de nombres del clúster de la base de datos.

Para pausar un plan de copias de seguridad sin borrarlo, establece el atributo paused del recurso del plan de copias de seguridad en true. Un plan de copia de seguridad pausado sigue almacenando copias de seguridad y permite la creación manual de copias de seguridad.