Crea un trabajo de migración a una instancia de destino nueva

Cuando creas tu instancia de destino con Database Migration Service, esa instancia no se desciende de nivel y no se ejecuta en modo de solo lectura, pero ejecutar ciertas operaciones durante el proceso de migración puede provocar errores de migración. Cuando migres a una instancia de destino nueva, ten en cuenta las siguientes consideraciones operativas:

  • Evita las operaciones de escritura en los datos que se migran: No realices operaciones de escritura (como INSERT, UPDATE, DELETE o cambios en el esquema DDL) en la instancia de destino en las tablas o bases de datos incluidas en la migración. Estas operaciones pueden generar conflictos de replicación con los datos que provienen de la fuente.
  • Administra usuarios de la base de datos: Puedes crear y administrar usuarios de la base de datos en cualquier momento con comandos estándar de psql o a través de Cloud SQL en la consola de Google Cloud . Para obtener más información, consulta Administra usuarios en la documentación de Cloud SQL.
  • Copias de seguridad y réplicas de lectura: Las copias de seguridad automáticas y la recuperación de un momento determinado (PITR) se suspenden durante la replicación continua, y no puedes crear réplicas de lectura de Cloud SQL desde la instancia de destino hasta que se ascienda el trabajo de migración.

Para obtener más información, consulta Limitaciones conocidas.

La creación de un trabajo de migración incluye lo siguiente:

  1. Definir la configuración del trabajo de migración
  2. Definir la configuración de origen y seleccionar las bases de datos que se migrarán
  3. Definir la configuración para la instancia de base de datos de Cloud SQL de destino y crear la instancia.
  4. Configurar la conectividad entre las instancias de base de datos de origen y de destino.
  5. Probar el trabajo de migración para asegurarte de que la información de conexión que proporcionaste para el trabajo sea válida

Para crear un trabajo de migración a una instancia de destino nueva, haz lo siguiente:

Console

Define la configuración del trabajo de migración

  1. En la consola de Google Cloud , ve a la página Trabajos de migración.

    Ir a Trabajos de migración

  2. Haz clic en Crear trabajos de migración.

    Se abrirá la página del asistente de configuración del trabajo de migración. Este asistente contiene varios paneles que te guían por cada paso de la configuración.

    Puedes pausar la creación de un trabajo de migración en cualquier momento haciendo clic en Guardar y salir. Todos los datos que ingreses hasta ese punto se guardarán en un trabajo de migración de borrador. Puedes terminar el borrador del trabajo de migración más tarde.

  3. En la página Comenzar, ingresa la siguiente información:
    1. Nombre del trabajo de migración

      Este es un nombre legible por humanos para tu trabajo de migración. Este valor se muestra en la consola de Google Cloud .

    2. ID del trabajo de migración

      Este es un identificador legible por máquinas para tu trabajo de migración. Usa este valor para trabajar con trabajos de migración con los comandos de Google Cloud CLI o la API de Database Migration Service.

    3. En la lista Motor de base de datos de origen, selecciona PostgreSQL.

      El campo Motor de base de datos de destino se completa automáticamente con Cloud SQL para PostgreSQL y no se puede cambiar.

    4. Selecciona la región en la que guardarás el trabajo de migración.

      Database Migration Service es un producto completamente regional, lo que significa que todas las entidades relacionadas con tu migración (perfiles de conexión de origen y destino, trabajos de migración, bases de datos de destino) deben guardarse en una sola región. Selecciona la región según la ubicación de los servicios que necesitan tus datos, como instancias de Compute Engine o apps de App Engine, entre otros. Después de elegir la región de destino, no se puede cambiar esta selección.

    5. Especifica el tipo de trabajo de migración: Único o Continuo.
    6. Revisa los requisitos previos generados para tu entorno. Asegúrate de que tu base de datos de origen esté configurada de forma adecuada. Para obtener más información, consulta Configura la base de datos de origen.
  4. Haz clic en Guardar y continuar.

