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 cluster de destination AlloyDB 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 sans risque à votre cluster de destination. | Vous ne pouvez pas tester votre brouillon de schéma et de code sans affecter le cluster 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 utilise la configuration suivante 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 convertissez le 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 clés primaires ou des contraintes uniques dans la base de données de destination
Pour migrer des tables Oracle sans clé primaire, procédez comme suit:
-
Connectez-vous à votre cluster AlloyDB pour PostgreSQL avec le client
psql
. - 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 cluster 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 cluster AlloyDB pour PostgreSQL avec le client
É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.