Usa la recuperación de un momento determinado (PITR)

En esta página, se describe cómo usar la recuperación de un momento determinado (PITR) para restablecer la instancia principal de Cloud SQL.

Para obtener más información sobre PITR, consulta Recuperación de un momento determinado (PITR).

De forma predeterminada, la PITR se habilita cuando creas una instancia de edición de Cloud SQL Enterprise Plus, sin importar si creas la instancia con la consola de Google Cloud, gcloud CLI, Terraform o la API de Cloud SQL Admin

Si creas una instancia de Cloud SQL Enterprise en la consola de Google Cloud, la PITR está habilitada de forma predeterminada. De lo contrario, si creas la instancia mediante la CLI de gcloud, Terraform o la API de Cloud SQL Admin, debes habilitar la PITR de forma manual.

Almacenamiento de registros para PITR

Cloud SQL usa el archivo de registro de escritura por adelantado (WAL) para PITR.

El 9 de enero de 2023, lanzamos el almacenamiento de registros de escritura por adelantado para la PITR en Cloud Storage. Desde este lanzamiento, se aplican las siguientes condiciones:

  • Todas las instancias de edición de Cloud SQL Enterprise Plus almacenan sus registros de escritura por adelantado en Cloud Storage. Solo las instancias de Cloud SQL Enterprise Plus que actualizas de la edición Cloud SQL Enterprise y que tenían habilitada la PITR antes del 9 de enero de 2023 continúan almacenando sus registros en el disco.
  • Las instancias de Cloud SQL Enterprise creadas con la PITR habilitada antes del 9 de enero de 2023 seguirán almacenando sus registros en el disco.
  • Si actualizas una instancia de Cloud SQL Enterprise después del 15 de agosto de 2024 que almacena registros de transacciones para PITR en el disco a la edición Cloud SQL Enterprise Plus, el proceso de actualización cambia la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR en Cloud Storage por ti. Para obtener más información, consulta Actualiza una instancia a la edición Cloud SQL Enterprise Plus mediante la actualización in situ.
  • Todas las instancias de Cloud SQL Enterprise que creas con la PITR habilitada después del 9 de enero de 2023 almacenan registros en Cloud Storage.

Para las instancias que almacenan registros de escritura anticipada solo en el disco, puedes cambiar la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR del disco a Cloud Storage mediante gcloud CLI o la API de Cloud SQL Admin. Para obtener más información, consulta Cambia el almacenamiento de registros de transacciones a Cloud Storage.

Período de retención de registros

Para ver si una instancia almacena los registros que se usan para la PITR en Cloud Storage, consulta Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR.

Después de usar un cliente de PostgreSQL, como psql o pgAdmin, para conectarte a una base de datos de la instancia, ejecuta el siguiente comando: show archive_command. Si algún registro de escritura por adelantado está archivado en Cloud Storage, verás -async_archive -remote_storage.

Todas las demás instancias existentes que tengan habilitada la PITR seguirán teniendo sus registros almacenados en el disco.

Si los registros se almacenan en Cloud Storage, Cloud SQL sube los registros cada cinco minutos o menos. Como resultado, si hay una instancia de Cloud SQL disponible, esta se puede recuperar a la hora más reciente. Sin embargo, si la instancia no está disponible, el objetivo de punto de recuperación suele ser de cinco minutos o menos. Usa la gcloud CLI o la API de Admin para verificar la última hora a la que puedes restablecer la instancia y realizar la recuperación en ese momento.

Los registros de escritura por adelantado que se usan con PITR se borran de forma automática con su copia de seguridad automática asociada, lo que suele ocurrir después del valor establecido para transactionLogRetentionDays se cumpla. Esta es la cantidad de días de registros de transacciones que Cloud SQL conserva para la PITR. Para Cloud SQL Enterprise Plus, la cantidad de días de registros de transacciones retenidos se puede establecer del 1 al 35, y para la edición Cloud SQL Enterprise, el valor se puede establecer del 1 al 7.

Cuando restableces una copia de seguridad en una instancia de Cloud SQL antes de habilitar la PITR, pierdes los registros de escritura por adelantado que permiten la operabilidad de la PITR.

En el caso de las instancias que tienen habilitada la clave de encriptación administrada por el cliente (CMEK), los registros de escritura por adelantado se encriptan con la versión más reciente de la CMEK. A fin de realizar un restablecimiento, todas las versiones de la clave que fueron más recientes para la cantidad de días que configuraste para el parámetro retained-transaction-log-days deben estar disponibles.