Especifica la información sobre el perfil de conexión de origen

En la página Define una fuente, realiza los siguientes pasos:

  1. En el menú desplegable Perfil de conexión de origen, selecciona el perfil de conexión para tu base de datos de origen (o haz clic en Crear un perfil de conexión, consulta Crea un perfil de conexión de origen).
  2. En la sección Personaliza los parámetros de configuración del paralelismo, haz clic en Mostrar parámetros de configuración del paralelismo.

    La velocidad del paralelismo de volcado de datos se relaciona con la cantidad de carga que se induce en la base de datos de origen. Puedes usar los siguientes parámetros de configuración:

    • Óptimo (recomendado): Rendimiento equilibrado con una carga óptima en la base de datos de origen.
    • Máximo: Proporciona las velocidades de volcado más altas, pero puede aumentar la carga en la base de datos de origen.
    • Mínimo: Toma la menor cantidad de recursos de procesamiento en la base de datos de origen, pero puede tener una capacidad de procesamiento de volcado más lenta.

    Si eliges una configuración de paralelismo ajustada, asegúrate de aumentar los parámetros max_replication_slots, max_wal_senders y max_worker_processes en tu base de datos de origen. Para verificar la configuración, ejecuta la prueba del trabajo de migración al final de su creación.

  3. Haz clic en Guardar y continuar.

