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).
Almacenamiento de registros para PITR
El 31 de mayo de 2024, lanzamos el almacenamiento de registros de transacciones para la PITR en Cloud Storage. Desde este lanzamiento, se aplican las siguientes condiciones:Todas las instancias de Cloud SQL que crees con la PITR habilitada antes de esta fecha almacenarán los registros de transacciones que se usan para la PITR en el disco.
Todas las instancias de Cloud SQL creadas con la PITR habilitada a partir de esta fecha almacenan estos registros en Cloud Storage.
Estos registros se actualizan de forma periódica y usan espacio de almacenamiento. Cloud SQL borra automáticamente los registros de transacciones con sus copias de seguridad automáticas asociadas. Esto sucede después de que se alcanza el valor establecido para el parámetro transactionLogRetentionDays
. Para obtener más información sobre este parámetro, consulta Registros y uso del disco.
Para las instancias que almacenan registros de transacciones en tienda solo en el disco, puedes configurar Cloud SQL para que almacene los registros en Cloud Storage. Para ello, primero desactiva y, luego, vuelve a habilitar la PITR. No puedes volver a mover los registros de Cloud Storage al disco.
Para asegurarte de que los registros de tu instancia se almacenen en Cloud Storage en lugar de en el disco, completa las siguientes acciones:
- Verifica si tu instancia almacena registros en el disco o en Cloud Storage.
- Verifica la arquitectura de red de la instancia. Si la instancia está en la arquitectura de red anterior, actualízala a la nueva arquitectura de red.
- Si el tamaño de los registros en el disco causa problemas de rendimiento en la instancia, desactiva la PITR y vuelve a habilitarla.
Registros y uso del disco
En las instancias con registros de transacciones 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.
Cloud SQL genera registros de transacciones con regularidad, y estos registros usan espacio de almacenamiento. Cloud SQL borra los registros de transacciones automáticamente con sus copias de seguridad automáticas asociadas. Esto sucede después de que se alcanza el valor establecido para el parámetro transactionLogRetentionDays
. Este parámetro especifica la cantidad de días que Cloud SQL retiene los registros de transacciones. Para la edición de Cloud SQL Enterprise Plus, puedes establecer la cantidad de días de registros de transacciones retenidos de 1 a 35, y para la edición de Cloud SQL Enterprise, puedes establecer este valor de 1 a 7.
Para saber cuánto disco usan los registros de transacciones, consulta la métrica bytes_used_by_data_type
de la instancia. El valor del tipo de datos muestra el tamaño de los registros de transacciones en el disco. En el caso de las instancias que almacenan registros de transacciones en tienda que se usan para la PITR en el disco, Cloud SQL borra definitivamente los datos del disco a diario para cumplir con la configuración de la PITR transactionLogRetentionDays
, como se describe en Retención de copias de seguridad automáticas.
Si la instancia tiene habilitada la PITR, y si el tamaño de los registros de transacciones en el disco causa un problema para la instancia, haz lo siguiente:
- Puedes desactivar la PITR y volver a habilitarla para asegurarte de que los registros se almacenen en Cloud Storage en la misma región que la instancia. Sin embargo, se borrarán todos los registros existentes, por lo que no podrás realizar un restablecimiento de un momento determinado antes del momento en el que volviste a habilitar la PITR.
- 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. Esta recomendación se aplica solo si tu instancia tiene habilitada la PITR y tus registros se almacenan en el disco.
- Si deseas borrar registros y recuperar el almacenamiento, puedes desactivar la PITR sin volver a habilitarla. Sin embargo, disminuir el almacenamiento en uso 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ámetrotransactionLogRetentionDays
, para el parámetrobackupRetentionSettings
, establece la cantidad deretainedBackups
en8
.
Para obtener más información sobre la PITR, consulta Recuperación de un momento determinado (PITR).
Modelo de recuperación de la base de datos para la 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 principal existente.
Consola
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Abre el menú de más acciones para la instancia en la que deseas habilitar PITR y haz clic en Editar.
- En Personaliza tu instancia, expande la sección Protección de datos.
- Selecciona la casilla de verificación Habilitar la recuperación de un momento determinado.
- 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.
- Haz clic en Guardar.
gcloud
- Muestra la descripción general de la instancia:
gcloud sql instances describe INSTANCE_NAME
- Si ves
enabled: false
en la secciónbackupConfiguration
, 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. - 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
- Confirma los cambios:
gcloud sql instances describe INSTANCE_NAME
En la sección
backupConfiguration
, veráspointInTimeRecoveryEnabled: 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)
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
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Abre el menú de más acciones para la instancia que deseas recuperar y haz clic en Crear clonación.
- De manera opcional, en la página Crear una clonación, actualiza el ID de la clonación nueva.
- Selecciona Clonar desde un momento anterior.
- Ingresa un tiempo de PITR.
- 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. - 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á
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:
Desactiva PITR
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Abre el menú de más acciones para la instancia que deseas inhabilitar y selecciona Editar.
- En Personaliza tu instancia, expande la sección Protección de datos.
- Desmarca la opción Habilitar la recuperación de un momento determinado.
- Haz clic en Guardar.
gcloud
- Desactiva la recuperación de un momento determinado:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Confirma los cambios:
gcloud sql instances describe INSTANCE_NAME
En la sección
backupConfiguration
, veráspointInTimeRecoveryEnabled: 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 SQLSERVER_2019_STANDARD us-central-1 DISK my_02 SQLSERVER_2019_STANDARD 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.CLOUD_STORAGE
: la instancia almacena los registros de transacciones que se usan para la PITR en Cloud Storage.
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
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Abre el menú de más acciones para la instancia en la que deseas establecer el registro de transacciones y selecciona Editar.
- En Personaliza tu instancia, expande la sección Protección de datos.
- En la sección Habilitar la recuperación de un momento determinado, expande Opciones avanzadas.
- 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.
- 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. 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 |
---|---|
O
|
La marca de tiempo que proporcionaste no es válida. |
O
|
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. |
¿Qué sigue?
- Configura marcas en tu clonación.