Gestionar la migración avanzada

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

Un usuario con el rol Administrador de base de datos del proyecto debe seguir estos pasos. Usa la consola de GDC o la CLI de Distributed Cloud para gestionar las migraciones:

Consola

  1. En el menú principal, elige Servicio de base de datos.
  2. Haz clic en Crear migración.
  3. En el cuadro de diálogo Empezar, consulta los requisitos de la fuente y la conectividad.
  4. En el cuadro de diálogo Specify your source database (Especifica tu base de datos de origen), indica el nombre de host o la dirección IP, el nombre de usuario, la contraseña, el tipo de cifrado y el certificado de la base de datos de origen.
  5. En el cuadro de diálogo Configurar clúster, especifique 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 base de datos de destino. Asegúrate de elegir suficiente memoria para que quepa la tabla más grande.
  6. Haz clic en Crear. La creación del clúster de la base de datos de migración y de destino 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 se configura correctamente. Usa las siguientes opciones para gestionar tu migración:
    1. Iniciar: inicia la migración y cambia el estado a Running.
    2. Detener: detiene la migración y cambia su estado a Stopped.
    3. Promote: esta opción convierte el clúster de base de datos de destino en una base de datos independiente.
    4. Eliminar: elimina la migración y el clúster de base de datos de destino creados para esta migración.

Cambia periódicamente la contraseña del usuario de replicación de la base de datos de origen siguiendo estos pasos:

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

Una vez aplicado el cambio, el backend de migración usará la nueva contraseña.

gdcloud

  1. Antes de usar Distributed Cloud CLI, instálalo e inicialízalo. A continuación, 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
    

    Sustituye las siguientes variables:

    • DB_ENGINE_TYPE, el tipo de motor de base de datos para la migración. Los valores posibles son postgresql y 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 del certificado de AC 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 nuevo clúster. Por ejemplo, POSTGRESQL_13.
    • ADMIN_PASSWORD, la contraseña de usuario administrador del nuevo clúster.
  3. Para iniciar una migración, haz lo siguiente:

    gdcloud database migrations start MIGRATION_NAME
    
  4. Detener una migración:

    gdcloud database migrations stop MIGRATION_NAME
    
  5. Promocionar una migración:

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Lista de perfiles de conexión:

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. Lista la migración actual:

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

En el caso de las bases de datos de origen de AlloyDB o PostgreSQL:

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

Sustituye las siguientes variables:

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