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 continuo y 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 red (adjuntos de red, subredes, parámetros de configuración de conectividad privada), perfiles de conexión y trabajos de migración.
Con las migraciones de inicio rápido, puedes mover 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 lo siguiente:
- Migraciones básicas, en las que no necesitas un control preciso de la configuración de paralelismo del volcado de datos
- Migrar tu base de datos de un proyecto de Google Cloud a otro. Cuando configuras una migración de inicio rápido, puedes crear la 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 nube privada virtual (VPC) de Google Cloud, 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 con una dirección IP privada dentro de tu red de VPC.
- Las migraciones de inicio rápido admiten la conectividad de interfaces de IP pública y Private Service Connect. Los túneles SSH inversos no se admiten en 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 por completo tu situación. Consulta Limitaciones de la migración de inicio rápido.
- En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .
- 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.
Roles y permisos en el proyecto de origen
Si usas la conexión IP privada para conectarte a una base de datos de origen en un proyecto deGoogle Cloud , otorga los siguientes roles a cuentas específicas en el proyecto en el que reside tu base de datos de origen:
- Para la cuenta de usuario que realiza la migración:
-
Administrador de red de Compute (
roles/compute.networkAdmin) -
Navegador (
roles/browser)
-
Administrador de red de Compute (
- 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. Esta 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.
Estos roles predefinidos contienen los permisos necesarios para configurar la conectividad en tu proyecto de base de datos de origen 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 necesarios (origen):
Permisos necesarios (origen)
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:
compute.networks.getcompute.networks.listcompute.networks.updatePolicycompute.subnetworks.getcompute.subnetworks.listcompute.subnetworks.createcompute.subnetworks.usecompute.networkAttachments.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.usecompute.regionOperations.getnetworkconnectivity.internalRanges.createnetworkconnectivity.internalRanges.getnetworkconnectivity.operations.getresourcemanager.projects.getIamPolicy
Para la cuenta de servicio de Database Migration Service del proyecto de destino:
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 de 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) -
Navegador (
roles/browser)
Además, la cuenta de servicio de Database Migration Service del proyecto de destino
(service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.)
requiere el rol de
agente de Database Migration Service (roles/datamigration.serviceAgent)
en el proyecto de destino. Google Cloud otorga este rol de forma automática
cuando habilitas la API de Database Migration Service.
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 necesarios (destino)
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:
datamigration.privateconnections.getdatamigration.privateconnections.listdatamigration.privateconnections.createdatamigration.migrationjobs.createdatamigration.migrationjobs.updatedatamigration.migrationjobs.verifydatamigration.migrationjobs.startdatamigration.migrationjobs.getdatamigration.migrationjobs.fetchSourceObjectsdatamigration.operations.getdatamigration.connectionprofiles.createdatamigration.connectionprofiles.getdatamigration.connectionprofiles.updatedatamigration.locations.listdatamigration.locations.fetchStaticIpscloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.getcloudsql.users.listcloudsql.users.createcloudsql.users.updatecloudsql.users.deleteresourcemanager.projects.getIamPolicy
Para la cuenta de servicio de Database Migration Service del proyecto de destino:
cloudsql.instances.connectcloudsql.instances.executeSqlcloudsql.instances.getcloudsql.instances.importcloudsql.instances.listcloudsql.users.create
Configurar tu base de datos de origen
Para configurar tu base de datos de PostgreSQL de origen, haz lo siguiente:
- Crea una cuenta de usuario de migración dedicada en tu instancia.
- Para las fuentes de Cloud SQL para PostgreSQL, consulta Crea un usuario en la documentación de Cloud SQL.
- Para otras fuentes, consulta la documentación de tu proveedor de base 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 por 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
migras. Para otorgar este nivel de acceso, realiza una de las siguientes acciones:
- Solo para fuentes que no sean Cloud SQL para PostgreSQL: asigna el
rol de PostgreSQL
SUPERUSERa la cuenta de migración. - Para todas las fuentes: Agrega la cuenta de usuario de migración al grupo de usuarios propietario de las tablas.
Ejecuta el comando siguiente:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Reemplaza lo siguiente:
- TABLE_OWNER_GROUP_NAME por el nombre del grupo de usuarios propietario de cada tabla que quieras 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
rol de PostgreSQL
- 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 esas 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.
- Establece la configuración de replicación con marcas de base de datos.
Fuentes autoadministradas
Para guardar los cambios en las marcas de la base de datos, se debe reiniciar por completo. 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 estas marcas.
- 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 se debe establecer en, al menos, la cantidad de bases de datos que migrarás por trabajo de migración, además de 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 de 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:
Donde 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_sendersen, 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:
En el ejemplo anterior, 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_processescomo mínimo en 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: Donde 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, configura las marcas de base 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 se aplique el parámetro de configuración. Para obtener más información sobre cómo configurar marcas de base de datos en Cloud SQL, consulta Configura marcas de base de datos en la documentación de Cloud SQL.
- Establece la marca
cloudsql.logical_decodingenon. Para habilitar esta marca, se debe reiniciar la instancia para que se aplique el parámetro de configuración. - 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 se debe establecer en, al menos, la cantidad de bases de datos que migrarás por trabajo de migración, además de algunas reservas para la sincronización de tablas.Por ejemplo, si migras 5 bases de datos y hay 2 trabajos de migración creados para la instancia de origen, la cantidad de ranuras de replicación debe ser de al menos
5 * 2 = 10, más la cantidad de ranuras de replicación que ya usas. - Configura el parámetro
max_wal_sendersen, 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. - 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 migración.
Se abrirá la página Migra a Cloud SQL para PostgreSQL.
- En la sección Configura 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 fácil de entender 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 conectividad, selecciona cómo se conecta Database Migration Service
a tu base de datos de origen:
- IP privada: Conéctate a través de una red privada con
interfaces de Private Service Connect. 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 un adjunto de red y una configuración de conectividad privada que usa el método de interfaces de Private Service Connect. Esta opción se usa mejor si ya usaste migraciones de inicio rápido y quieres volver a usar los mismos recursos de red.
- 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 la instancia de destino.
- IP pública: Conéctate a través de la Internet pública con una dirección IP pública estática saliente dedicada. Si ya existe una configuración de conectividad de IP pública en tu proyecto y región de destino, Database Migration Service la reutiliza. De lo contrario, Database Migration Service creará una nueva configuración de conectividad de IP pública y generará una dirección IP saliente cuando continúes.
- IP privada: Conéctate a través de una red privada con
interfaces de Private Service Connect. En el menú
Tipo de configuración, selecciona una de las siguientes opciones:
- Haz clic en Continuar. Si se te solicita confirmar la creación de recursos de red, haz clic en Configurar y continuar.
- En la sección Conectar fuente, haz lo siguiente:
- Si seleccionaste IP pública en el paso anterior, copia la
dirección IP saliente que se muestra en la consola de Google Cloud y agrégala
como una regla de firewall de entrada o una entrada de la lista de entidades permitidas en tu red de origen (como
pg_hba.confo grupos de seguridad del proveedor de servicios en la nube) para permitir que Database Migration Service se conecte. - Ingresa un Nombre de host o la Dirección IP de tu base de datos de origen. Si seleccionaste IP privada, ingresa la dirección IP privada a la que se puede acceder desde tu red de VPC de origen. Si seleccionaste IP pública, ingresa la dirección IP pública de tu base de datos de origen.
- 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:
- Ninguna: 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.
- Si seleccionaste IP pública en el paso anterior, copia la
dirección IP saliente que se muestra en la consola de Google Cloud y agrégala
como una regla de firewall de entrada o una entrada de la lista de entidades permitidas en tu red de origen (como
- En la sección Configura el 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 predeterminado de
postgres. 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 tenga configurada una IP privada (con Private Service Connect, el acceso privado a servicios o ambos) y no aplique conexiones 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 la conectividad a tu base de datos de origen.
Selecciona la pestaña según si tu base de datos de origen usa una IP privada (Private Service Connect) o una IP pública:IP privada (Private Service Connect)
Para conectarte con Private Service Connect, configura el adjunto de red y la conexión privada:
-
Configura el 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 en la que se puede acceder a la IP privada de la base de datos de origen.
- Si quieres crear un adjunto de red nuevo, 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 por la región del adjunto de red.
- DEST_PROJECT_ID por 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 quieres crear un adjunto de red nuevo, 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 usuario de Database Migration Service. Sigue los siguientes pasos:
- Para recuperar el ID del proyecto de usuario de Database Migration Service, realiza una ejecución de prueba de la creación de una 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 por 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 muestra 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 por la región.
- DEST_PROJECT_ID por el ID del proyecto de destino.
- DMS_TENANT_ID por 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 de usuario de Database Migration Service, realiza una ejecución de prueba de la creación de una 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 por 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
IP pública
Para conectarte a una base de datos de origen con una dirección IP pública, sigue estos pasos:
-
Crea una conexión privada con una IP pública reservada.
Ejecuta el siguiente comando (haz clic para expandir):gcloud database-migration private-connections 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 poco 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:
- CONNECTION_ID por el identificador de la conexión privada.
- REGION por la región de Google Cloud en la que quieres crear la conexión privada.
- DISPLAY por un nombre visible descriptivo para la conexión privada.
- Opcional: Puedes reemplazar la marca
--reserved-public-ippor--reserved-public-ip-nat-ips-countpara reservar varias direcciones IP públicas dedicadas que Database Migration Service usa para la conexión. Puedes reservar hasta10direcciones IP.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration private-connections create \ CONNECTION_ID \ --region=REGION \ --display-name="DISPLAY" \ --reserved-public-ip \ --no-async
Windows (PowerShell)
gcloud database-migration private-connections create ` CONNECTION_ID ` --region=REGION ` --display-name="DISPLAY" ` --reserved-public-ip ` --no-async
Windows (cmd.exe)
gcloud database-migration private-connections create ^ CONNECTION_ID ^ --region=REGION ^ --display-name="DISPLAY" ^ --reserved-public-ip ^ --no-async
-
Recupera las direcciones IP públicas reservadas.
Ejecuta el siguiente comando (haz clic para expandir):gcloud database-migration connection-profiles fetch-static-ipsAntes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
- REGION por la región de Google Cloud de la conexión privada.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration connection-profiles fetch-static-ips \ REGION \ --fetch-reserved-public-ips
Windows (PowerShell)
gcloud database-migration connection-profiles fetch-static-ips ` REGION ` --fetch-reserved-public-ips
Windows (cmd.exe)
gcloud database-migration connection-profiles fetch-static-ips ^ REGION ^ --fetch-reserved-public-ips
-
Agrega las direcciones IP reservadas a la lista de entidades permitidas en la base de datos de origen.
Agrega las direcciones IP recuperadas en el paso anterior a la lista de entidades permitidas entrantes para tu base de datos de origen (por ejemplo, en tu configuración depg_hba.conf, los grupos de seguridad del proveedor de servicios en la nube o las reglas de firewall de red) para que Database Migration Service pueda establecer una conexión.
-
-
Crea el perfil de conexión de origen.
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 poco 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 de origen.
- REGION por la región en la que deseas guardar el perfil de conexión.
- SOURCE_PRIVATE_IP por la dirección IP privada de la 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 quieres 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 Google Cloud CLI de Cloud SQL y, luego, crea el perfil de conexión de destino. Lleva a cabo los pasos siguientes:
-
Crea una instancia con Google Cloud CLI de Cloud SQL.
Asegúrate de que la instancia de destino esté configurada con una
IP privada (con el acceso privado a servicios) o habilitada para
Private Service Connect (por ejemplo, con la
marca
--enable-private-service-connect). No se admiten los destinos configurados sin ninguna IP privada. - 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 poco 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 por el identificador del perfil de conexión de destino.
- REGION por la región en la que deseas guardar el perfil de conexión. Esta región debe ser la misma que la de tu instancia de destino.
- DEST_INSTANCE por el ID de la instancia de destino de Cloud SQL que creaste previamente.
- DEST_USER por el nombre de usuario del usuario de migración en tu base de datos de destino.
- DEST_PASSWORD por 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 poco 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 por el identificador del perfil de conexión de destino.
- REGION por la región en la que deseas guardar el perfil de conexión. Esta región debe ser la misma que la de tu instancia de destino.
- DEST_INSTANCE por el ID de la instancia de destino de Cloud SQL que creaste previamente.
- DEST_USER por el nombre de usuario del usuario de migración en tu base de datos de destino.
- DEST_PASSWORD por 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 Google Cloud CLI de Cloud SQL.
Asegúrate de que la instancia de destino esté configurada con una
IP privada (con el acceso privado a servicios) o habilitada para
Private Service Connect (por ejemplo, con 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 poco 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 por el identificador del perfil de conexión de origen.
- DEST_CONN_ID por el identificador del perfil de conexión de destino.
- DATABASES_LIST por 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 poco 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 por el identificador de la región en la que se guarda tu trabajo de migració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 que se muestra o verificar el estado del trabajo de migración:
- Usa el comando
gcloud database-migration migration-jobs describecon el MIGRATION_JOB_ID para ver el estado del trabajo de migración. - Usa el comando
gcloud database-migration operations describecon el OPERATION_ID para ver el estado de la operación en sí.
- 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 con estos pasos:
- Detén todas las operaciones de escritura en la base de datos de origen. Puedes cambiarlas al modo de solo lectura para conservar la funcionalidad operativa.
- Ascender el trabajo de migración En el caso de las migraciones de inicio rápido, la instancia de destino sigue admitiendo operaciones de escritura durante el proceso de migración. Promocionar 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 la migración estén completos.