Administra la migración avanzada

La migración avanzada es una solución para migrar datos de bases de datos grandes con menos tiempo de inactividad. Esta función solo está disponible para AlloyDB Omni y PostgreSQL.

Un usuario con el rol de administrador de la base de datos del proyecto debe realizar los siguientes pasos. Usa la consola de GDC o la CLI de Distributed Cloud para administrar las migraciones:

Console

  1. En el menú principal, elige Servicio de base de datos.
  2. Haz clic en Crear migración.
  3. En el diálogo Comenzar, revisa los requisitos de la fuente y la conectividad.
  4. En el cuadro de diálogo Especifica tu base de datos de origen, especifica el nombre de host o la dirección IP, el nombre de usuario, la contraseña, el tipo de encriptación y el certificado de la base de datos de origen.
  5. En el cuadro de diálogo Configura tu clúster, especifica el ID del clúster, la contraseña, la versión de la base de datos, la CPU, la memoria y la capacidad de almacenamiento del clúster de la base de datos de destino. Asegúrate de elegir suficiente memoria para contener tu tabla más grande.
  6. Haz clic en Crear. La creación del clúster de la base de datos de destino y de migración puede tardar unos minutos. El estado cambia de Reconciling a Ready cuando el clúster está listo. El estado de la migración cambia a Unsynced cuando la migración se configura correctamente. Usa las siguientes opciones para administrar tu migración:
    1. Iniciar: Inicia la migración y cambia el estado de migración a Running.
    2. Detener: Detiene la migración y cambia su estado a Stopped.
    3. Promote: Esta opción promueve el clúster de la base de datos de destino a una base de datos independiente.
    4. Borrar: Esta opción borra la migración y el clúster de la base de datos de destino creados para esta migración.

Rota periódicamente la contraseña del usuario de replicación de la base de datos de origen con los siguientes pasos:

  1. Ve a Base de datos de origen y haz clic en Editar Editar.
  2. Realiza los cambios para rotar la contraseña del usuario de replicación.
  3. Haz clic en Guardar para aplicar los cambios.

Después de aplicar el cambio, el backend de migración usa la contraseña nueva.

gdcloud

  1. Antes de usar Distributed Cloud CLI, instálala y, luego, inicialízala. Luego, autentícate con tu organización.

  2. Crea una migración

    gdcloud database connection-profiles create DB_ENGINE_TYPE SOURCE_CONNECTION_PROFILE \
        --username REPLICATION_USERNAME \
        --password REPLICATION_PASSWORD \
        --ca-certificate CA_CERT_FILE_PATH
    
    gdcloud database migrations create MIGRATION_NAME \
        --source SOURCE_CONNECTION_PROFILE \
        --destination DESTINATION_DBCLUSTER
    
    gdcloud database clusters create DESTINATION_DBCLUSTER \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Reemplaza las siguientes variables:

    • DB_ENGINE_TYPE, el tipo de motor de la base de datos para la migración. Los valores admitidos son postgresql o alloydbomni.
    • SOURCE_CONNECTION_PROFILE, el nombre del nuevo perfil de conexión.
    • REPLICATION_USERNAME, el nombre del usuario de replicación de la base de datos de origen.
    • REPLICATION_PASSWORD, la contraseña del usuario de replicación de la base de datos de origen
    • CA_CERT_FILE_PATH, la ruta de acceso al certificado de CA de la base de datos de origen.
    • MIGRATION_NAME, el nombre de la nueva migración.
    • DESTINATION_DBCLUSTER, el nombre del clúster de la base de datos de destino
    • DB_VERSION, la cadena de versión del clúster nuevo. Por ejemplo, POSTGRESQL_13
    • ADMIN_PASSWORD, la contraseña del usuario administrador para el clúster nuevo.
  3. Inicia una migración:

    gdcloud database migrations start MIGRATION_NAME
    
  4. Para detener una migración, haz lo siguiente:

    gdcloud database migrations stop MIGRATION_NAME
    
  5. Para promover una migración, sigue estos pasos:

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Enumera los perfiles de conexión existentes:

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. Enumera la migración existente:

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

Para bases de datos de origen de AlloyDB o PostgreSQL, haz lo siguiente:

Crea un secreto para almacenar el certificado de CA de la base de datos de origen:

apiVersion: v1
data:
  ca.crt:  SOURCE_DB_CA_CERT
kind: Secret
metadata:
  annotations:
    propagation.gdch.gke.io/target-namespace:  USER_PROJECT
  name: es-crt-EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
type: Opaque

Crea un secreto para almacenar la contraseña del usuario de migración de la base de datos de origen:

apiVersion: v1
data:
  password: SOURCE_DB_USER_PASSWORD
kind: Secret
metadata:
  annotations:
    propagation.gdch.gke.io/target-namespace: USER_PROJECT
  name: es-pw-EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
type: Opaque

Crea un externalserver:

apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
metadata:
  name: EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
spec:
  host: SOURCE_DB_HOST
  port: 5432
  username: SOURCE_DB_USERNAME
  password:
    name: es-pw-EXTERNAL_SERVER_NAME
    namespace: USER_PROJECT
  certRef:
    name: es-crt-EXTERNAL_SERVER_NAME
    namespace: USER_PROJECT

Crea una migración:

apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: Migration
metadata:
  name: MIGRATION_NAME
  namespace: USER_PROJECT
spec:
  source:
    reference:
      apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
      kind: ExternalServer
      name: EXTERNAL_SERVER_NAME
  target:
    reference:
      apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
      kind: DBCluster
      name: DBCLUSTER_NAME
  control: MIGRATION_CONTROL

Reemplaza las siguientes variables:

  • EXTERNAL_SERVER_NAME: Es el nombre del servidor externo que representa la base de datos de origen.
  • USER_PROJECT: Es el nombre del proyecto del usuario en el que se crea el servidor externo.
  • DBENGINE_NAME: Es el nombre del motor de base de datos. Puede ser alloydbomni o postgresql.
  • SOURCE_DB_CA_CERT: Es el certificado de CA de la base de datos de origen.
  • SOURCE_DB_USER_PASSWORD: Es la contraseña del usuario de migración de la base de datos de origen.
  • SOURCE_DB_USERNAME: Es el nombre de usuario de migración de la base de datos de origen.
  • SOURCE_DB_HOST: Es la dirección del host de migración de la base de datos de origen.
  • MIGRATION_NAME: Es el nombre de la operación de migración.
  • DBCLUSTER_NAME: Es el nombre del clúster de la base de datos de destino de la migración.
  • MIGRATION_CONTROL: Son los controles de la operación de migración. Debe ser start o stop cuando se crea la migración. Debe ser promote para promover el clúster de la base de datos de destino de la migración.