En esta página, se describe cómo crear copias de seguridad de instancias de Cloud SQL en una bóveda de copias de seguridad, que proporciona inmutabilidad y retención obligatoria.
En la consola de Google Cloud , puedes crear copias de seguridad de instancias de Cloud SQL en una backup vault aplicando planes de copias 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 cualquier otro evento inesperado.
- Copias de seguridad programadas: Se crean copias de seguridad de las instancias de Cloud SQL automáticamente en intervalos específicos, como diarios, semanales, mensuales o anuales.
- Copias de seguridad a pedido Puedes crear copias de seguridad a pedido cuando lo necesites. Las copias de seguridad bajo demanda 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 del servicio Backup and DR en la ubicación de las instancias de Cloud SQL.
Asigna roles y permisos de IAM al usuario de la copia de seguridad.
Otorga acceso al almacén de copias de seguridad en el proyecto de Cloud SQL.
Configura Observability Analytics 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 de
roles/cloudkms.cryptoKeyEncrypterDecrypteral agente de servicio de Backup and DR Service. 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 servicio Backup and DR se encuentra en el proyecto en el que se ubica el backup vault. Otorga este rol a la cuenta de servicio antes de intentar proteger las instancias de Cloud SQL habilitadas para CMEK.
Roles y permisos de IAM para el usuario de la 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 bóveda 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 demanda:
-
backupdr.backupPlans.list -
backupdr.backupPlanAssociations.createForCloudSqlInstance -
backupdr.backupPlanAssociations.fetchForCloudSqlInstance -
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 |
| Borra la bóveda de copias de seguridad | 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 | |
| Asociaciones del plan de copias de seguridad | Crea una asociación del plan de creación de copias 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 copias 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 del plan de copias de seguridad | backupdr.backupPlanAssociations.list |
Proyecto de carga de trabajo | |
| Recupera las asociaciones del plan de copias de seguridad | backupdr.backupPlanAssociations.fetchForCloudSqlInstance |
Proyecto de carga de trabajo | |
| Fuente de datos | Obtener 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 | |
| Recuperar 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 al 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 aquel en el que se creó la bóveda de copias de seguridad, debes otorgar el rol de IAM de Operador de Cloud SQL de Backup and DR (roles/backupdr.cloudSqlOperator) al agente de servicio de la bóveda de copias de seguridad dentro del proyecto de Cloud SQL. Si el proyecto de la bóveda de copias de seguridad 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 la bóveda de copias de seguridad 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 creó la bóveda de copias de seguridad, no es necesario otorgar ningún rol.
Para obtener información sobre cómo otorgar roles al agente de servicio de la bóveda de copias de seguridad en el proyecto del que deseas crear una copia de seguridad, consulta Otorga un rol al agente de servicio.
Configura una copia de seguridad programada
Sigue estas 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 deseas 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 copias 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 copias 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: Es 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 planes de copia de seguridad.LOCATION: Es la ubicación de la instancia.BACKUP_PLAN: El nombre del plan de copia de seguridad.
Terraform
Puedes usar un recurso de Terraform para configurar una copia de seguridad programada.
Enumera las instancias para las que se programaron copias de seguridad
Sigue estas instrucciones para enumerar las instancias de Cloud SQL para las que se programaron 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: Es 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 copias de seguridad. Para ello, activa la regla de copia de seguridad que elijas para que se ejecute de inmediato. Por lo general, las copias de seguridad bajo demanda 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 a la instancia de Cloud SQL. Esta regla determina cuándo se borrará la copia de seguridad bajo demanda. 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
Sigue estas instrucciones para crear una copia de seguridad bajo demanda.
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 Vaulted backups, solo se enumeran los recursos de datos que tienen planes de copias de seguridad aplicados y sus copias de seguridad almacenadas en una backup vault dentro de un proyecto.
Selecciona el recurso del que deseas 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 Crea una copia de seguridad según demanda, 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
Crea una copia de seguridad a pedido. Inicia una copia de seguridad según demanda 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 única copia de seguridad a pedido:
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 a pedido.
PROJECT_ID: el nombre del proyecto.
LOCATION: Es la ubicación de las copias de seguridad programadas.
Cómo quitar la protección de una instancia de Cloud SQL
Para quitar la protección de una instancia de Cloud SQL, debes quitar el plan de copia de seguridad aplicado a la instancia. Si quitas un plan de copias de seguridad de una instancia de Cloud SQL, no se borrarán las copias de seguridad creadas mientras se usaba el plan. 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 copias de seguridad.
Selecciona Quitar el plan de copias de seguridad.
gcloud
Quita 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, el servicio Backup and DR valida los permisos de forma proactiva. Si el agente de servicio del servicio Backup and DR del proyecto de la bóveda de copias de seguridad no tiene el rol 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 copias de seguridad. Asegúrate de que los permisos de IAM necesarios estén vigentes antes de asociar un plan de copias de seguridad.
¿Qué sigue?
Restablece una instancia de Cloud SQL desde un backup vault.
Administra las fuentes de datos en la consola de Google Cloud .