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 interactif | Ancien 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. |
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:
É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.- Créez un ancien espace de travail de conversion et importez le fichier Ora2Pg pour convertir votre schéma.
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.
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:
- 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.
-
- 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 colonneROWID
dans la base de données PostgreSQL de destination. Database Migration Service renseigne la colonne avec les valeurs numériques correspondantes de la pseudocolonneROWID
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);
- Connectez-vous à votre instance Cloud SQL de destination avec un client SQL. Vous pouvez utiliser les méthodes suivantes :
É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.