À propos des anciens espaces de travail de conversion

Les anciens espaces de travail de conversion sont un type d'espaces de travail de conversion plus ancien et plus limité. Les anciens espaces de travail de conversion ne sont pas compatibles avec les fonctionnalités de conversion améliorées par Gemini ni avec l'éditeur SQL interactif. Vous ne pouvez les utiliser que pour convertir votre schéma source avec l'outil de migration Ora2Pg.

Nous vous déconseillons d'utiliser l'ancien type d'espaces de travail de conversion pour vos migrations, car ils présentent plusieurs autres limites au workflow de conversion:

Espace de travail de conversion interactifAncien espace de travail de conversion
La conversion des objets de schéma et de code se produit dans Database Migration Service. Vous effectuez des conversions de schéma et d'objets de code en dehors de Database Migration Service à l'aide de l'outil de migration Ora2Pg.
Vous pouvez appliquer des sources converties à la base de données de destination directement dans Database Migration Service. Vous êtes responsable de l'application du schéma converti à la base de données de destination dans votre instance de destination Cloud SQL pour PostgreSQL.
Vous pouvez tester votre brouillon de schéma et de code directement dans Database Migration Service pour vous assurer qu'ils peuvent être appliqués à votre instance de destination. Vous ne pouvez pas tester votre brouillon de schéma et de code sans affecter l'instance de destination.
Ajoute automatiquement les colonnes rowid manquantes pour les tables qui ne disposent pas de clés primaires ni de contraintes uniques. Vous devez ajouter les clés primaires manquantes aux tables de destination après avoir appliqué le schéma.
Tableau 1: Comparaison des fonctionnalités de l'espace de travail Conversion

Utiliser les anciens espaces de travail de conversion

Si votre scénario nécessite l'utilisation d'anciens espaces de travail de conversion, modifiez le processus de migration en effectuant les actions suivantes:

  1. Écrivez un fichier de configuration Ora2Pg.

    Consultez la documentation Ora2Pg pour savoir comment utiliser l'outil de conversion Ora2Pg. Développez les sections suivantes pour obtenir la liste complète des directives compatibles avec Database Migration Service.

    Configuration Ora2Pg compatible avec Database Migration Service

    Database Migration Service est compatible avec les éléments de configuration suivants pour les fichiers Ora2Pg:

    • BOOLEAN_VALUES
    • DATA_TYPE
    • DEFAULT_NUMERIC
    • ENABLE_MICROSECOND
    • EXPORT_SCHEMA
    • MODIFY_STRUCT
    • MODIFY_TYPE
    • PG_INTEGER_TYPE
    • PG_NUMERIC_TYPE
    • PG_SCHEMA
    • PRESERVE_CASE
    • REPLACE_AS_BOOLEAN
    • REPLACE_COLS
    • REPLACE_TABLES
    • REPLACE_ZERO_DATE
    • SCHEMA

    Database Migration Service utilise des profils de connexion pour définir les détails de connectivité. Vous n'avez donc pas besoin de définir les informations suivantes dans votre fichier de configuration Or2Pg:

    • ORACLE_DSN
    • ORACLE_HOME
    • ORACLE_PWD
    • ORACLE_USER
    • PG_DSN
    • PG_PWD
    • PG_USER

    De plus, Database Migration Service n'utilise pas la directive de configuration WHERE pour limiter les enregistrements à migrer.

  2. Créez un ancien espace de travail de conversion et importez le fichier Ora2Pg pour convertir votre schéma.
  3. Appliquez manuellement le schéma converti à la base de données de destination.

    Une fois la configuration Ora2Pg et l'espace de travail créés, vous devez appliquer le code généré directement sur la base de données de destination.

  4. Migrez des tables sans clé primaire.

    Database Migration Service ne migre que les tables qui ont une clé primaire. Si votre base de données source inclut des tables sans clé primaire, vous devez créer manuellement des clés primaires ou des contraintes uniques dans les tables converties de la base de données de destination après avoir appliqué le schéma converti. Développez la section suivante pour en savoir plus.

    Ajouter des contraintes de clé primaire dans la base de données de destination

    Pour migrer des tables Oracle sans clé primaire, procédez comme suit:

    1. Connectez-vous à votre instance Cloud SQL de destination avec un client SQL. Vous pouvez utiliser les méthodes suivantes :
      • psql client. Vous pouvez utiliser cette méthode pour vous connecter à l'adresse IP privée de votre instance, mais vous devrez peut-être créer une machine virtuelle Compute Engine.
      • Commande gcloud sql connect. Cette commande ne fonctionne que pour les instances Cloud SQL dont une adresse IP publique est activée.
    2. Créez les contraintes de clé primaire manquantes pour vos tables. Pour en savoir plus sur les clés primaires, consultez la section Clés primaires dans la documentation PostgreSQL.

      Vous pouvez également développer les sections suivantes pour voir des exemples de commandes SQL:

      Créer des clés primaires à l'aide de colonnes existantes

      Votre table peut déjà avoir une clé primaire logique basée sur une colonne ou une combinaison de colonnes. Par exemple, des colonnes peuvent être configurées avec une contrainte ou un indice unique. Utilisez ces colonnes pour générer une nouvelle clé primaire pour les tables de votre base de données source. Exemple :

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Créer une clé primaire à l'aide de toutes les colonnes

      Si vous ne disposez pas d'une contrainte préexistante pouvant servir de clé primaire, créez des clés primaires à l'aide de toutes les colonnes de la table. Assurez-vous de ne pas dépasser la longueur maximale de la clé primaire autorisée par votre instance PostgreSQL. Exemple :

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);

      Lorsque vous créez une clé primaire composite comme celle-ci, vous devez lister explicitement tous les noms de colonnes que vous souhaitez utiliser. Il n'est pas possible d'utiliser une instruction pour récupérer tous les noms de colonnes à cette fin.

      Créer une contrainte unique avec la pseudocolonne ROWID

      Les bases de données Oracle utilisent la pseudocolonne ROWID pour stocker l'emplacement de chaque ligne dans un tableau. Pour migrer des tables Oracle sans clé primaire, vous pouvez ajouter une colonne ROWID dans la base de données PostgreSQL de destination. Database Migration Service renseigne la colonne avec les valeurs numériques correspondantes de la pseudocolonne ROWID Oracle source.

      Pour ajouter la colonne et la définir comme clé primaire, exécutez la commande suivante:

      ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
      CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
      ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
      ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);

Étape suivante

Une fois le workflow de conversion effectué avec l'ancien espace de travail, vous pouvez procéder aux procédures de migration standards. Consultez la section Créer une tâche de migration.