En las instancias con registros de escritura por adelantado almacenados en Cloud Storage, los registros se almacenan en la misma región que la instancia principal. Este almacenamiento de registros (hasta 35 días para la edición Cloud SQL Enterprise Plus y siete días para la edición Cloud SQL Enterprise, la longitud máxima de la PITR) no genera costos adicionales por instancia.

Registros y uso del disco

Si la instancia tiene habilitada la PITR, y si el tamaño de los registros de escritura por adelantado en el disco causa un problema para la instancia, haz lo siguiente:

  • Puedes cambiar la ubicación de almacenamiento de los registros que se usan para la PITR del disco a Cloud Storage sin tiempo de inactividad mediante gcloud CLI o la API de Cloud SQL Admin.

  • Puedes actualizar tu instancia a la edición Cloud SQL Enterprise Plus.

  • Puedes aumentar el tamaño de almacenamiento de la instancia, pero el aumento del tamaño de registro de escritura por adelantado con respecto al uso del disco puede ser temporal.

  • Te recomendamos que habilites el aumento automático de almacenamiento para evitar problemas inesperados. Esta recomendación se aplica solo si tu instancia tiene habilitada la PITR y tus registros se almacenan en el disco.

  • Puedes desactivar la PITR si deseas borrar los registros y recuperar el almacenamiento. Disminuir los registros de escritura por adelantado que se usan no reduce el tamaño del disco aprovisionado para la instancia.

  • Los registros se borran definitivamente una vez al día, no de forma continua. Configurar la retención de registros en dos días implica que se retengan al menos dos días de registros y, como máximo, tres días de registros. Recomendamos configurar la cantidad de copias de seguridad en un día más que los días de retención de registros.

    Por ejemplo, si especificas 7 para el valor del parámetro transactionLogRetentionDays, para el parámetro backupRetentionSettings, establece la cantidad de retainedBackups en 8.

Habilita la PITR

Cuando creas una instancia nueva en la consola de Google Cloud, las copias de seguridad automáticas y Habilitar la recuperación de un momento determinado están habilitadas de forma automática.

Con el siguiente procedimiento, se habilita la PITR en una instancia principal existente.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Abre el menú de más acciones Ícono de más acciones. para la instancia en la que deseas habilitar PITR y haz clic en Editar.
  3. En Personaliza tu instancia, expande la sección Protección de datos.
  4. Selecciona la casilla de verificación Habilitar la recuperación de un momento determinado.
  5. En el campo Días de registros, ingresa la cantidad de días que se conservarán los registros, de 1 a 35 para la edición de Cloud SQL Enterprise Plus o de 1 a 7 para la edición de Cloud SQL Enterprise.
  6. Haz clic en Guardar.

gcloud

  1. Muestra la descripción general de la instancia:
    gcloud sql instances describe INSTANCE_NAME
  2. Si ves enabled: false en la sección backupConfiguration, habilita las copias de seguridad programadas:
    gcloud sql instances patch INSTANCE_NAME \
    --backup-start-time=HH:MM

    Debes especificar el parámetro backup-start-time mediante el formato de 24 horas en la zona horaria UTC±00.

  3. Habilita la PITR:
    gcloud sql instances patch INSTANCE_NAME \
    --enable-point-in-time-recovery

    Si habilitas PITR en una instancia principal, también puedes configurar la cantidad de días para los que deseas conservar los registros de transacciones. Para ello, agrega el siguiente parámetro:

    --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
  4. Confirma los cambios:
    gcloud sql instances describe INSTANCE_NAME

    En la sección backupConfiguration, verás pointInTimeRecoveryEnabled: true si se realizó correctamente el cambio.

Terraform

Para habilitar la PITR, usa un recurso de Terraform.

