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 la PITR, consulta PITR.

Almacenamiento de registros para PITR

La PITR usa registros de transacciones. Estos registros se actualizan de forma periódica y usan espacio de almacenamiento. Los registros de transacciones se borran de forma automática, junto con la copia de seguridad automática que se asocia a ellos. Por lo general, esto ocurre luego de 7 días.

Si el tamaño de los registros de transacciones genera un problema en la instancia, haz lo siguiente:

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

  • Te recomendamos que habilites el aumento automático de almacenamiento para evitar problemas inesperados.

  • Puedes inhabilitar la PITR si deseas borrar los registros y recuperar el almacenamiento. Disminuir el almacenamiento usado no reduce el tamaño del almacenamiento 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 para garantizar un mínimo de días específicos de retención.

Modelo de recuperación de la base de datos para PITR

Cuando habilitas la PITR en una instancia, Cloud SQL establece de manera automática el modelo de recuperación de las bases de datos existentes y posteriores en el modelo de recuperación completo.

Para obtener más información sobre los modelos de recuperación de SQL Server, consulta la documentación de Microsoft.

Habilita la PITR

Cuando creas una instancia nueva en la consola de Google Cloud, la configuración Copias de seguridad automáticas se habilita de forma automática.

Con el siguiente procedimiento, se habilita la PITR en una instancia 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 la 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. Expande Opciones avanzadas.
  6. Ingresa la cantidad de días que se retendrán los registros, entre 1 y 7.
  7. 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 la 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.

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)

HTTP method and 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)

HTTP method and 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

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 una hora de PITR.
  6. Selecciona Todas las bases de datos o especifica un nombre de base de datos.
    Si especificas un nombre de base de datos, solo se puede seleccionar uno. De forma predeterminada, la PITR es para todas las bases de datos.
  7. Haz clic en Crear clon.

gcloud

Crea una clonación 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á

En la solicitud JSON, tienes la opción de especificar hasta un nombre de base de datos específico, de la siguiente manera: "databaseNames": "my-database"

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á

En la solicitud JSON, tienes la opción de especificar hasta un nombre de base de datos específico, de la siguiente manera: "databaseNames": "my-database"

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:

Inhabilita la 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.
  6. En la página Descripción general de la instancia, en Configuración, la configuración de PITR aparece como inhabilitada.

gcloud

  1. Inhabilita 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: 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: 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 PITR en el disco o Cloud Storage, usa el siguiente comando:

   gcloud sql instances describe INSTANCE_NAME
   

Reemplaza INSTANCE_NAME por el nombre de la instancia.

En el resultado del comando, el campo transactionalLogStorageState proporciona información sobre dónde se almacenan los registros de transacciones de PITR para la instancia.

La ubicación de almacenamiento del registro de transacciones que se muestra es DISK. Las instancias de SQL Server pueden almacenar los registros de transacciones que se usan para PITR solo en el disco.

Configura la retención del registro de transacciones

Para establecer la cantidad de días que se retendrán los registros de transacciones, haz lo siguiente:

Consola

  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 7.
  6. Haz clic en Guardar.

gcloud

Edita la instancia para establecer la cantidad de días que se retendrán los registros de transacciones.

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. El rango válido es entre 1 y 7. Si no se especifica, el valor predeterminado es 7. Solo es válido cuando la recuperación de un momento determinado está habilitada. 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:

  • days-to-retain: es la cantidad de días que se retendrán los registros de transacciones, de 1 a 7
  • project-id: El ID del proyecto
  • instance-id: 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":
    {
      "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:

  • days-to-retain: es la cantidad de días que se retendrán los registros de transacciones, de 1 a 7
  • project-id: El ID del proyecto
  • instance-id: 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":
    {
      "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:

¿Qué sigue?