Esta página describe cómo usar la recuperación de punto en el tiempo (PITR) para restaurar su instancia principal de Cloud SQL.
Para obtener más información sobre PITR, consulte Recuperación en un punto en el tiempo (PITR) .
Si crea una instancia de Cloud SQL Enterprise Plus, PITR se habilita de forma predeterminada, independientemente del método de creación. Si desea deshabilitar la función , debe hacerlo manualmente.
Si crea una instancia de Cloud SQL Enterprise Edition en el Google Cloud En la consola, PITR está habilitado de forma predeterminada. De lo contrario, si crea la instancia mediante la CLI de gcloud , Terraform o la API de administración de Cloud SQL, PITR estará deshabilitado de forma predeterminada. En este caso, si desea habilitar la función , deberá hacerlo manualmente.
Almacenamiento de registros para PITR
Cloud SQL utiliza el archivado de registro de escritura anticipada (WAL) para PITR.El 9 de enero de 2023, lanzamos el almacenamiento de registros de escritura anticipada para PITR en Cloud Storage . Desde entonces, se aplican las siguientes condiciones:
- Todas las instancias de Cloud SQL Enterprise Plus almacenan sus registros de escritura anticipada en Cloud Storage. Solo las instancias de Cloud SQL Enterprise Plus que actualice desde Cloud SQL Enterprise y que tuvieran PITR habilitado antes del 9 de enero de 2023 seguirán almacenando sus registros en el disco .
- Las instancias de la edición Enterprise de Cloud SQL creadas con PITR habilitado antes del 9 de enero de 2023 continúan almacenando sus registros en el disco .
- Si actualiza una instancia de Cloud SQL Enterprise Edition después del 15 de agosto de 2024 que almacena registros de transacciones para PITR en disco a Cloud SQL Enterprise Plus Edition, el proceso de actualización cambiará automáticamente la ubicación de almacenamiento de los registros de transacciones utilizados para PITR a Cloud Storage. Para obtener más información, consulte Actualizar una instancia a Cloud SQL Enterprise Plus Edition mediante una actualización local .
- Todas las instancias de la edición Enterprise de Cloud SQL que cree con PITR habilitado después del 9 de enero de 2023 almacenan registros en Cloud Storage.
Para las instancias que almacenan registros de escritura anticipada solo en disco, puede cambiar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR del disco a Cloud Storage mediante la CLI de gcloud o la API de administración de Cloud SQL sin incurrir en tiempo de inactividad. Para obtener más información, consulte Cambiar el almacenamiento de registros de transacciones a Cloud Storage .
Período de retención de registros
Para ver si una instancia almacena los registros utilizados para PITR en Cloud Storage, utilice Verificar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR .
Después de usar un cliente PostgreSQL como psql
o pgAdmin
para conectarse a una base de datos de la instancia, ejecute el siguiente comando: show archive_command
. Si hay registros de escritura anticipada archivados en Cloud Storage, aparecerá -async_archive -remote_storage
.
Todas las demás instancias existentes que tienen PITR habilitado continúan teniendo sus registros almacenados en el disco.
Si los registros se almacenan en Cloud Storage, Cloud SQL los carga cada cinco minutos o menos. Por lo tanto, si una instancia de Cloud SQL está disponible, se puede recuperar a la hora más reciente. Sin embargo, si la instancia no está disponible , el objetivo del punto de recuperación suele ser de cinco minutos o menos. Use la CLI de gcloud o la API de administración para comprobar la hora más reciente a la que puede restaurar la instancia y realice la recuperación a esa hora.
Los registros de escritura anticipada utilizados con PITR se eliminan automáticamente con su copia de seguridad automática asociada, lo que generalmente ocurre después de alcanzar el valor establecido en transactionLogRetentionDays
. Este es el número de días de registros de transacciones que Cloud SQL conserva para PITR. Para la edición Cloud SQL Enterprise Plus, puede establecer el valor entre 1 y 35, y para la edición Cloud SQL Enterprise, entre 1 y 7.
Cuando restaura una copia de seguridad en una instancia de Cloud SQL antes de habilitar PITR, pierde los registros de escritura anticipada que permiten el funcionamiento de PITR.
En las instancias con clave de cifrado administrada por el cliente (CMEK) , los registros de escritura anticipada se cifran con la versión más reciente de la CMEK. Para realizar una restauración, deben estar disponibles todas las versiones de la clave más recientes durante el número de días configurado en el parámetro retained-transaction-log-days
.
En el caso de las instancias con registros de escritura anticipada almacenados en Cloud Storage, estos 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 duración máxima para PITR) no genera ningún coste adicional por instancia.
Registros y uso del disco
Si su instancia tiene PITR habilitado y el tamaño de sus registros de escritura anticipada en el disco está causando un problema para su instancia:
Puede cambiar la ubicación de almacenamiento de los registros utilizados para PITR desde el disco a Cloud Storage sin tiempo de inactividad mediante gcloud CLI o la API de administración de Cloud SQL.
Puede actualizar su instancia a la edición Cloud SQL Enterprise Plus .
Puede aumentar el tamaño de almacenamiento de la instancia, pero el aumento del tamaño del registro de escritura anticipada en el uso del disco puede ser temporal.
Recomendamos habilitar el aumento automático de almacenamiento para evitar problemas de almacenamiento inesperados. Esta recomendación solo aplica si su instancia tiene PITR habilitado y sus registros se almacenan en disco.
Puede desactivar PITR si desea eliminar registros y recuperar almacenamiento. Reducir los registros de escritura anticipada utilizados no reduce el tamaño del disco aprovisionado para la instancia.
Los registros se purgan una vez al día, no de forma continua. Si se configura la retención de registros en dos días, se conservarán al menos dos días de registros y como máximo tres. Recomendamos configurar el número de copias de seguridad en uno más que los días de retención de registros.
Por ejemplo, si especifica
7
para el valor del parámetrotransactionLogRetentionDays
, entonces para el parámetrobackupRetentionSettings
, establezca el número deretainedBackups
en8
.
Habilitar PITR
Cuando se crea una nueva instancia en el Google Cloud consola, tanto las copias de seguridad automatizadas como la opción Habilitar recuperación en un punto determinado se habilitan automáticamente.El siguiente procedimiento habilita PITR en una instancia principal existente .
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Abrir el menú de más acciones
para la instancia en la que desea habilitar PITR y haga clic en Editar .
- En Personalizar su instancia , expanda la sección Protección de datos .
- Seleccione la casilla de verificación Habilitar recuperación de punto en el tiempo .
- En el campo Días de registros , ingrese la cantidad de días que desea conservar los registros, de 1 a 35 para la edición Cloud SQL Enterprise Plus, o de 1 a 7 para la edición Cloud SQL Enterprise.
- Haga clic en Guardar .
nube g
- Mostrar la descripción general de la instancia:
gcloud sql instances describe INSTANCE_NAME
- Si ve
enabled: false
en la secciónbackupConfiguration
, habilite las copias de seguridad programadas:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Especifique el parámetro
backup-start-time
utilizando el formato de 24 horas en la zona horaria UTC±00. - Habilitar PITR:
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Si habilita PITR en una instancia principal, también puede configurar la cantidad de días durante los cuales desea conservar los registros de transacciones agregando el siguiente parámetro:
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Confirma tu cambio:
gcloud sql instances describe INSTANCE_NAME
En la sección
backupConfiguration
, verápointInTimeRecoveryEnabled: true
si el cambio fue exitoso.
Terraformar
Para habilitar PITR, utilice un recurso Terraform .
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus 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 establece valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz ).
- En Cloud Shell , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Realizar PITR en una instancia no disponible
Consola
Es posible que desee recuperar una instancia que no está disponible para una zona diferente debido a las siguientes razones:
- La zona donde está configurada la instancia no es accesible. Esta instancia tiene un estado
FAILED
. - La instancia se encuentra en mantenimiento. El estado de esta instancia es
MAINTENANCE
.
Para recuperar una instancia no disponible, complete los siguientes pasos:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentre la fila de la instancia a clonar.
- En la columna Acciones , haga clic en el menú Más acciones .
- Haga clic en Crear clon .
- En la página Crear un clon , complete las siguientes acciones:
- En el campo ID de instancia , actualice el ID de instancia, si es necesario.
- Haga clic en Clonar desde un punto anterior en el tiempo .
- En el campo Punto en el tiempo , seleccione la fecha y hora a partir de las cuales desea clonar los datos. Esto recupera el estado de la instancia a partir de ese punto en el tiempo.
- Haga clic en Crear clon .
Mientras se inicializa el clon, regresará a la página de listado de instancias.
nube g
Es posible que desee recuperar una instancia que no está disponible para una zona diferente porque la zona en la que está configurada la instancia no es accesible.
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 usuario o servicio que ejecuta el comando gcloud sql instances clone
debe tener el permiso cloudsql.instances.clone
. Para obtener más información sobre los permisos necesarios para ejecutar comandos de la CLI de gcloud , consulte Permisos de Cloud SQL .
REST versión 1
Es posible que desee recuperar una instancia que no está disponible para una zona diferente porque la zona en la que está configurada la instancia no es accesible.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- SOURCE_INSTANCE_NAME : el nombre de la instancia de origen.
- TARGET_INSTANCE_NAME : 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 UTC y en el formato RFC 3339 (por ejemplo,
2012-11-15T16:19:00.094Z
). - ZONE_NAME : Opcional. El nombre de la zona principal de la instancia de destino. Se utiliza para especificar una zona principal diferente para la instancia de Cloud SQL que desea clonar. En una instancia regional, esta zona reemplaza la principal, pero la secundaria permanece igual que la instancia.
- SECONDARY_ZONE_NAME : Opcional. El nombre de la zona secundaria de la instancia de destino. Se utiliza para especificar una zona secundaria diferente para la instancia regional de Cloud SQL que desea 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
La cuenta de usuario o servicio que usa el método de API instances.clone
debe tener el permiso cloudsql.instances.clone
. Para obtener más información sobre los permisos necesarios para usar los métodos de API, consulte Permisos de Cloud SQL .
REST v1beta4
Es posible que desee recuperar una instancia que no está disponible para una zona diferente porque la zona en la que está configurada la instancia no es accesible.
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- SOURCE_INSTANCE_NAME : el nombre de la instancia de origen.
- TARGET_INSTANCE_NAME : 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 UTC y en el formato RFC 3339 (por ejemplo,
2012-11-15T16:19:00.094Z
). - ZONE_NAME : Opcional. El nombre de la zona principal de la instancia de destino. Se utiliza para especificar una zona principal diferente para la instancia de Cloud SQL que desea clonar. En una instancia regional, esta zona reemplaza la principal, pero la secundaria permanece igual que la instancia.
- SECONDARY_ZONE_NAME : Opcional. El nombre de la zona secundaria de la instancia de destino. Se utiliza para especificar una zona secundaria diferente para la instancia regional de Cloud SQL que desea 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
La cuenta de usuario o servicio que usa el método de API instances.clone
debe tener el permiso cloudsql.instances.clone
. Para obtener más información sobre los permisos necesarios para usar los métodos de API, consulte Permisos de Cloud SQL .
Si intenta crear un clon de PITR en un momento posterior al último momento recuperable, aparecerá el siguiente mensaje de error:
The timestamp for point-in-time recovery is after the latest recovery time of Timestamp of latest recovery time. Clone the instance with a time that's earlier than this recovery time.
Obtenga el último tiempo de recuperación
Para una instancia disponible, puede realizar una PITR hasta la fecha más reciente. Si la instancia no está disponible y los registros de la instancia están almacenados en Cloud Storage , puede recuperar la fecha de recuperación más reciente y realizar la PITR hasta esa fecha. En ambos casos, puede restaurar la instancia a una zona principal o secundaria diferente proporcionando valores para las zonas preferidas.
nube g
Obtenga la última hora a la que puede recuperar una instancia de Cloud SQL que no está disponible.
Reemplace INSTANCE_NAME con el nombre de la instancia que está consultando.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_NAME : el nombre de la instancia para la que estás consultando el último tiempo de recuperación
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto
- INSTANCE_NAME : el nombre de la instancia para la que estás consultando el último tiempo de recuperación
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
Realizar PITR
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Abrir el menú de más acciones
para la instancia que desea recuperar y haga clic en Crear clon .
- Opcionalmente, en la página Crear un clon , actualice el ID del nuevo clon.
- Seleccione Clonar desde un punto anterior en el tiempo .
- Introduzca un tiempo PITR.
- Haga clic en Crear clon .
nube g
Crea un clon usando PITR.
Reemplace lo siguiente:
- SOURCE_INSTANCE_NAME : Nombre de la instancia desde la que estás restaurando.
- NEW_INSTANCE_NAME - Nombre para el clon.
- TIMESTAMP : Zona horaria UTC de 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 versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 punto en el tiempo para restaurar hasta
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 punto en el tiempo para restaurar hasta
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Desactivar PITR
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Abrir el menú de más acciones
para la instancia que desea desactivar y seleccione Editar .
- En Personalizar su instancia , expanda la sección Protección de datos .
- Desactivar Habilitar recuperación de punto en el tiempo .
- Haga clic en Guardar .
nube g
- Desactivar la recuperación de punto en el tiempo:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Confirma tu cambio:
gcloud sql instances describe INSTANCE_NAME
En la sección
backupConfiguration
, verápointInTimeRecoveryEnabled: false
si el cambio fue exitoso.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Verifique la ubicación de almacenamiento de los registros de transacciones utilizados para PITR
Puede verificar dónde su instancia de Cloud SQL almacena los registros de transacciones utilizados para PITR.
nube g
Para determinar si su instancia almacena registros de PITR en el disco o en el almacenamiento en la nube, utilice el siguiente comando:
gcloud sql instances describe INSTANCE_NAME
Reemplace INSTANCE_NAME con el nombre de la instancia.
Para varias instancias en el mismo proyecto, también puede consultar la ubicación de almacenamiento de los registros de transacciones. Para determinar la ubicación de varias instancias, utilice el siguiente comando:
gcloud sql instances list --show-transactional-log-storage-state
Ejemplo de respuesta:
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 la salida del comando, el campo transactionalLogStorageState
o la columna TRANSACTIONAL_LOG_STORAGE_STATE
proporciona información sobre dónde se almacenan los registros de transacciones de PITR para la instancia. Los posibles estados de almacenamiento del registro de transacciones son los siguientes:
-
DISK
: La instancia almacena los registros de transacciones utilizados para PITR en disco. Si actualiza una instancia de Cloud SQL Enterprise Edition a Cloud SQL Enterprise Plus Edition, el proceso de actualización cambia automáticamente la ubicación de almacenamiento de registros a Cloud Storage. Para obtener más información, consulte Actualizar una instancia a Cloud SQL Enterprise Plus Edition mediante una actualización local . También puede cambiar la ubicación de almacenamiento mediante la CLI de gcloud o la API de administración de Cloud SQL sin actualizar la edición de su instancia ni incurrir en tiempo de inactividad. Para obtener más información, consulte Cambiar el almacenamiento de registros de transacciones a Cloud Storage . -
SWITCHING_TO_CLOUD_STORAGE
: la instancia está cambiando la ubicación de almacenamiento de los registros de transacciones PITR a Cloud Storage. -
SWITCHED_TO_CLOUD_STORAGE
: la instancia ha completado el cambio de la ubicación de almacenamiento de los registros de transacciones PITR del disco al almacenamiento en la nube. -
CLOUD_STORAGE
: la instancia almacena los registros de transacciones utilizados para PITR en Cloud Storage.
Cambiar el almacenamiento del registro de transacciones al almacenamiento en la nube
Si su instancia almacena los registros de transacciones utilizados para PITR en disco, puede cambiar la ubicación de almacenamiento a Cloud Storage sin incurrir en tiempo de inactividad. El proceso de cambio de ubicación de almacenamiento tarda aproximadamente lo mismo que el período de retención del registro de transacciones (días). En cuanto inicie el cambio, los registros de transacciones empezarán a acumularse en Cloud Storage. Durante la operación, puede comprobar el estado del proceso con el comando "Comprobar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR ".
Una vez completado el proceso general de cambio a Cloud Storage, Cloud SQL utiliza registros de transacciones de Cloud Storage para PITR.
nube g
Para cambiar la ubicación de almacenamiento a Almacenamiento en la nube, utilice el siguiente comando:
gcloud sql instances patch INSTANCE_NAME \ --switch-transaction-logs-to-cloud-storage
Reemplace INSTANCE_NAME con el nombre de la instancia. La instancia debe ser principal, no una réplica. La respuesta es similar a la siguiente:
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 devuelve un error, consulte Solucionar problemas del cambio a almacenamiento en la nube para conocer los posibles pasos siguientes.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : ID de la instancia. La instancia debe ser principal y no una 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Si la solicitud devuelve un error, consulte Solucionar problemas del cambio a almacenamiento en la nube para conocer los posibles pasos siguientes.
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID del proyecto.
- INSTANCE_ID : ID de la instancia. La instancia debe ser principal y no una 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Si la solicitud devuelve un error, consulte Solucionar problemas del cambio a almacenamiento en la nube para conocer los posibles pasos siguientes.
Establecer la retención del registro de transacciones
Para establecer la cantidad de días que se conservarán los registros de escritura anticipada:
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Abrir el menú de más acciones
para la instancia en la que desea configurar el registro de transacciones y seleccionar Editar .
- En Personalizar su instancia , expanda la sección Protección de datos .
- En la sección Habilitar recuperación de punto en el tiempo , expanda Opciones avanzadas .
- Ingrese la cantidad de días que desea conservar los registros, de 1 a 35 para la edición Cloud SQL Enterprise Plus o de 1 a 7 para la edición Cloud SQL Enterprise.
- Haga clic en Guardar .
Edite la instancia para establecer la cantidad de días que se conservarán los registros de escritura anticipada. Reemplace lo siguiente: DAYS_TO_RETAIN : Número de días que se conservarán los registros de transacciones. Para la edición Cloud SQL Enterprise Plus, el rango válido es de 1 a 35 días, con un valor predeterminado de 14 días. Para la edición Cloud SQL Enterprise, el rango válido es de 1 a 7 días, con un valor predeterminado de 7 días. Si no especifica un valor, Cloud SQL usa el valor predeterminado. Esto solo es válido cuando PITR está habilitado. Mantener más días de registros de transacciones requiere un mayor tamaño de almacenamiento. nube g
gcloud sql instances patch INSTANCE_NAME
--retained-transaction-log-days=DAYS_TO_RETAIN
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones: DAYS_TO_RETAIN : el número de días que se conservarán los registros de transacciones. Para la edición Cloud SQL Enterprise Plus, el rango válido es de 1 a 35 días, con un valor predeterminado de 14 días. Para la edición Cloud SQL Enterprise, el rango válido es de 1 a 7 días, con un valor predeterminado de 7 días. Si no se especifica ningún valor, se utiliza el valor predeterminado. Esto solo es válido cuando PITR está habilitado. Mantener más días de registros de transacciones requiere mayor capacidad de almacenamiento. Método HTTP y URL: Cuerpo JSON de la solicitud: Para enviar su solicitud, expanda una de estas opciones: Debería recibir una respuesta JSON similar a la siguiente: REST versión 1
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
{
"settings":
{
"backupConfiguration":
{
"transactionLogRetentionDays": "DAYS_TO_RETAIN"
}
}
}
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones: DAYS_TO_RETAIN : el número de días que se conservarán los registros de transacciones. Para la edición Cloud SQL Enterprise Plus, el rango válido es de 1 a 35 días, con un valor predeterminado de 14 días. Para la edición Cloud SQL Enterprise, el rango válido es de 1 a 7 días, con un valor predeterminado de 7 días. Si no se especifica ningún valor, se utiliza el valor predeterminado. Esto solo es válido cuando PITR está habilitado. Mantener más días de registros de transacciones requiere mayor capacidad de almacenamiento. Método HTTP y URL: Cuerpo JSON de la solicitud: Para enviar su solicitud, expanda una de estas opciones: Debería recibir una respuesta JSON similar a la siguiente: REST v1beta4
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
{
"settings":
{
"backupConfiguration":
{
"transactionLogRetentionDays": "DAYS_TO_RETAIN"
}
}
}
Solucionar problemas
Asunto | Solución de problemas |
---|---|
O | La marca de tiempo que proporcionó no es válida. |
O | La marca de tiempo que proporcionó corresponde a un momento en el que no se pudieron encontrar las copias de seguridad o las coordenadas del binlog. |
Solucionar problemas al cambiar al almacenamiento en la nube
En la siguiente tabla se enumeran los posibles errores que pueden aparecer con el código INVALID REQUEST
al cambiar la ubicación de almacenamiento de los registros de transacciones del disco al almacenamiento en la nube.
Asunto | Solución de problemas |
---|---|
Switching the storage location of the transaction logs used for PITR is not supported for instances with database type %s. | Asegúrese de ejecutar el comando de la CLI de gcloud o realizar la solicitud a la API en una instancia de Cloud SQL para MySQL o Cloud SQL para PostgreSQL. No se permite cambiar la ubicación de almacenamiento de los registros de transacciones mediante la CLI de gcloud ni la API de administración de Cloud SQL en Cloud SQL para SQL Server. |
PostgreSQL transactional logging is not enabled on this instance. | PostgreSQL utiliza el registro de escritura anticipada como registro de transacciones para la recuperación a un punto en el tiempo (PITR). Para ser compatible con PITR, PostgreSQL requiere que se habilite el registro de escritura anticipada en la instancia. Para obtener más información sobre cómo habilitar el registro de escritura anticipada, consulte Habilitar 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, ejecute el comando en Verificar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR . |
The instance is already switching transaction logs used for PITR from disk to Cloud Storage. | Espere 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, ejecute el comando en Verificar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR . |
¿Qué sigue?
- Configurar indicadores en tu clon