En esta página, se describe cómo realizar migraciones de inicio rápido para migraciones homogéneas de PostgreSQL a Cloud SQL para PostgreSQL.
Descripción general
Las migraciones de inicio rápido son un flujo de migración continua ligero para situaciones homogéneas de PostgreSQL. Con las migraciones de inicio rápido, Database Migration Service puede configurar automáticamente todo lo que necesitas para migrar tus bases de datos: componentes de redes (adjuntos de red, subredes, configuraciones de conectividad privada), perfiles de conexión y trabajos de migración.
Con las migraciones de inicio rápido, puedes transferir tus datos a una instancia de Cloud SQL existente o crear una nueva mientras configuras la migración. Las migraciones de inicio rápido son más adecuadas para los siguientes casos:
- Migraciones básicas, en las que no necesitas un control preciso sobre la configuración de paralelismo del depósito de datos.
- Migrar tu base de datos de un proyecto Google Cloud a otro Cuando configuras una migración de inicio rápido, puedes crear tu instancia de destino en un proyecto diferente al de origen y configurar Database Migration Service para que cree el adjunto de red y la subred en la red de nube privada virtual (VPC) de otro proyecto.
-
Migrar desde fuentes que tienen una dirección IP privada en tu red de Google Cloud nube privada virtual (VPC), como bases de datos autoadministradas en Compute Engine o instancias de Cloud SQL para PostgreSQL habilitadas para redes privadas
Es posible que las fuentes alojadas fuera de Google Cloud necesiten componentes de red adicionales (como una conexión de Cloud VPN) para que se pueda acceder a ellas en una dirección IP privada dentro de tu red de VPC.
- El único método admitido para la conectividad de la base de datos son las interfaces de Private Service Connect con parámetros de configuración de conectividad privada de Database Migration Service. Tu base de datos de origen debe tener una IP privada asignada en la red de VPC. No se admiten otros métodos de conectividad de origen homogéneos (como listas de IP públicas permitidas, túneles SSH inversos o intercambio de tráfico entre VPC) para las migraciones de inicio rápido.
Para obtener más información sobre las migraciones de inicio rápido, consulta Descripción general de las migraciones de inicio rápido en la documentación principal de Database Migration Service.
Antes de comenzar
- Verifica si las migraciones de inicio rápido pueden admitir completamente tu situación. Consulta las limitaciones de la migración de inicio rápido.
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
- Habilita las APIs de Database Migration Service, Compute Engine, Network Connectivity Center y Cloud SQL Admin.
Roles obligatorios
Para obtener los permisos que necesitas para ejecutar migraciones de inicio rápido a Cloud SQL con Database Migration Service, pídele a tu administrador que otorgue los roles de Identity and Access Management (IAM) necesarios para las cuentas involucradas en la migración en los proyectos pertinentes. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso en la documentación de IAM.
Los roles heredados a través de la pertenencia a un grupo de Google no son compatibles con las migraciones de inicio rápido.Roles y permisos en el proyecto de origen
Otorga los siguientes roles a cuentas específicas en el proyecto Google Cloud en el que reside tu base de datos de origen:
- Para la cuenta de usuario que realiza la migración:
Rol de
Administrador de red de Compute (
roles/compute.networkAdmin) - Para la cuenta de servicio de Database Migration Service del proyecto de destino:
Visualizador de red de Compute (
roles/compute.networkViewer)La cuenta de servicio de Database Migration Service se crea cuando habilitas la API de Database Migration Service. La dirección de correo electrónico asociada con esta cuenta se genera automáticamente y no se puede cambiar. Esta dirección de correo electrónico usa el siguiente formato:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com
Estos roles predefinidos contienen los permisos necesarios para configurar la conectividad en tu proyecto de base de datos fuente como parte de una migración de inicio rápido con Database Migration Service. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos (fuente):
Permisos necesarios (fuente)
Se requieren los siguientes permisos para realizar migraciones homogéneas de inicio rápido con Database Migration Service:
Para la cuenta de usuario que realiza la migración, haz lo siguiente:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
Para la cuenta de servicio de Database Migration Service del proyecto de destino, usa compute.networkAttachments.get.
Roles y permisos en el proyecto de destino
Otorga los siguientes roles a la cuenta de usuario que realiza la migración en el proyecto Google Cloud en el que reside tu base de datos de destino:
-
Administrador de Database Migration (
roles/datamigration.admin) -
Administrador de Cloud SQL (
roles/cloudsql.admin)
Estos roles predefinidos contienen los permisos necesarios para configurar los componentes de migración requeridos en tu proyecto de base de datos de destino como parte de una migración de inicio rápido con Database Migration Service. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos (destino):
Permisos requeridos (destino)
Se requieren los siguientes permisos para realizar migraciones homogéneas de inicio rápido con Database Migration Service:
datamigration.*cloudsql.instances.createcloudsql.instances.deletecloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.connectcloudsql.instances.executeSqlcloudsql.instances.exportcloudsql.instances.importcloudsql.instances.logincloudsql.operations.getcloudsql.users.getcloudsql.users.listcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Configurar tu base de datos de origen
Para configurar tu base de datos de origen de PostgreSQL, haz lo siguiente:
- Crea una cuenta de usuario de migración dedicada en tu instancia.
- Para las fuentes de Cloud SQL para PostgreSQL, consulta Cómo crear un usuario en la documentación de Cloud SQL.
- Para otras fuentes, consulta la documentación de tu proveedor de bases de datos o crea y administra usuarios en la documentación de PostgreSQL.
- Asigna los privilegios necesarios a la cuenta de usuario de migración dedicada.
Ejecuta los siguientes comandos para cada base de datos que quieras migrar:
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
Reemplaza lo siguiente:
- MIGRATION_USER por el nombre de la cuenta de usuario de migración
- DATABASE_NAME por el nombre de la base de datos que deseas migrar.
- SCHEMA_NAME con el nombre del esquema en la base de datos que deseas migrar.
- La cuenta de usuario de migración debe tener acceso de propiedad a las tablas que migres. Para otorgar este nivel de acceso, realiza una de las siguientes acciones:
- Solo para fuentes que no sean Cloud SQL para PostgreSQL: Asigna el
SUPERUSERrol de PostgreSQL a la cuenta de migración. - Para todas las fuentes: Agrega la cuenta de usuario de migración al grupo de usuarios que posee las tablas.
Ejecuta el comando siguiente:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Reemplaza lo siguiente:
- TABLE_OWNER_GROUP_NAME con el nombre del grupo de usuarios propietario de cada tabla que deseas migrar.
- MIGRATION_USER por el nombre de la cuenta de usuario de migración
- Solo para fuentes que no sean Cloud SQL para PostgreSQL: Asigna el
- Para las tablas que no tienen claves primarias: Database Migration Service no replica las operaciones
UPDATEniDELETEpara las tablas sin claves primarias durante la fase de captura de datos modificados (CDC). Si deseas incluir estas operaciones en tu replicación, modifica las tablas sin claves primarias conREPLICA IDENTITY:ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
Reemplaza lo siguiente:
- TABLE_NAME es el nombre de la tabla que no tiene claves primarias.
- INDEX_NAME es el índice único que puede hacer un seguimiento de las filas de las tablas sin claves primarias.
- Configura los parámetros de replicación con marcas de bases de datos.
Fuentes autoadministradas
Para guardar los cambios en las marcas de la base de datos, se requiere un reinicio completo de la base de datos. En los siguientes ejemplos, se usan consultas en SQL para cambiar los valores de las marcas. Si no puedes ejecutar consultas en SQL directamente, consulta la documentación de tu proveedor para conocer los pasos para cambiar estos parámetros.
- Establece el parámetro
wal_levelenlogical. Ejecuta el comando siguiente:ALTER SYSTEM SET wal_level = 'logical';
- Establece el parámetro
wal_sender_timeouten0. Este valor inhabilita el mecanismo de tiempo de espera que se usa para finalizar las conexiones de replicación inactivas. Ejecuta el comando siguiente:ALTER SYSTEM SET wal_sender_timeout = 0;
- Configura la cantidad máxima de ranuras de replicación con el parámetro
max_replication_slots. Este parámetro debe establecerse en, al menos, la cantidad de bases de datos que migras por trabajo de migración, más algunas reservas para la sincronización de tablas.Por ejemplo, si migras 5 bases de datos y se crean 2 trabajos de migración para la instancia de origen, la cantidad de ranuras de replicación debe ser al menos
5 * 2 = 10, más la cantidad de ranuras de replicación que ya usas.Para establecer este parámetro, ejecuta el siguiente comando:
Aquí NUMBER_OF_SLOTS representa la cantidad máxima de ranuras de replicación.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- Configura el parámetro
max_wal_senderscon, al menos, el mismo valor quemax_replication_slots, más la cantidad de remitentes que ya se usaron en tu instancia.Por ejemplo, si el parámetro
max_replication_slotsse establece en10y ya usas 2 remitentes, la cantidad de procesos de remitente WAL que se ejecutan al mismo tiempo sería10 + 2 = 12.Para establecer este parámetro, ejecuta el siguiente comando:
Donde NUMBER_OF_SENDERS representa la cantidad de procesos de remitente WAL que se ejecutan de manera simultánea.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- Configura
max_worker_processesen, al menos, la cantidad de bases de datos que deseas migrar, más la cantidad demax_worker_processesque ya se usan en tu instancia. Para establecer este parámetro, ejecuta el siguiente comando: Aquí NUMBER_OF_PROCESSES representa la cantidad de bases de datos que se migrarán.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
Fuentes de Cloud SQL para PostgreSQL
En el caso de las fuentes de Cloud SQL, debes configurar las marcas de bases de datos en la consola de Google Cloud . Debes reiniciar la instancia después de modificar las marcas de la base de datos para que el parámetro de configuración surta efecto. Para obtener más información sobre cómo configurar marcas de bases de datos en Cloud SQL, consulta Configura marcas de bases de datos en la documentación de Cloud SQL.
- Establece la marca
cloudsql.logical_decodingenon. - Establece también el parámetro
wal_sender_timeouten0. Este valor inhabilita el mecanismo de tiempo de espera que se usa para finalizar las conexiones de replicación inactivas. - Configura la cantidad máxima de ranuras de replicación con el parámetro
max_replication_slots. Este parámetro debe establecerse en, al menos, la cantidad de bases de datos que migras por trabajo de migración, más algunas reservas para la sincronización de tablas.Por ejemplo, si migras 5 bases de datos y se crean 2 trabajos de migración para la instancia de origen, la cantidad de ranuras de replicación debe ser al menos
5 * 2 = 10, más la cantidad de ranuras de replicación que ya usas. - Configura el parámetro
max_wal_senderscon, al menos, el mismo valor quemax_replication_slots, además de la cantidad de remitentes que ya se usaron en tu instancia.Por ejemplo, si el parámetro
max_replication_slotsse establece en10y ya usas 2 remitentes, la cantidad de procesos de remitente WAL que se ejecutan al mismo tiempo sería10 + 2 = 12. - Establece
max_worker_processesen, al menos, la cantidad de bases de datos que deseas migrar, más la cantidad demax_worker_processesque ya se usan en tu instancia.
- Establece el parámetro
Crea y ejecuta una migración de inicio rápido
Console
Para crear y ejecutar una migración de inicio rápido con la consola de Google Cloud , haz lo siguiente:
- En la consola de Google Cloud , ve a la página Comenzar.
- En el menú Motor de origen, selecciona PostgreSQL.
- En el menú Motor de destino, selecciona Cloud SQL para PostgreSQL.
Aparecerá la sección Presentamos la migración de inicio rápido de PostgreSQL.
- En la sección Presentamos la migración de inicio rápido de PostgreSQL, haz clic en Iniciar la migración.
Se abrirá la página Migra a Cloud SQL para PostgreSQL.
- En la sección Configurar la migración, haz lo siguiente:
- En el menú Región de destino, selecciona la región de tu instancia de Cloud SQL de destino.
- En el cuadro Prefijo de migración, ingresa una cadena legible que se agregará a los nombres de todas las entidades de migración creadas para la migración de inicio rápido: perfiles de conexión, configuración de conectividad privada, adjunto de red y su subred, y trabajo de migración.
- En el menú Tipo de configuración, selecciona una de las siguientes opciones:
- Configuración de conectividad existente: Selecciona esta opción si ya tienes una configuración de conectividad privada y un adjunto de red que usa el método de interfaces de Private Service Connect. Esta opción es la mejor si ya usaste migraciones de inicio rápido y quieres volver a usar los mismos recursos de redes.
- Nueva configuración de conectividad: Selecciona esta opción para crear un nuevo adjunto de red y la subred del adjunto de red en la red de VPC de la base de datos de origen. La configuración de conectividad privada se creará en el mismo proyecto que tu instancia de destino.
- Haz clic en Continuar.
- En la sección Conectar fuente, haz lo siguiente:
- Ingresa un nombre de host o la dirección IP privada de tu base de datos de origen. Se debe poder acceder a la dirección de la base de datos fuente desde tu red de VPC fuente.
- Ingresa el puerto que se usa para acceder al host. El puerto predeterminado de PostgreSQL es
5432. - Ingresa el nombre de usuario y la contraseña de la cuenta de migración dedicada en tu base de datos de origen.
- En el menú Tipo de encriptación, selecciona una de las siguientes opciones:
- Ninguno: Si tu base de datos de origen no requiere conexiones encriptadas con SSL/TLS.
- Obligatorio: Si tu base de datos de origen requiere conexiones encriptadas con SSL/TLS. Esta opción no requiere ninguna verificación de certificado.
- En el menú Bases de datos para migrar, haz clic en Personalizar. Usa el panel lateral para seleccionar solo las bases de datos que deseas migrar a Cloud SQL.
- Haz clic en Continuar.
- En la sección Configurar destino, puedes crear una instancia de destino nueva o seleccionar una existente.
Instancias nuevas
Si quieres crear una instancia de destino nueva, haz lo siguiente:
- En el menú Tipo de instancia de destino, selecciona Instancia nueva.
Database Migration Service usa la configuración predeterminada de Cloud SQL para una instancia nueva. Haz clic en Personalizar para ajustar las funciones de la instancia, como el tipo de máquina, la disponibilidad zonal o la configuración de protección de datos. Para obtener más información sobre la configuración de instancias, consulta Crea instancias en la documentación de Cloud SQL.
- En el campo Contraseña, ingresa una contraseña para el usuario administrador
postgresqlpredeterminado. Database Migration Service se conecta como este usuario para migrar tus datos.
Instancias existentes
Puedes migrar bases de datos a una instancia que ya existe. Asegúrate de que la instancia de destino esté habilitada para Private Service Connect y no aplique conexiones de mTLS. Haz lo siguiente:
- En el menú Tipo de instancia de destino, selecciona Instancia existente.
- En el menú ID de instancia existente, selecciona el identificador de la instancia.
- En el menú Tipo de instancia de destino, selecciona Instancia nueva.
- Haz clic en Iniciar la migración.
Database Migration Service ahora crea el trabajo de migración y comienza el proceso de migración. Puedes supervisar el progreso de la migración en los detalles del trabajo de migración de Database Migration Service. Para obtener más información, consulta Administra trabajos de migración.
gcloud
Para crear y ejecutar una migración de inicio rápido con gcloud CLI, haz lo siguiente:
-
Configura el archivo adjunto de red.
Decide si quieres crear un adjunto de red nuevo o volver a usar uno existente. Debes tener un adjunto de red en la red donde se pueda acceder a la IP privada de tu base de datos de origen.- Si deseas crear un nuevo adjunto de red, ejecuta el siguiente comando (haz clic para expandir todos los detalles).
gcloud compute network-attachments createAntes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- NETWORK_ATTACHMENT por el nombre del adjunto de red que se creará.
- REGION con el adjunto de red para la región.
- DEST_PROJECT_ID con el ID del proyecto de destino.
- SOURCE_PROJECT_ID por el ID del proyecto en el que reside la red de origen.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments create NETWORK_ATTACHMENT ` --region=REGION ` --connection-preference=ACCEPT_MANUAL ` --producer-accept-list=DEST_PROJECT_ID ` --subnets=default ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments create NETWORK_ATTACHMENT ^ --region=REGION ^ --connection-preference=ACCEPT_MANUAL ^ --producer-accept-list=DEST_PROJECT_ID ^ --subnets=default ^ --project=SOURCE_PROJECT_ID
- Si quieres volver a usar un adjunto de red existente, continúa con el siguiente paso.
- Si deseas crear un nuevo adjunto de red, ejecuta el siguiente comando (haz clic para expandir todos los detalles).
-
Permite que el proyecto de usuario de Database Migration Service acceda a tu adjunto de red.
Tu adjunto de red debe permitir conexiones desde el proyecto de arrendatario de Database Migration Service. Sigue los siguientes pasos:- Para recuperar el ID del proyecto del arrendatario de Database Migration Service, realiza una prueba de creación de conexión privada (haz clic para expandir):
gcloud database-migration private-connections create --validate-onlyAntes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- PRIVATE_CONN por el nombre del recurso de conexión privada.
- REGION por la región de la conexión privada
- NETWORK_ATTACHMENT_URI con el URI del adjunto de red.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN ` --format="value(metadata.metadata.tenant_project_id)" ` --validate-only
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN ^ --format="value(metadata.metadata.tenant_project_id)" ^ --validate-only
Guarda el ID del proyecto de usuario que se devolvió para usarlo con los siguientes comandos.
- Permite que el proyecto de usuario de Database Migration Service y el proyecto de destino se conecten al adjunto de red (haz clic para expandir):
gcloud compute network-attachments updateAntes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- NETWORK_ATTACHMENT por el nombre del adjunto de red.
- REGION con la región.
- DEST_PROJECT_ID con el ID del proyecto de destino.
- DMS_TENANT_ID con el ID del proyecto de usuario de Database Migration Service recuperado
- SOURCE_PROJECT_ID por el ID del proyecto en el que reside la red de origen.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments update NETWORK_ATTACHMENT ` --region=REGION ` --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments update NETWORK_ATTACHMENT ^ --region=REGION ^ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^ --project=SOURCE_PROJECT_ID
- Para recuperar el ID del proyecto del arrendatario de Database Migration Service, realiza una prueba de creación de conexión privada (haz clic para expandir):
-
Crea el recurso de conectividad privada de Database Migration Service.
Ejecuta el siguiente comando (haz clic para expandir):gcloud database-migration private-connections createAntes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- PRIVATE_CONN por el nombre del recurso de conexión privada.
- REGION por la región de la conexión privada
- NETWORK_ATTACHMENT_URI con el URI del adjunto de red.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN
-
Crea el perfil de conexión fuente.
Ejecuta el siguiente comando (haz clic para expandir):gcloud database-migration connection-profiles create postgresqlEn este ejemplo, se usa la marca opcional
--no-asyncpara que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar un tiempo en completarse. Puedes omitir la marca--no-asyncpara ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comandogcloud database-migration operations describepara verificar si la operación se realizó correctamente.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- SOURCE_CONN_ID por el identificador de tu perfil de conexión fuente.
- REGION con la región en la que deseas guardar el perfil de conexión.
- SOURCE_PRIVATE_IP por la dirección IP privada de tu base de datos de origen
- SOURCE_PORT por el puerto de tu base de datos de origen (el valor predeterminado es 5432).
- SOURCE_USER por el nombre de usuario del usuario de migración en tu base de datos de origen.
- SOURCE_PASSWORD por la contraseña del usuario de migración en tu base de datos de origen.
- PRIVATE_CONN por el nombre del recurso de conexión privada.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration connection-profiles create postgresql \ SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql ` SOURCE_CONN_ID ` --region=REGION ` --role=SOURCE ` --host=SOURCE_PRIVATE_IP ` --port=SOURCE_PORT ` --username=SOURCE_USER ` --password=SOURCE_PASSWORD ` --private-connection=PRIVATE_CONN ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql ^ SOURCE_CONN_ID ^ --region=REGION ^ --role=SOURCE ^ --host=SOURCE_PRIVATE_IP ^ --port=SOURCE_PORT ^ --username=SOURCE_USER ^ --password=SOURCE_PASSWORD ^ --private-connection=PRIVATE_CONN ^ --no-async
-
Crea el perfil de conexión de destino.
Selecciona la pestaña según si deseas migrar a una instancia de Cloud SQL nueva o existente:Instancias nuevas
Para usar una instancia de destino nueva para la migración de inicio rápido, primero crea la instancia con la CLI de Cloud SQL de Google Cloud y, luego, crea el perfil de conexión de destino. Lleva a cabo los pasos siguientes:
-
Crea una instancia con la CLI de Google Cloud de Cloud SQL.
Asegúrate de usar la marca
--enable-private-service-connectpara habilitar tu instancia de destino para Private Service Connect. Las migraciones de inicio rápido solo admiten instancias habilitadas para Private Service Connect. - Crea el perfil de conexión de destino para tu instancia nueva.
Expande la siguiente sección para ver los detalles completos del comando.
gcloud database-migration connection-profiles create postgresqlEn este ejemplo, se usa la marca opcional
--no-asyncpara que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar un tiempo en completarse. Puedes omitir la marca--no-asyncpara ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comandogcloud database-migration operations describepara verificar si la operación se realizó correctamente.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- DEST_CONN_ID con el identificador del perfil de conexión de destino.
- REGION con la región en la que deseas guardar el perfil de conexión Esta región debe ser la misma que la de la instancia de destino.
- DEST_INSTANCE por el ID de la instancia de Cloud SQL de destino que creaste previamente
- DEST_USER por el nombre de usuario del usuario de migración en tu base de datos de destino.
- DEST_PASSWORD con la contraseña del usuario de migración en la base de datos de destino.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Deberías recibir una respuesta similar a la que figura a continuación:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
Instancias existentes
Para migrar a una instancia de destino existente, crea el perfil de conexión que apunte a la instancia creada previamente. Ejecuta el siguiente comando (haz clic para expandir):
gcloud database-migration connection-profiles create postgresqlEn este ejemplo, se usa la marca opcional
--no-asyncpara que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar un tiempo en completarse. Puedes omitir la marca--no-asyncpara ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comandogcloud database-migration operations describepara verificar si la operación se realizó correctamente.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- DEST_CONN_ID con el identificador del perfil de conexión de destino.
- REGION con la región en la que deseas guardar el perfil de conexión Esta región debe ser la misma que la de la instancia de destino.
- DEST_INSTANCE por el ID de la instancia de Cloud SQL de destino que creaste previamente
- DEST_USER por el nombre de usuario del usuario de migración en tu base de datos de destino.
- DEST_PASSWORD con la contraseña del usuario de migración en la base de datos de destino.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Deberías recibir una respuesta similar a la que figura a continuación:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
-
Crea una instancia con la CLI de Google Cloud de Cloud SQL.
Asegúrate de usar la marca
-
Crea el trabajo de migración.
Ejecuta el siguiente comando (haz clic para expandir):gcloud database-migration migration-jobs createEn este ejemplo, se usa la marca opcional
--no-asyncpara que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar un tiempo en completarse. Puedes omitir la marca--no-asyncpara ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comandogcloud database-migration operations describepara verificar si la operación se realizó correctamente.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- MIGRATION_JOB_ID por el identificador de tu trabajo de migración.
- REGION por la región en la que deseas guardar el trabajo de migración.
- SOURCE_CONN_ID con el identificador del perfil de conexión de origen.
- DEST_CONN_ID con el identificador del perfil de conexión de destino.
- DATABASES_LIST con una lista separada por comas de las bases de datos que deseas migrar.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration migration-jobs create \ MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
Windows (PowerShell)
gcloud database-migration migration-jobs create ` MIGRATION_JOB_ID ` --region=REGION ` --type=CONTINUOUS ` --source=SOURCE_CONN_ID ` --destination=DEST_CONN_ID ` --use-postgres-native ` --postgres-max-additional-subscriptions=10 ` --databases-filter=DATABASES_LIST ` --no-async
Windows (cmd.exe)
gcloud database-migration migration-jobs create ^ MIGRATION_JOB_ID ^ --region=REGION ^ --type=CONTINUOUS ^ --source=SOURCE_CONN_ID ^ --destination=DEST_CONN_ID ^ --use-postgres-native ^ --postgres-max-additional-subscriptions=10 ^ --databases-filter=DATABASES_LIST ^ --no-async
Deberías recibir una respuesta similar a la que figura a continuación:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
-
Ejecuta el trabajo de migración.
Inicia el trabajo de migración (haz clic para expandir):gcloud database-migration migration-jobs startEn este ejemplo, se usa la marca opcional
--no-asyncpara que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar un tiempo en completarse. Puedes omitir la marca--no-asyncpara ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comandogcloud database-migration operations describepara verificar si la operación se realizó correctamente.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- MIGRATION_JOB_ID por el identificador de tu trabajo de migración.
Si no conoces el identificador, puedes usar el comando
gcloud database-migration migration-jobs listpara enumerar todos los trabajos de migración en una región determinada y ver sus identificadores. - REGION con el identificador de la región en la que se guarda tu perfil de conexión.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
Resultado
La acción se realiza de forma asíncrona. Por lo tanto, este comando devuelve una entidad Operation que representa una operación de larga duración:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
Para ver si la operación se realizó correctamente, puedes consultar el objeto de operación devuelto o verificar el estado del trabajo de migración:
- Usa el comando
gcloud database-migration migration-jobs describecon MIGRATION_JOB_ID para ver el estado del trabajo de migración. - Usa el comando
gcloud database-migration operations describecon OPERATION_ID para ver el estado de la operación.
- MIGRATION_JOB_ID por el identificador de tu trabajo de migración.
Finaliza la migración
Cuando decidas cambiar tu aplicación a la nueva instancia de Cloud SQL, finaliza la migración siguiendo estos pasos:
- Detén todas las operaciones de escritura en tu base de datos de origen. Puedes cambiarlos al modo de solo lectura para conservar la funcionalidad operativa.
- Promociona el trabajo de migración. En el caso de las migraciones de inicio rápido, la instancia de destino permanece grabable durante el proceso de migración. Promover el trabajo de migración solo finaliza la replicación y no tiene ningún impacto en tu instancia de destino.
- Opcional: Verifica que los datos de migración estén completos.