Gérer la migration avancée

La migration avancée est une solution permettant de migrer les données des bases de données de grande taille avec un temps d'arrêt réduit. Cette fonctionnalité n'est disponible que pour AlloyDB Omni et PostgreSQL.

Un utilisateur disposant du rôle Administrateur de base de données du projet doit effectuer les étapes suivantes. Utilisez la console GDC ou Distributed Cloud CLI pour gérer les migrations :

Console

  1. Dans le menu principal, sélectionnez Service de base de données.
  2. Cliquez sur Créer une migration.
  3. Dans la boîte de dialogue Commencer, vérifiez les exigences concernant la source et la connectivité.
  4. Dans la boîte de dialogue Spécifiez votre base de données source, indiquez le nom d'hôte ou l'adresse IP de la base de données source, le nom d'utilisateur, le mot de passe, le type de chiffrement et le certificat.
  5. Dans la boîte de dialogue Configurer votre cluster, spécifiez l'ID du cluster, le mot de passe, la version de la base de données, le processeur, la mémoire et la capacité de stockage du cluster de base de données cible. Assurez-vous de choisir suffisamment de mémoire pour accueillir votre table la plus volumineuse.
  6. Cliquez sur Créer. La création de la migration et du cluster de base de données cible peut prendre quelques minutes. L'état passe de Reconciling à Ready lorsque le cluster est prêt. L'état de la migration passe à Unsynced lorsque la migration est configurée avec succès. Utilisez les options suivantes pour gérer votre migration :
    1. Démarrer : lance la migration et définit l'état de la migration sur Running.
    2. Arrêter : arrête la migration et définit son état sur Stopped.
    3. Promouvoir : cette option permet de promouvoir le cluster de bases de données cibles en base de données autonome.
    4. Supprimer : cette option supprime la migration et le cluster de base de données cible créés pour cette migration.

Modifiez régulièrement le mot de passe de l'utilisateur de réplication de la base de données source en procédant comme suit :

  1. Accédez à Base de données source, puis cliquez sur Modifier Modifier.
  2. Apportez les modifications nécessaires pour changer le mot de passe de l'utilisateur de réplication.
  3. Cliquez sur Enregistrer pour appliquer les modifications.

Une fois la modification appliquée, le backend de migration utilise le nouveau mot de passe.

gdcloud

  1. Avant d'utiliser Distributed Cloud CLI, installez-la et initialisez-la. Ensuite, authentifiez-vous auprès de votre organisation.

  2. Créer une migration :

    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
    

    Remplacez les variables suivantes :

    • DB_ENGINE_TYPE, le type de moteur de base de données pour la migration. Les valeurs autorisées sont : postgresql ou alloydbomni
    • SOURCE_CONNECTION_PROFILE : nom du nouveau profil de connexion.
    • REPLICATION_USERNAME, nom de l'utilisateur de la réplication de la base de données source.
    • REPLICATION_PASSWORD, mot de passe de l'utilisateur de la réplication de la base de données source.
    • CA_CERT_FILE_PATH, chemin d'accès au certificat d'autorité de certification de la base de données source.
    • MIGRATION_NAME : nom de la nouvelle migration.
    • DESTINATION_DBCLUSTER : nom du cluster de base de données cible.
    • DB_VERSION : chaîne de version du nouveau cluster. Exemple :POSTGRESQL_13
    • ADMIN_PASSWORD, mot de passe de l'utilisateur administrateur pour le nouveau cluster.
  3. Lancer une migration :

    gdcloud database migrations start MIGRATION_NAME
    
  4. Arrêter une migration :

    gdcloud database migrations stop MIGRATION_NAME
    
  5. Promouvoir une migration :

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Répertoriez les profils de connexion existants :

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. Répertoriez la migration existante :

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

Pour les bases de données sources AlloyDB ou PostgreSQL :

Créez un secret pour stocker le certificat CA de la base de données source :

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

Créez un secret pour stocker le mot de passe de l'utilisateur de la migration de la base de données source :

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

Créez 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

Créez une migration :

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

Remplacez les variables suivantes :

  • EXTERNAL_SERVER_NAME : nom du serveur externe représentant la base de données source.
  • USER_PROJECT : nom du projet utilisateur dans lequel le serveur externe est créé.
  • DBENGINE_NAME : nom du moteur de base de données. Il s'agit de alloydbomni ou postgresql.
  • SOURCE_DB_CA_CERT : certificat CA de la base de données source.
  • SOURCE_DB_USER_PASSWORD : mot de passe de l'utilisateur de la migration de la base de données source.
  • SOURCE_DB_USERNAME : nom d'utilisateur de la migration de la base de données source.
  • SOURCE_DB_HOST : adresse de l'hôte de migration de la base de données source.
  • MIGRATION_NAME : nom de l'opération de migration.
  • DBCLUSTER_NAME : nom du cluster de base de données cible de la migration.
  • MIGRATION_CONTROL : contrôles de l'opération de migration. Lors de la création de la migration, la valeur doit être start ou stop. La valeur doit être promote pour promouvoir le cluster de base de données cible de la migration.