resource "google_sql_database_instance" "postgres_instance_pitr" {
  name             = ""
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
      start_time                     = "20:55"
      transaction_log_retention_days = "3"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Aplica los cambios

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.

Prepara el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Borra los cambios

Para borrar tus cambios, haz lo siguiente:

  1. Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento deletion_protection en false.
    deletion_protection =  "false"
  2. Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa yes cuando se te solicite:
    terraform apply
  1. Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa yes cuando se te solicite:

    terraform destroy

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
  • INSTANCE_NAME: el nombre de la instancia principal o de réplica de lectura que configuras para obtener alta disponibilidad
  • START_TIME: el tiempo (en horas y minutos)

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
  • INSTANCE_NAME: el nombre de la instancia principal o de réplica de lectura que configuras para obtener alta disponibilidad
  • START_TIME: el tiempo (en horas y minutos)

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Realiza PITR en una instancia no disponible

Console

Es posible que desees recuperar una instancia que no está disponible en una zona diferente debido a los siguientes motivos:

  • No se puede acceder a la zona en la que se configuró la instancia. Esta instancia tiene el estado FAILED.
  • La instancia está en mantenimiento. Esta instancia tiene el estado MAINTENANCE.

Para recuperar una instancia que no está disponible, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Encuentra la fila de la instancia para clonar.
  3. En la columna Acciones, haz clic en el menú Más acciones .
  4. Haz clic en Crear clon.
  5. En la página Crear una clonación, completa las siguientes acciones:
    1. En el campo ID de instancia, actualiza el ID de instancia, si es necesario.
    2. Selecciona Clonar desde un momento anterior.
    3. En el campo Momento determinado, selecciona una fecha y una hora a partir de las cuales deseas clonar los datos. Esto recupera el estado de la instancia desde ese momento.
    4. Haz clic en Crear clon.
  6. Mientras se inicializa el clon, vuelves a la página de la lista de instancias.

gcloud

Es posible que desees recuperar una instancia que no está disponible en una zona diferente porque no se puede acceder a la zona en la que se configuró la instancia.

gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \
--point-in-time DATE_AND_TIME_STAMP \
--preferred-zone ZONE_NAME \
--preferred-secondary-zone SECONDARY_ZONE_NAME

La cuenta de servicio o usuario que ejecuta el comando gcloud sql instances clone debe tener el permiso cloudsql.instances.clone. Si quieres obtener más información sobre los permisos necesarios para ejecutar comandos de gcloud CLI, consulta Permisos de Cloud SQL.

REST v1

Es posible que desees recuperar una instancia que no está disponible en una zona diferente porque no se puede acceder a la zona en la que se configuró la instancia.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • SOURCE_INSTANCE_NAME: el nombre de la instancia de origen.
  • TARGET_INSTANCE_NAME: es el nombre de la instancia de destino (clonada).
  • DATE_AND_TIME_STAMP: Una marca de fecha y hora para la instancia de origen en laZona horaria UTC y enRFC 3339 formato (por ejemplo,
    2012-11-15T16:19:00.094Z).
  • ZONE_NAME: Opcional Es el nombre de la zona principal de la instancia de destino. Esto se usa para especificar una zona primaria de la instancia de Cloud SQL que deseas clonar. En una instancia regional, esta zona reemplaza la zona principal, pero la zona secundaria sigue siendo la misma.
  • SECONDARY_ZONE_NAME: Opcional Es el nombre de la zona secundaria para la instancia de destino. Esto se usa para especificar una zona secundaria diferente de la instancia de Cloud SQL que deseas clonar.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone

Cuerpo JSON de la solicitud:

{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

La cuenta de servicio o usuario que usa el método de API instances.clone debe tener el permiso cloudsql.instances.clone. Si deseas obtener más información sobre los permisos necesarios para usar los métodos de API, consulta Permisos de Cloud SQL.

REST v1beta4

Es posible que desees recuperar una instancia que no está disponible en una zona diferente porque no se puede acceder a la zona en la que se configuró la instancia.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • SOURCE_INSTANCE_NAME: el nombre de la instancia de origen.
  • TARGET_INSTANCE_NAME: es el nombre de la instancia de destino (clonada).
  • DATE_AND_TIME_STAMP: una marca de fecha y hora para la instancia de origen en la zona horaria de UTC y en el formato RFC 3339 (por ejemplo,
    2012-11-15T16:19:00.094Z).
  • ZONE_NAME: Opcional Es el nombre de la zona principal de la instancia de destino. Esto se usa para especificar una zona primaria diferente de la instancia de Cloud SQL que deseas clonar. En una instancia regional, esta zona reemplaza la zona principal, pero la zona secundaria sigue siendo la misma.
  • SECONDARY_ZONE_NAME: Opcional Es el nombre de la zona secundaria para la instancia de destino. Esto se usa para especificar una zona secundaria diferente de la instancia de Cloud SQL que deseas clonar.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone

Cuerpo JSON de la solicitud:

{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

La cuenta de servicio o usuario que usa el método de API instances.clone debe tener el permiso cloudsql.instances.clone. Si deseas obtener más información sobre los permisos necesarios para usar los métodos de API, consulta Permisos de Cloud SQL.

Obtén el tiempo de recuperación más reciente

Para una instancia disponible, puedes realizar la PITR hasta la hora más reciente. Si la instancia no está disponible y los registros de la instancia se almacenan en Cloud Storage, puedes recuperar la hora de recuperación más reciente y realizar la PITR a esa hora. En ambos casos, puedes restablecer la instancia en una zona principal o secundaria diferente si proporcionas valores para las zonas preferidas.

gcloud

Obtén la última hora a la que puedes recuperar una instancia de Cloud SQL que no está disponible.

Reemplaza INSTANCE_NAME por el nombre de la instancia que consultas.

gcloud sql instances get-latest-recovery-time INSTANCE_NAME

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_NAME: Es el nombre de la instancia para la que consultas el tiempo de recuperación más reciente.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#getLatestRecoveryTime",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID del proyecto
  • INSTANCE_NAME: Es el nombre de la instancia para la que consultas el tiempo de recuperación más reciente.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#getLatestRecoveryTime",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Realiza PITR

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Abre el menú de más acciones Ícono de más acciones. para la instancia que deseas recuperar y haz clic en Crear clonación.
  3. De manera opcional, en la página Crear una clonación, actualiza el ID de la clonación nueva.
  4. Selecciona Clonar desde un momento anterior.
  5. Ingresa un tiempo de PITR.
  6. Haz clic en Crear clon.

gcloud

Crea un clon con PITR.

Reemplaza lo siguiente:

  • SOURCE_INSTANCE_NAME: Es el nombre de la instancia desde la que restableces.
  • NEW_INSTANCE_NAME: Es el nombre para el clon.
  • TIMESTAMP: Es la zona horaria UTC para la instancia de origen en formato RFC 3339. Por ejemplo, 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time 'TIMESTAMP'

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: El ID del proyecto
  • target-instance-id: El ID de la instancia de destino
  • source-instance-id: El ID de la instancia de origen
  • restore-timestamp El momento al que se restablecerá

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone

Cuerpo JSON de la solicitud:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: El ID del proyecto
  • target-instance-id: El ID de la instancia de destino
  • source-instance-id: El ID de la instancia de origen
  • restore-timestamp El momento al que se restablecerá

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone

Cuerpo JSON de la solicitud:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Desactiva PITR

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Abre el menú de más acciones Ícono de más acciones. para la instancia que deseas inhabilitar y selecciona Editar.
  3. En Personaliza tu instancia, expande la sección Protección de datos.
  4. Desmarca la opción Habilitar la recuperación de un momento determinado.
  5. Haz clic en Guardar.

gcloud

  1. Desactiva la recuperación de un momento determinado:
    gcloud sql instances patch INSTANCE_NAME \
    --no-enable-point-in-time-recovery
  2. Confirma los cambios:
    gcloud sql instances describe INSTANCE_NAME

    En la sección backupConfiguration, verás pointInTimeRecoveryEnabled: false si se realizó correctamente el cambio.

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID del proyecto
  • instance-id: Es el ID de la instancia.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID del proyecto
  • instance-id: Es el ID de la instancia.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR

Puedes verificar dónde tu instancia de Cloud SQL almacena los registros de transacciones que se usan para la PITR.

gcloud

Para determinar si tu instancia almacena registros para la PITR en el disco o en Cloud Storage, usa el siguiente comando:

   gcloud sql instances describe INSTANCE_NAME
   

Reemplaza INSTANCE_NAME por el nombre de la instancia.

También puedes verificar la ubicación de almacenamiento de los registros de transacciones para varias instancias en el mismo proyecto. Para determinar la ubicación de varias instancias, usa el siguiente comando:

   gcloud sql instances list --show-transactional-log-storage-state
   

Respuesta de ejemplo:

NAME  DATABASE_VERSION LOCATION         TRANSACTIONAL_LOG_STORAGE_STATE
my_01 POSTGRES_12      us-central-1     DISK
my_02 POSTGRES_12      us-central-1     CLOUD_STORAGE
...
   

En el resultado del comando, el campo transactionalLogStorageState o la columna TRANSACTIONAL_LOG_STORAGE_STATE proporcionan información sobre dónde se almacenan los registros de transacciones de PITR para la instancia. Los posibles estados de almacenamiento de registros de transacciones son los siguientes:

  • DISK: la instancia almacena los registros de transacciones que se usan para la PITR en el disco. Si actualizas una instancia de Cloud SQL Enterprise a la edición Cloud SQL Enterprise Plus, el proceso de actualización también cambia la ubicación de almacenamiento de registros a Cloud Storage automáticamente. Para obtener más información, consulta Actualiza una instancia a la edición Cloud SQL Enterprise Plus mediante la actualización in situ. También puedes cambiar la ubicación de almacenamiento con gcloud CLI o la API de Cloud SQL Admin sin actualizar la edición de tu instancia y sin incurrir en ningún tiempo de inactividad. Para obtener más información, consulta Cómo cambiar el almacenamiento de registros de transacciones a Cloud Storage.
  • SWITCHING_TO_CLOUD_STORAGE: la instancia cambia la ubicación de almacenamiento de los registros de transacciones de la PITR a Cloud Storage.
  • SWITCHED_TO_CLOUD_STORAGE: La instancia completó el cambio de la ubicación de almacenamiento de los registros de transacciones de la PITR del disco a Cloud Storage.
  • CLOUD_STORAGE: la instancia almacena los registros de transacciones que se usan para la PITR en Cloud Storage.

Cambia el almacenamiento de registros de transacciones a Cloud Storage

Si tu instancia almacena sus registros de transacciones usados para la PITR en el disco, puedes cambiar la ubicación de almacenamiento a Cloud Storage sin tiempo de inactividad. El proceso general de cambiar la ubicación de almacenamiento tarda aproximadamente la duración del período de retención de registros de transacciones (días) en completarse. En cuanto comiences el cambio, los registros de transacciones comenzarán a acumularse en Cloud Storage. Durante la operación, puedes verificar el estado del proceso general con el comando que se indica en Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR.

Una vez que se completa el proceso general de cambio a Cloud Storage, Cloud SQL usa los registros de transacciones de Cloud Storage para la PITR.

gcloud

Para cambiar la ubicación de almacenamiento a Cloud Storage, usa el siguiente comando:

   gcloud sql instances patch INSTANCE_NAME \
      --switch-transaction-logs-to-cloud-storage
   

Reemplaza INSTANCE_NAME por el nombre de la instancia. La instancia debe ser una principal y no una de réplica. La respuesta es similar al ejemplo a continuación:

The following message is used for the patch API method.
{"name": "INSTANCE_NAME", "project": "PROJECT_NAME", "switchTransactionalLogsToCloudStorageEnabled": "true"}

Patching Cloud SQL instance...done.
Updated
[https://sqladmin.prod.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME].
   

Si el comando muestra un error, consulta Cómo solucionar problemas relacionados con el cambio a Cloud Storage para conocer los posibles pasos a seguir.

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia. La instancia debe ser una principal y no una de réplica.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Cuerpo JSON de la solicitud:

{
   "switchTransactionLogsToCloudStorageEnabled": true
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Si la solicitud muestra un error, consulta Cómo solucionar problemas relacionados con el cambio a Cloud Storage para conocer los posibles pasos a seguir.

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia. La instancia debe ser una principal y no una de réplica.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Cuerpo JSON de la solicitud:

{
   "switchTransactionLogsToCloudStorageEnabled": true
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Si la solicitud muestra un error, consulta Cómo solucionar problemas relacionados con el cambio a Cloud Storage para conocer los posibles pasos a seguir.

Configura la retención del registro de transacciones

Haz lo siguiente para establecer la cantidad de días que se retendrán los registros de escritura por adelantado:

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Abre el menú de más acciones Ícono de más acciones para la instancia en la que deseas establecer el registro de transacciones y selecciona Editar.
  3. En Personaliza tu instancia, expande la sección Protección de datos.
  4. En la sección Habilitar la recuperación de un momento determinado, expande Opciones avanzadas.
  5. Ingresa la cantidad de días que se retendrán los registros, entre 1 y 35 para la edición Cloud SQL Enterprise Plus o 1-7 para la edición Cloud SQL Enterprise.
  6. Haz clic en Guardar.

gcloud

Edita la instancia a fin de establecer la cantidad de días para conservar los registros de escritura por adelantado.

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia en la que deseas configurar el registro de transacciones.
  • DAYS_TO_RETAIN: Es la cantidad de días de registros de transacciones que se conservarán. Para la edición Enterprise Plus de Cloud SQL, el rango válido es de entre 1 y 35 días, con un valor predeterminado de 14 días. Para la edición Enterprise de Cloud SQL, el rango válido es de entre 1 y 7 días, con un valor predeterminado de 7 días.

    Si no se especifica ningún valor, se usa el valor predeterminado. Esto solo es válido cuando se habilita PITR. Para conservar más días de registros de transacciones, se requiere un tamaño de almacenamiento mayor.

  gcloud sql instances patch INSTANCE_NAME \
    --retained-transaction-log-days=DAYS_TO_RETAIN
  

REST v1

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia.
  • DAYS_TO_RETAIN: Es la cantidad de días que se retendrán los registros de transacciones. Para la edición Enterprise Plus de Cloud SQL, el rango válido es de entre 1 y 35 días, con un valor predeterminado de 14 días. Para la edición Enterprise de Cloud SQL, el rango válido es de entre 1 y 7 días, con un valor predeterminado de 7 días.

    Si no se especifica ningún valor, se usa el valor predeterminado. Esto solo es válido cuando se habilita PITR. Para conservar más días de registros de transacciones, se requiere un tamaño de almacenamiento mayor.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia.
  • DAYS_TO_RETAIN: Es la cantidad de días que se retendrán los registros de transacciones. Para la edición Enterprise Plus de Cloud SQL, el rango válido es de entre 1 y 35 días, con un valor predeterminado de 14 días. Para la edición Enterprise de Cloud SQL, el rango válido es de entre 1 y 7 días, con un valor predeterminado de 7 días.

    Si no se especifica ningún valor, se usa el valor predeterminado. Esto solo es válido cuando se habilita PITR. Para conservar más días de registros de transacciones, se requiere un tamaño de almacenamiento mayor.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Cuerpo JSON de la solicitud:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Solucionar problemas

Problema Soluciona problemas

argument --point-in-time: Failed to parse date/time:
Unknown string format: 2021-0928T30:54:03.094;
received: 2021-0928T30:54:03.094Z

O

Invalid value at 'body.clone_context.point_in_time'
(type.googleapis.com/google.protobuf.Timestamp), Field 'pointInTime',
Invalid time format: Failed to parse input,

La marca de tiempo que proporcionaste no es válida.

HTTP Error 400: Successful backup required for carrying out the operation was not found.

O

Successful backup required for carrying out the operation was not found. or Time where no backups can be found.

La marca de tiempo que proporcionaste se debe a una hora en la que no se pudieron encontrar las copias de seguridad o las coordenadas binlog.

Soluciona problemas relacionados con el cambio a Cloud Storage

En la siguiente tabla, se enumeran los posibles errores que pueden mostrarse con el código INVALID REQUEST cuando cambias la ubicación de almacenamiento de los registros de transacciones del disco a Cloud Storage.

Problema Soluciona problemas
Switching the storage location of the transaction logs used for PITR is not supported for instances with database type %s. Asegúrate de ejecutar el comando gcloud CLI o de realizar la solicitud a la API en una instancia de Cloud SQL para MySQL o Cloud SQL para PostgreSQL. No se admite cambiar la ubicación de almacenamiento de los registros de transacciones con gcloud CLI o la API de Cloud SQL Admin para Cloud SQL para SQL Server.
PostgreSQL transactional logging is not enabled on this instance. PostgreSQL usa el almacenamiento de registros de escritura anticipada como los registros de transacciones para la recuperación de un momento determinado (PITR). Para admitir PITR, PostgreSQL requiere que habilites el almacenamiento de registros de escritura anticipada en la instancia. Para obtener más información sobre cómo habilitar el almacenamiento de registros de escritura anticipada, consulta Habilita la PITR.
This instance is already storing transaction logs used for PITR in Cloud Storage Para verificar la ubicación de almacenamiento de los registros de transacciones, ejecuta el comando que se indica en Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR.
The instance is already switching transaction logs used for PITR from disk to Cloud Storage.

Espera a que se complete la operación de cambio.

Para verificar el estado de la operación y la ubicación de almacenamiento de los registros de transacciones, ejecuta el comando en Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR.

¿Qué sigue?