En esta página, se describe cómo migrar una instancia de Cloud SQL para PostgreSQL copiando una copia de seguridad de Cloud SQL en un clúster de prueba gratuitaestándar de AlloyDB para PostgreSQL. Copiar una copia de seguridad de Cloud SQL en un clúster de AlloyDB te permite cargar datos rápidamente en Cloud SQL para PostgreSQL, lo que te permite evaluar o migrar a AlloyDB.
En esta página, se supone que estás familiarizado con Cloud SQL. Si es la primera vez que usas AlloyDB, consulta la descripción general de AlloyDB.
Para obtener información sobre cómo migrar tus datos de Cloud SQL a AlloyDB con la replicación continua de datos, consulta Database Migration Service para PostgreSQL a AlloyDB.
Las siguientes opciones no son compatibles:
- Restablecimientos entre proyectos y regiones
- Instancias con claves de encriptación administradas por el cliente (CMEK)
- Instancias con autenticación de grupo de Identity and Access Management (IAM)
Antes de comenzar
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Habilita las APIs de AlloyDB, Compute Engine y Herramientas de redes de servicios.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles. - Asegúrate de tener lo siguiente:
- Los permisos necesarios de Identity and Access Management (IAM)
- Una copia de seguridad de Cloud SQL con un tamaño inferior a 15TB
- Una versión de PostgreSQL compatible con AlloyDB
Roles obligatorios
Para obtener los permisos que necesitas para copiar una copia de seguridad de Cloud SQL para PostgreSQL en un clúster de AlloyDB, otórgate los siguientes roles de IAM en tu proyecto:
- Visualizador de Cloud SQL
(
roles/cloudsql.viewer) o cualquier rol personalizado que incluya el permisocloudsql.backupRuns.export - Cloud
Administrador de AlloyDB (
roles/alloydb.admin)
Copia una copia de seguridad de Cloud SQL en un clúster de AlloyDB
Copiar una copia de seguridad de Cloud SQL en un clúster de prueba gratuitaestándar de AlloyDB restablece la copia de seguridad a la misma versión de PostgreSQL en AlloyDB. Por ejemplo, una copia de seguridad de Cloud SQL de PostgreSQL 14 se restablece en un clúster de prueba gratuitaestándar de PostgreSQL 14.Ten en cuenta que las versiones de extensión y las versiones secundarias de PostgreSQL pueden ser diferentes.
Copiar una copia de seguridad de Cloud SQL solo admite la configuración de aquellos elementos compatibles con el clúster estándar de AlloyDB.
Para copiar una copia de seguridad de Cloud SQL en un clúster estándar de AlloyDB, sigue estos pasos:
Console
- En la Cloud de Confiance consola de, ve a la página Clústeres.
- Haz clic en Migrar datos y, luego, selecciona Copiar desde Cloud SQL Backup.
- En la página Copiar desde la copia de seguridad de Cloud SQL, habilita las APIs requeridas. Si ya habilitaste las APIs, no es necesario que lo vuelvas a hacer.
- En la página Seleccionar el tipo de clúster, selecciona Clúster aprovisionado.
- Haz clic en Seleccionar tipo de clúster.
- Selecciona la instancia de Cloud SQL desde la que deseas copiar una copia de seguridad
de y, luego, haz clic en Seleccionar instancia. Puedes filtrar
instancias de Cloud SQL.
Solo se muestran las versiones de bases de datos compatibles. Las réplicas no tienen copias de seguridad y no se muestran en la lista de instancias disponibles. - Selecciona la copia de seguridad que deseas importar y, luego, haz clic en Select backup. En esta página, se muestran las 1,000 copias de seguridad más recientes.
- En la página Crea tu clúster aprovisionado, ingresa tu información de red. El ID del clúster se propaga de forma predeterminada, pero también puedes personalizar tu clúster aprovisionado.
- Haz clic en Crear clúster.
Una vez que se completa la operación, se crea automáticamente una instancia principal. Verás un nuevo clúster de AlloyDB con los datos copiados de la copia de seguridad de Cloud SQL para PostgreSQL que seleccionaste.
Cuando copias una copia de seguridad de Cloud SQL para PostgreSQL en un clúster de AlloyDB, las marcas de la base de datos se migran si están en Cloud SQL para PostgreSQL y en AlloyDB. Los permisos a nivel de recursos no se migran automáticamente. Una vez que se complete la copia, debes configurar de forma manual los permisos y las marcas de la base de datos que no se migraron debido a una falta de coincidencia.
Puedes verificar qué marcas de base de datos en Cloud SQL para PostgreSQL son compatibles con AlloyDB en la página Crea tu clúster aprovisionado.
gcloud
Para usar la CLI de gcloud, puedes instalarla e inicializarla o bien usar Cloud Shell.
- Ejecuta el comando
gcloud beta alloydb clusters migrate-cloud-sql:
gcloud beta alloydb clusters migrate-cloud-sqlCLUSTER_ID\ --cloud-sql-backup-id=CLOUD_SQL_BACKUP_ID\ --cloud-sql-instance-id=CLOUD_SQL_INSTANCE_ID\ --cloud-sql-project-id=CLOUD_SQL_PROJECT_ID\ --password=PASSWORD\ --region=REGION\ --database-version=DATABASE_VERSION\ --subscription-type=STANDARDReemplaza lo siguiente:
CLUSTER_ID: Es el ID del clúster de Cloud SQL para PostgreSQL.CLOUD_SQL_BACKUP_ID: Es el ID de la copia de seguridad de Cloud SQL desde la que se migrará. Debe ser el ID de la copia de seguridad.CLOUD_SQL_INSTANCE_ID: Es el ID de la instancia de Cloud SQL desde la que se migrará. Debe ser el ID de la instancia.CLOUD_SQL_PROJECT_ID: Es el ID del proyecto de Cloud SQL desde el que se migrará. Debe ser el ID del proyecto.PASSWORD: Es la contraseña inicial del usuario de PostgreSQL que se configurará durante la creación del clúster.REGION: Es la ubicación, por ejemplo,asia-east1ous-east1. Consulta la lista completa de regiones en ubicaciones regionales.DATABASE_VERSION: Es la versión de la base de datos del clúster. Debe ser una de las siguientes:POSTGRES_14,POSTGRES_15,POSTGRES_16oPOSTGRES_17. La versión de la base de datos debe ser la misma que la versión de la copia de seguridad de Cloud SQL.SUBSCRIPTION_TYPE: Es el tipo de suscripción del clúster. Debe ser una de las siguientes:STANDARDoTRIAL.
- Ejecuta el comando
gcloud beta alloydb operations describepara confirmar el estado de la operación de copia de seguridad:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDReemplaza lo siguiente:
OPERATION_ID: Es el nombre de la operación de Cloud SQL para PostgreSQL.REGION_ID: Es la región en la que se implementa el clúster de Cloud SQL para PostgreSQL.PROJECT_ID: Es el ID del proyecto.
- Usa el comando
gcloud alloydb instances createpara crear una instancia principal.
API de REST
- Para obtener una lista de las copias de seguridad de la instancia desde la que deseas restablecer
tu copia de seguridad, llama al
backupsRuns.listmétodo:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.INSTANCE_ID: El ID de la instancia.
Cuerpo JSON de la solicitud:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Para enviar tu solicitud, usa una de estas opciones:
curl (Linux, macOS o Cloud Shell)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloud auth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta el siguiente comando:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"PowerShell (Windows)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloud auth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta la siguiente orden:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method GET \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -Uri "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand ContentRecibirás una respuesta JSON similar a la siguiente:
Respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una lista de
La respuesta de la API muestra una lista de copias de seguridad de la instancia como una lista de arrays, incluidoBackupRun."id": string,. - Llama al método restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLReemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.REGION: Es la región en la que se implementa el clúster de AlloyDB.
Cuerpo JSON de la solicitud:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16/POSTGRES_17", "subscriptionType": "STANDARD" }, // Union field source can be only one of the following: "cloudsqlBackupRunSource": { object (CloudSQLBackupRunSource) } // End of list of possible types for union field source. }Para enviar tu solicitud, usa una de estas opciones:
curl (Linux, macOS o Cloud Shell)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloud auth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta la siguiente orden:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"PowerShell (Windows)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloudauth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta la siguiente orden:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method POST \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -InFile request.json \ -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand ContentRecibirás una respuesta JSON similar a la siguiente:
Respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de
Operation.Se crea un clúster nuevo en el proyecto y la ubicación especificados, con un volumen restablecido desde la copia de seguridad indicada en el mensaje CloudSQLBackupRunSource.
- Cuando el clúster esté en estado
READY, crea la instancia principal llamando alprojects.locationsinstances.createmétodo:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesReemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.REGION: Es la región en la que se implementa el clúster de AlloyDB.CLUSTER_ID: Es el ID del clúster.
Cuerpo JSON de la solicitud:
{ "instanceId": "string", "instance": { "object": "Instance" } }El cuerpo de la solicitud contiene una instancia de
Instance.Para enviar tu solicitud, usa una de estas opciones:
curl (Linux, macOS o Cloud Shell)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloud auth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta la siguiente orden:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"PowerShell (Windows)
En el siguiente comando, se supone que accediste a
gcloud CLIcon tu cuenta de usuario ejecutandogcloud initogcloud auth login, o bien usandoCloud Shell, que te permite acceder automáticamente agcloud CLI.Puedes verificar la cuenta activa ejecutando
gcloud auth list.Guarda el cuerpo de la solicitud en un archivo llamado
request.jsony ejecuta la siguiente orden:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest \ -Method POST \ -Headers $headers \ -ContentType: "application/json; charset=utf-8" \ -InFile request.json \ -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand ContentRecibirás una respuesta JSON similar a la siguiente:
Respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de
Operation. - Después de que la instancia se actualice al estado
READY, conéctate a ella y accede a los datos restablecidos desde la instantánea de Cloud SQL.