Configura y crea la instancia de Cloud SQL de destino

  1. En la página Define un destino, en el menú desplegable Tipo de instancia de destino, selecciona Instancia nueva. Define todos los parámetros de configuración pertinentes:
    1. En el campo ID de la instancia de destino, proporciona un identificador para la instancia de Cloud SQL o usa el identificador generado de forma automática.

      No incluyas información sensible ni de identificación personal en el identificador. No debes incluir el ID del proyecto en el nombre de la instancia. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro).

    2. En el campo Contraseña, proporciona una contraseña alfanumérica para la instancia de Cloud SQL de destino. Esta es la contraseña de la cuenta de administrador postgres en la instancia.

      Puedes ingresar la contraseña de forma manual o hacer clic en Generar para que Database Migration Service cree una de forma automática.

    3. En el menú desplegable Versión de la base de datos, elige la versión de la base de datos para la instancia de destino.

      Obtén más información sobre la compatibilidad con la migración entre versiones.

    4. Selecciona la edición de Cloud SQL para PostgreSQL de tu instancia de destino. Hay dos opciones disponibles: Cloud SQL para PostgreSQL edición Enterprise y Cloud SQL para PostgreSQL edición Enterprise Plus.

      Las ediciones de Cloud SQL para PostgreSQL incluyen diferentes conjuntos de funciones, tipos de máquinas disponibles y precios. Asegúrate de consultar la documentación de Cloud SQL para elegir la edición adecuada según tus necesidades. Si deseas obtener más información, consulta Introducción a las ediciones de Cloud SQL para PostgreSQL.

    5. En el menú Región, se muestra la misma región que seleccionaste en la página Comenzar.

      Si configuras la instancia para que tenga alta disponibilidad, selecciona Varias zonas (con alta disponibilidad). Puedes seleccionar la zona principal y la secundaria. Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación de la instancia:

      • Las zonas están predeterminadas como Cualquiera para la zona principal y Cualquiera (diferente de la principal) para la zona secundaria.
      • Si se especifican las zonas principal y secundaria, deben ser zonas diferentes.
    6. En la sección Conexiones, elige si deseas agregar una dirección IP pública o privada para tu instancia de destino. Puedes configurar tu instancia para que tenga ambos tipos de direcciones IP, pero se requiere al menos un tipo para la migración. Selecciona una de las siguientes opciones:
      • Si quieres migrar con el intercambio de tráfico entre VPC o un túnel SSH inverso, selecciona IP privada.
        • Para habilitar la conectividad de IP privada, asegúrate de cumplir con todos los requisitos de red adicionales.

          Expande esta sección para ver todos los requisitos de IP privada.

        • Selecciona la red de VPC asociada para intercambiar tráfico. Si planeas conectarte a la fuente de migración con el intercambio de tráfico entre VPC, elige la VPC en la que reside la instancia.
        • Si nunca se configuró una red de servicios administrados para la VPC seleccionada, puedes elegir un rango de IP y hacer clic en Conectar o usar un rango de IP seleccionado automáticamente y hacer clic en Asignar y conectar.
      • Si deseas migrar a través de Internet con una lista de IPs permitidas, selecciona IP pública.

        De manera opcional, en IP pública, haz clic en el campo Redes autorizadas y autoriza una red o un proxy para conectarte a la instancia de Cloud SQL. Las redes solo se autorizan con las direcciones que proporcionas. Consulta Configura la IP pública en la documentación de Cloud SQL.

      Configurarás la conectividad del trabajo de migración en un paso posterior. Para obtener más información sobre los métodos de red disponibles, consulta Configura la conectividad.

  2. Selecciona el tipo de máquina para la instancia de Cloud SQL. Obtén más información sobre los tipos de máquinas de PostgreSQL.
  3. Para la edición Enterprise Plus de Cloud SQL para PostgreSQL: Selecciona la casilla de verificación Habilitar la caché de datos si quieres usar la función de caché de datos en tu base de datos de destino.

    La caché de datos es una función opcional disponible para las instancias de la edición Enterprise Plus de Cloud SQL para PostgreSQL que agrega una unidad de estado sólido local de alta velocidad a tu base de datos de destino. Esta función puede generar costos adicionales para Cloud SQL. Para obtener más información sobre la caché de datos, consulta Descripción general de la caché de datos en la documentación de Cloud SQL.

  4. Especifica el tipo de almacenamiento para la instancia de Cloud SQL. Puedes elegir una unidad de estado sólido (SSD) o una unidad de disco duro (HDD).
  5. Especifica la capacidad de almacenamiento (en gigabytes) para la instancia de Cloud SQL.

    Asegúrate de que la instancia tenga suficiente capacidad de almacenamiento para controlar los datos de tu base de datos de origen. Puedes aumentar esta capacidad en cualquier momento, pero no puedes disminuirla.

  6. (Opcional) Configura las opciones de encriptación de datos o las etiquetas de recursos para tu instancia de destino.

    Expande esta sección para ver los pasos opcionales.

    Haz clic en Mostrar parámetros de configuración opcionales y, luego, haz lo siguiente:

    1. Especifica si quieres administrar la encriptación de los datos que se migran de la fuente al destino. De forma predeterminada, tus datos se encriptan con una clave administrada por Google Cloud. Si quieres administrar la encriptación, puedes usar una clave de encriptación administrada por el cliente (CMEK). Para ello, deberás hacer lo siguiente:

      1. Selecciona la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
      2. En el menú Selecciona una clave administrada por el cliente, elige tu CMEK.

      Si no ves tu clave, haz clic en Ingresar el nombre del recurso de la clave para proporcionar el nombre del recurso de la clave que quieres usar. Ejemplo de nombre del recurso de la clave: projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key.

    2. Agrega las marcas necesarias que se aplicarán al servidor de la base de datos. Si es posible, asegúrate de que las marcas de base de datos de la instancia de Cloud SQL de destino creada sean las mismas que las de la base de datos de origen. Obtén más información sobre las marcas de base de datos compatibles con PostgreSQL.
    3. Agrega las etiquetas que sean específicas de la instancia de Cloud SQL.

      Las etiquetas ayudan a organizar tus instancias. Por ejemplo, puedes organizar las etiquetas por centro de costos o entorno. Además, las etiquetas se incluyen en tu factura, de manera que puedes ver la distribución de los costos en distintas etiquetas.

  7. Haz clic en Crear destino y continuar. Database Migration Service ahora está creando tu instancia de destino de Cloud SQL. Este proceso puede tardar varios minutos.

