En esta página, se describe cómo crear copias de seguridad de las instancias de Cloud SQL en un almacén de copias de seguridad, lo que proporciona inmutabilidad y retención forzosa.
En la consola de Google Cloud , puedes crear copias de seguridad de las instancias de Cloud SQL en un backup vault aplicando planes de copia de seguridad. Puedes crear copias de seguridad de cualquiera de estas dos maneras. Ambos métodos te permiten almacenar tus copias de seguridad de forma segura en una bóveda de copias de seguridad, lo que proporciona una forma confiable de recuperar tus instancias de Cloud SQL en caso de pérdida de datos o de otros eventos inesperados.
- Copias de seguridad programadas: Crea copias de seguridad automáticas de las instancias de Cloud SQL en intervalos específicos, como diarios, semanales, mensuales o anuales.
- Copias de seguridad a pedido. Puedes crear copias de seguridad a pedido cuando sea necesario. Las copias de seguridad a pedido son útiles para crear copias de seguridad antes de realizar cambios significativos en tus bases de datos o para la protección de datos ad hoc.
Antes de comenzar
Habilita la API de Backup and DR en la ubicación de las instancias de Cloud SQL.
Asigna roles y permisos de IAM al usuario de copia de seguridad.
Configura las Estadísticas de observabilidad en tu bucket para supervisar los trabajos de copia de seguridad de Backup and DR.
Para las instancias habilitadas para CMEK: Si la instancia de Cloud SQL de origen está protegida con una clave de encriptación administrada por el cliente (CMEK), debes otorgar el rol de Identity and Access Management
roles/cloudkms.cryptoKeyEncrypterDecrypteral agente de servicio de Backup and DR. Este permiso es obligatorio en la clave de Cloud Key Management Service que usa la instancia de Cloud SQL de origen.El agente de servicio de Backup and DR se encuentra en el proyecto en el que se encuentra la backup vault. Otorga este rol a la cuenta de servicio antes de intentar proteger las instancias de Cloud SQL con CMEK habilitadas.
Roles y permisos de IAM para el usuario de copia de seguridad
Para obtener los permisos que necesitas para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto de almacén de copias de seguridad:
- Usuario de copia de seguridad de Backup and DR (
roles/backupdr.backupUser) - Visualizador (
roles/viewer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para configurar copias de seguridad programadas o ejecutar copias de seguridad a pedido:
-
backupdr.backupPlans.list -
backupdr.backupPlanAssociations.createForCloudSqlInstance -
backupdr.backupPlanAssociations.fetchForCloudSqlInstance -
backupdr.backupPlanAssociations.updateForCloudSqlInstance -
backupdr.backupPlanAssociations.list -
backupdr.backupPlanAssociations.getForCloudSqlInstance -
backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance -
backupdr.backupPlanAssociations.deleteForCloudSqlInstance -
backupdr.backupPlans.useForCloudSqlInstance -
backupdr.locations.list -
backupdr.operations.get -
cloudasset.assets.searchAllResources
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Permisos dinámicos necesarios para cada llamada a la API
En la siguiente tabla, se enumeran los permisos dinámicos necesarios para cada llamada a la API:
| Recurso | Acción que se realizará en el recurso | Permisos necesarios para cada llamada a la API | Proyecto al que se le asignará el permiso |
|---|---|---|---|
| Backup vault | Crear una backup vault | backupdr.backupVaults.create |
Proyecto del administrador |
| Borrar la backup vault | backupdr.backupVaults.delete |
Proyecto del administrador | |
| Actualiza la backup vault | backupdr.backupVaults.update |
Proyecto del administrador | |
| Enumera las backup vaults | backupdr.backupVaults.list |
Proyecto del administrador | |
| Obtén una backup vault | backupdr.backupVaults.get |
Proyecto del administrador | |
| Plan de creación de copias de seguridad | Crear plan de copia de seguridad | backupdr.backupPlans.create |
Proyecto del administrador |
| Borrar plan de copia de seguridad | backupdr.backupPlans.delete |
Proyecto del administrador | |
| Obtener plan de copia de seguridad | backupdr.backupPlans.get |
Proyecto del administrador | |
| Enumera los planes de copias de seguridad | backupdr.backupPlans.list |
Proyecto del administrador | |
| Actualiza el plan de copias de seguridad | backupdr.backupPlans.update |
Proyecto del administrador | |
| Obtén la revisión del plan de copias de seguridad | backupdr.backupPlanRevisions.get |
Proyecto del administrador | |
| Enumera las revisiones del plan de copias de seguridad | backupdr.backupPlanRevisions.list |
Proyecto del administrador | |
| Crea una revisión del plan de copia de seguridad | backupdrproducer.backupPlanRevisions.create |
Proyecto del administrador | |
| Borra la revisión del plan de copia de seguridad | backupdrproducer.backupPlanRevisions.delete |
Proyecto del administrador | |
| Asociaciones de planes de copia de seguridad | Crea una asociación de plan de copia de seguridad | cloudsql.instances.updateBackupDrConfigbackupdr.backupPlanAssociations.createForCloudSqlInstancebackupdr.backupPlans.useForCloudSqlInstance |
Proyecto de carga de trabajo Proyecto de carga de trabajo Proyecto del administrador |
| Borra la asociación del plan de copias de seguridad | backupdr.backupPlanAssociations.deleteForCloudSqlInstancecloudsql.instances.updateBackupDrConfig |
Proyecto de carga de trabajo Proyecto de carga de trabajo |
|
| Activa una copia de seguridad a pedido en la asociación del plan de copia de seguridad | backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Obtén la asociación del plan de copia de seguridad | backupdr.backupPlanAssociations.getForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Enumera las asociaciones de planes de copia de seguridad | backupdr.backupPlanAssociations.list |
Proyecto de carga de trabajo | |
| Recupera las asociaciones de planes de copia de seguridad | backupdr.backupPlanAssociations.fetchForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Cambia las asociaciones de planes de copias de seguridad | backupdr.backupPlanAssociations.updateForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Fuente de datos | Obtén la fuente de datos | backupdr.bvdataSources.get |
Proyecto del administrador |
| Enumera la fuente de datos | backupdr.backupPlanAssociations.list |
Proyecto del administrador | |
| Restablecimiento de la recuperación de un momento determinado | backupdr.bvdataSources.useReadOnlyForCloudSqlInstance |
Proyecto del administrador | |
| Copias de seguridad | Obtener copia de seguridad | backupdr.bvbackups.get |
Proyecto del administrador |
| Mostrar una lista de las copias de seguridad | backupdr.bvbackups.list |
Proyecto del administrador | |
| Recupera copias de seguridad | backupdr.bvbackups.fetchForCloudSqlInstance |
Proyecto del administrador | |
| Borrar copia de seguridad | backupdr.bvbackups.delete |
Proyecto del administrador | |
| Restaurar copia de seguridad | backupdr.bvbackups.useReadOnlyForCloudSqlInstance |
Proyecto del administrador | |
| Referencias de fuentes de datos | Obtén la referencia de la fuente de datos | backupdr.dataSourceReferences.getForCloudSqlInstance |
Proyecto de carga de trabajo |
| Enumera las referencias de fuentes de datos | backupdr.dataSourceReferences.list |
Proyecto de carga de trabajo | |
| Recupera referencias de fuentes de datos | backupdr.dataSourceReferences.fetchForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Operaciones | Mostrar lista de operaciones | backupdr.operations.list |
Proyecto respectivo |
| Obtener operaciones | backupdr.operations.get |
Proyecto respectivo |
Otorga acceso a la backup vault en el proyecto de Cloud SQL
Para crear una copia de seguridad de una instancia de Cloud SQL en un proyecto diferente de donde se
crea la backup vault, debes otorgar el rol de IAM de
Operador de Cloud SQL de Backup and DR (roles/backupdr.cloudSqlOperator)
al agente de servicio de la backup vault dentro del
proyecto de Cloud SQL. Si el proyecto de backup vault en el que se almacenarán las copias de seguridad es diferente del proyecto de Cloud SQL, asigna el rol al agente de servicio de backup vault dentro del proyecto de Cloud SQL.
Para crear una copia de seguridad de una instancia de Cloud SQL en el mismo proyecto en el que se crea la backup vault, no es necesario otorgar ningún rol.
Para obtener información sobre cómo otorgar roles al agente de servicio de backup vault en el proyecto del que quieres crear una copia de seguridad, consulta Otorga un rol al agente de servicio.
Configura una copia de seguridad programada
Usa las siguientes instrucciones para configurar una copia de seguridad programada para las instancias de Cloud SQL.
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.
Haz clic en Programar copia de seguridad.
En la lista Tipo de recurso, selecciona Cloud SQL.
En la lista Proyecto, selecciona un proyecto en el que se encuentre la instancia de Cloud SQL.
En la lista Región, selecciona la región en la que se encuentran tus instancias.
En la lista Recursos, haz clic en Explorar. Elige la instancia de Cloud SQL de la que quieres crear una copia de seguridad y haz clic en Listo.
Haz clic en Continuar.
En la lista Plan de copia de seguridad, haz clic en Seleccionar.
Elige un plan de copia de seguridad con el que quieras proteger las instancias de Cloud SQL.
Haz clic en Listo.
Revisa los detalles de la copia de seguridad y haz clic en Programar.
gcloud
Crea un plan de copia de seguridad y una instancia de Cloud SQL.
Configura una copia de seguridad programada con el comando
gcloud backup-dr backup-plan-associations create:gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=CSQL_REGION \ --project=CSQL_PROJECT_ID \ --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \ --resource-type=sqladmin.googleapis.com/Instance \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLANReemplaza lo siguiente:
BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad.CSQL_REGION: Es la región en la que se encuentran las instancias de Cloud SQL.CSQL_PROJECT_ID: el nombre del proyecto en el que se encuentran las instancias de Cloud SQL.CSQL_INSTANCE_ID: Es el ID de la instancia de Cloud SQL.PROJECT_ID: Es el nombre del proyecto en el que existen los planes de copia de seguridad.LOCATION: Es la ubicación de la instancia.BACKUP_PLAN: Es el nombre del plan de copia de seguridad.
Terraform
Puedes usar un recurso de Terraform para configurar una copia de seguridad programada.
Cambia el plan de copia de seguridad asociado para una instancia de Cloud SQL
Puedes cambiar el plan de copia de seguridad que se aplica a una instancia de Cloud SQL por otro plan de copia de seguridad. El plan de copia de seguridad al que quieras cambiar debe cumplir con los siguientes criterios:
El plan de creación de copias de seguridad se encuentra en la misma backup vault.
El plan de copia de seguridad se encuentra en la misma región que la instancia de Cloud SQL.
Usa las siguientes instrucciones para cambiar el plan de copia de seguridad asociado con una instancia de Cloud SQL.
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault de Backup and DR.
Ir a Copias de seguridad almacenadas en vault
En la página Copias de seguridad en la bóveda, solo se enumeran las instancias que tienen (o tenían) planes de copia de seguridad aplicados o sus copias de seguridad almacenadas en un backup vault dentro de un proyecto.
Selecciona la fuente de datos que tendrá un plan diferente. En la página de detalles de la copia de seguridad o en el menú , selecciona Cambiar plan de copias de seguridad. En la ventana Selecciona un plan de copia de seguridad, solo se enumeran los planes de copia de seguridad válidos para esta instancia.
Selecciona un plan de copia de seguridad y haz clic en Aplicar.
gcloud
Cambia el plan de copias de seguridad asignado.
gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \ --workload-project=INSTANCE_PROJECT_ID \ --location=INSTANCE_REGION \ --backup-plan=BACKUP_PLAN \ --project=SELECTED_BACKUP_PLAN_PROJECT_IDReemplaza lo siguiente:
BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre del recurso de asociación del plan de copia de seguridad.INSTANCE_PROJECT_ID: ID del proyecto de la instancia de Cloud SQL.INSTANCE_REGION: Es la ubicación de la instancia de Cloud SQL.BACKUP_PLAN: Es el nombre del plan de copia de seguridad al que cambiarás.SELECTED_BACKUP_PLAN_PROJECT_ID: Es el ID del proyecto del plan de copia de seguridad seleccionado.
Enumera las instancias para las que se programaron copias de seguridad
Usa las siguientes instrucciones para enumerar las instancias de Cloud SQL para las que se programan las copias de seguridad.
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.
En la parte superior de la tabla, selecciona Filtrar tabla > Tipo de recurso. Selecciona Cloud SQL. Esto limita la visualización solo a las instancias de Cloud SQL que tienen planes de copias de seguridad aplicados y sus copias de seguridad almacenadas en una backup vault dentro de un proyecto.
gcloud
Enumera las instancias de Cloud SQL para las que se programaron copias de seguridad con el comando
gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type:
gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
--location=LOCATION \
--project=PROJECT_ID
Reemplaza lo siguiente:
LOCATION: Es la ubicación de las copias de seguridad programadas.
PROJECT_ID: el nombre del proyecto en el que se encuentran las instancias de Cloud SQL.
Copias de seguridad a pedido
Puedes iniciar una copia de seguridad a pedido para una instancia de Cloud SQL con un plan de copia de seguridad activando la regla de copia de seguridad que elijas para que se ejecute de inmediato. Por lo general, las copias de seguridad a pedido solo capturan los datos que cambiaron desde la última copia de seguridad incremental.
Cuando creas una copia de seguridad a pedido, puedes elegir una regla del plan de copia de seguridad asociado con la instancia de Cloud SQL. Esta regla determina cuándo se borra la copia de seguridad a pedido. Puedes verificar el estado del trabajo de copia de seguridad en la página Trabajos. Para obtener más información, consulta Supervisa los trabajos de copia de seguridad y restablecimiento en la consola de Google Cloud .
Crea una copia de seguridad según demanda
Usa las siguientes instrucciones para crear una copia de seguridad a pedido.
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.
Ir a Copias de seguridad almacenadas en vault
En la página Copias de seguridad en la bóveda, solo se enumeran los recursos de datos que tienen planes de copia de seguridad aplicados y sus copias de seguridad almacenadas en una backup vault dentro de un proyecto.
Selecciona el recurso del que quieres crear una copia de seguridad. En el menú o en la página de detalles del recurso, selecciona Crear copia de seguridad a pedido.
En la ventana Crear una copia de seguridad a pedido, selecciona una regla de copia de seguridad para usar y haz clic en Crear.
Para ver el estado del trabajo de copia de seguridad a pedido, haz clic en Notificaciones.
gcloud
Crear una copia de seguridad a pedido Inicia una copia de seguridad a pedido con una asociación de plan de copia de seguridad existente. Especifica un ID de regla para determinar el período de vencimiento de esta copia de seguridad única on demand:
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --backup-rule-id=RULE_ID \ --project=PROJECT_ID \ --location=LOCATION \ [--no-async]Reemplaza lo siguiente:
BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad.
RULE_ID: Es el nombre de la regla de copia de seguridad que deseas asociar para ejecutar copias de seguridad on demand.
PROJECT_ID: el nombre del proyecto.
LOCATION: Es la ubicación de las copias de seguridad programadas.
Quita la protección de una instancia de Cloud SQL
Puedes quitar la protección de una instancia de Cloud SQL si quitas el plan de copia de seguridad aplicado a la instancia. Quitar un plan de copia de seguridad de una instancia de Cloud SQL no borra ninguna copia de seguridad creada mientras el plan de copia de seguridad estaba en uso. Aún puedes acceder a estas copias de seguridad existentes y administrarlas hasta que venzan.
Sigue estas instrucciones para quitar la protección de una instancia de Cloud SQL:
Console
En la consola de Google Cloud , ve a la página Copias de seguridad almacenadas en vault.
Haz clic en el nombre de la base de datos de la que deseas quitar un plan de copia de seguridad.
Selecciona Quitar plan de copia de seguridad.
gcloud
Anula la protección de una instancia de Cloud SQL.
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
--project=PROJECT_ID \
--location=LOCATION
Reemplaza lo siguiente:
BACKUP_PLAN_ASSOCIATION_NAME: Es el nombre de la asociación del plan de copia de seguridad que deseas borrar.
PROJECT_ID: el nombre del proyecto.
LOCATION: Es la ubicación de la copia de seguridad programada.
Limitaciones
En el caso de las instancias de Cloud SQL encriptadas con CMEK, Backup and DR valida los permisos de forma proactiva. Si el agente de servicio de Backup and DR del
proyecto de la backup vault no tiene el rol de roles/cloudkms.cryptoKeyEncrypterDecrypter necesario
en la clave de KMS de la instancia de origen, falla la creación de la asociación del plan de copia de seguridad. Asegúrate de que los permisos de IAM
necesarios estén vigentes antes de asociar un plan de copia de seguridad.
¿Qué sigue?
Restablece una instancia de Cloud SQL desde una bóveda de copias de seguridad.
Administra las fuentes de datos en la consola de Google Cloud .