Configurar la conectividad entre las instancias de base de datos de origen y de destino

En el menú desplegable Método de conectividad, selecciona un método de conectividad de red. Este método define cómo se conectará la instancia de Cloud SQL recién creada a la base de datos de origen. Los métodos de conectividad de red actuales para migrar a una instancia nueva incluyen la lista de IPs permitidas, el túnel SSH inverso y el intercambio de tráfico entre VPC.

Si quieres usar…Luego, haz lo siguiente:
El método de conectividad de red de lista de IPs permitidas Debes especificar la dirección IP de salida de tu instancia de destino. Si la instancia de Cloud SQL que creaste es una instancia de alta disponibilidad, incluye las direcciones IP salientes para la instancia principal y la secundaria.
El método de conectividad de red de túnel SSH inverso Debes seleccionar la instancia de VM de Compute Engine que alojará el túnel.

Después de especificar la instancia, Google proporcionará una secuencia de comandos que realiza los pasos para configurar el túnel entre las bases de datos de origen y destino. Deberás ejecutar la secuencia de comandos en Google Cloud CLI.

Ejecuta los comandos desde una máquina que tenga conectividad con la base de datos de origen y con Google Cloud.

El método de conectividad de red de intercambio de tráfico de VPC, Debes seleccionar la red de VPC en la que reside la base de datos de origen. La instancia de Cloud SQL se actualizará para conectarse a esta red.

Después de seleccionar y configurar la conectividad de red, haz clic en Configurar y continuar.

Configura las bases de datos de migración

Puedes migrar todas las bases de datos de tu instancia de origen o elegir solo bases de datos específicas. La instancia de destino no puede contener ninguna base de datos que comparta el nombre con las bases de datos que elijas para la migración. Si Database Migration Service encuentra una colisión de nombres de bases de datos, la base de datos que genera el conflicto se descarta en el destino antes de la migración.

  1. En la lista Bases de datos para migrar, selecciona una de las siguientes opciones:
    • Todas las bases de datos: Selecciona todas las bases de datos que existen en la fuente.
    • Bases de datos específicas: Te permite seleccionar bases de datos específicas de todas las bases de datos que existen en la fuente.
  2. Si quieres migrar bases de datos específicas, puedes filtrar la lista que aparece y seleccionar las bases de datos que quieres que Database Migration Service migre a tu destino.

    Si la lista no aparece y se muestra un error de descubrimiento de la base de datos, haz clic en Volver a cargar. Si falla el descubrimiento de bases de datos, el trabajo migra todas las bases de datos. Puedes continuar con la creación de un trabajo de migración y corregir los errores de conectividad más adelante.

  3. Haz clic en Guardar y continuar.

Prueba, crea y ejecuta el trabajo de migración

En este paso final, revisa el resumen de la configuración del trabajo de migración, la fuente, el destino y el método de conectividad y, luego, prueba la validez de la configuración del trabajo de migración. Si se produce algún problema, puedes modificar la configuración del trabajo de migración. No todos los parámetros de configuración se pueden editar.

  1. En la página Prueba y crea el trabajo de migración, haz clic en Probar trabajo.

    Si la prueba falla, puedes abordar el problema en la parte adecuada del flujo y volver a realizar la prueba. Para obtener información sobre cómo solucionar problemas de una prueba de trabajo de migración con errores, consulta Diagnostica problemas de PostgreSQL.

  2. Cuando finalice la prueba del trabajo de migración, haz clic en Crear y comenzar trabajo para crear el trabajo de migración y comenzarlo de inmediato, o haz clic en Crear trabajo para crear el trabajo de migración sin comenzarlo de inmediato.

    Si el trabajo no se inicia en el momento en que se crea, se puede iniciar desde la página Trabajos de migración haciendo clic en INICIAR. Independientemente de cuándo comience el trabajo de migración, se le cobrará a tu organización por la existencia de la instancia de destino.

    La migración está en curso. Cuando inicias el trabajo de migración, Database Migration Service comienza el volcado completo y la replicación iniciales. Para obtener más información, consulta Limitaciones conocidas.

  3. Continúa con Revisa el trabajo de migración.

Google Cloud CLI

  1. Crea el perfil de conexión de destino.
    Cuando migras a una instancia de destino nueva con Google Cloud CLI, creas la instancia de destino y el perfil de conexión en una sola acción.
    Ejecuta el siguiente comando (haz clic en el vínculo para expandir):

    gcloud database-migration connection-profiles create postgresql

    En este ejemplo, se usa la marca opcional --no-async para 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-async para ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comando gcloud database-migration operations describe para 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 creada 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]
    
  2. Crea el trabajo de migración.
    Si usas el intercambio de tráfico entre VPC o una conectividad de túnel SSH inverso, asegúrate de agregar las marcas requeridas, como --peer-vpc, o --vm, --vm-ip, --vm-port, --vpc. Para obtener más información, consulta Configura la conectividad y Ejemplos de Google Cloud CLI.
    Ejecuta el siguiente comando (haz clic en el vínculo para expandir):

    gcloud database-migration migration-jobs create

    En este ejemplo, se usa la marca opcional --no-async para 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-async para ejecutar comandos de forma asíncrona. Si lo haces, debes usar el comando gcloud database-migration operations describe para 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 un identificador legible por máquinas para tu trabajo de migración. Usa este valor para trabajar con trabajos de migración con los comandos de Google Cloud CLI o la API de Database Migration Service.
    • REGION por el identificador de la región en la que deseas guardar el trabajo de migración.
    • MIGRATION_JOB_NAME por un nombre legible por humanos para tu trabajo de migración. Este valor se muestra en Database Migration Service en la consola de Google Cloud .
    • SOURCE_CONNECTION_PROFILE_ID por un identificador legible por máquinas del perfil de conexión de origen. Para obtener más información, consulta Crea un perfil de conexión de origen.
    • DESTINATION_CONNECTION_PROFILE_ID por un identificador legible por máquina del perfil de conexión de destino.
    • Opcional: Database Migration Service migra todas las bases de datos de tu fuente de forma predeterminada. Si solo quieres migrar bases de datos específicas, usa la marca --databases-filter y especifica sus identificadores como una lista separada por comas.

      Por ejemplo: --databases-filter=my-business-database,my-other-database.

      Más adelante, puedes editar los trabajos de migración que creaste con la marca --databases-filter con el comando gcloud database-migration migration-jobs update.

    Ejecuta el siguiente comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration migration-jobs \
    create MIGRATION_JOB_ID \
      --no-async \
      --region=REGION \
      --display-name=MIGRATION_JOB_NAME \
      --source=SOURCE_CONNECTION_PROFILE_ID \
      --destination=DESTINATION_CONNECTION_PROFILE_ID \
      --type=CONTINUOUS

    Windows (PowerShell)

    gcloud database-migration migration-jobs `
    create MIGRATION_JOB_ID `
      --no-async `
      --region=REGION `
      --display-name=MIGRATION_JOB_NAME `
      --source=SOURCE_CONNECTION_PROFILE_ID `
      --destination=DESTINATION_CONNECTION_PROFILE_ID `
      --type=CONTINUOUS

    Windows (cmd.exe)

    gcloud database-migration migration-jobs ^
    create MIGRATION_JOB_ID ^
      --no-async ^
      --region=REGION ^
      --display-name=MIGRATION_JOB_NAME ^
      --source=SOURCE_CONNECTION_PROFILE_ID ^
      --destination=DESTINATION_CONNECTION_PROFILE_ID ^
      --type=CONTINUOUS

    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]