Ce document explique comment utiliser différents espaces de travail de conversion dans Database Migration Service.
Utiliser des espaces de travail de conversion avec l'éditeur intégré
Un espace de travail de conversion vous permet de convertir le schéma et les objets de votre base de données source dans un format compatible avec votre base de données de destination. Cet espace de travail vous permet d'examiner, de modifier et d'appliquer la structure de conversion globale, mais il ne modifie aucune donnée de la base de données source.
Convertir le schéma et le code source
Lorsque vous configurez un espace de travail, Database Migration Service effectue la récupération initiale du schéma de la base de données source et des objets de code, puis vous sélectionnez ceux que vous souhaitez convertir (vous pouvez ajouter d'autres objets ultérieurement). Ces objets s'affichent désormais dans l'onglet Oracle. Le panneau Brouillon AlloyDB pour PostgreSQL affiche le schéma et le code PostgreSQL générés par Database Migration Service.
À ce stade, Database Migration Service affiche les objets post-conversion attendus, et non les objets réels sur l'instance de destination.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Dans la liste des espaces de travail de conversion disponibles, sélectionnez celui avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Facultatif: importez un fichier de configuration Ora2Pg pour fournir des mappages supplémentaires pour le code SQL généré:
Cliquez sur Modifier la configuration > Personnaliser la mise en correspondance à l'aide d'un fichier de configuration.
Dans le champ Fichier de configuration Ora2Pg, cliquez sur Parcourir et utilisez le sélecteur de fichiers système pour sélectionner votre fichier de configuration.
Cliquez sur Ajouter un fichier > Générer.
Facultatif: Si vous disposez déjà d'un schéma et d'un code convertis, mais que vous souhaitez ajuster manuellement le code SQL généré avant de relancer la conversion, procédez comme suit:
Dans le panneau Oracle, sélectionnez l'objet pour lequel vous souhaitez ajuster le code SQL généré.
Accédez à l'onglet SQL et inspectez les instructions.
Ajustez les scripts si nécessaire pour votre scénario, puis cliquez sur Enregistrer.
Une fois tous les ajustements effectués, cliquez sur Convertir la source.
Dans la boîte de dialogue de confirmation, cliquez sur Convertir.
Supprimer des objets du schéma source
Supprimez des objets du schéma source pour les exclure de la conversion. Vous pourrez ajouter des objets supprimés ultérieurement, si nécessaire.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Dans la liste des espaces de travail de conversion disponibles, sélectionnez celui avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Dans l'onglet Oracle, à côté de l'objet que vous souhaitez supprimer, sélectionnez > Supprimer.
PlusDans la boîte de dialogue de confirmation Supprimer l'objet, cliquez sur Supprimer.
Convertissez à nouveau la source pour refléter les modifications dans l'onglet Brouillon AlloyDB pour PostgreSQL.
Ajouter des objets au schéma source
Vous pouvez ajouter des objets précédemment supprimés du schéma source pour les ajouter à la conversion.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Dans la liste des espaces de travail de conversion disponibles, sélectionnez celui avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Dans l'onglet Oracle, cliquez sur
Ajouter des objets.Dans la section Ajouter des objets, utilisez la liste source pour sélectionner toutes les entités que vous souhaitez ajouter au schéma source.
Vous pouvez utiliser le champ Filtrer pour réduire le nombre d'objets affichés. Consultez Filtrer les objets dans la vue du schéma source.
Cliquez sur Ajouter des objets.
Convertissez à nouveau la source pour refléter les modifications dans l'onglet Brouillon AlloyDB pour PostgreSQL.
Extraire l'instantané du schéma et du code source
Vous pouvez extraire le schéma et le code de votre base de données source dans l'espace de travail de conversion à tout moment. Extraire la source vous permet d'ajouter de nouveaux objets ou de modifier des objets existants dans la conversion.
L'extraction du schéma et du code de la base de données mis à jour ne réinitialise pas les mappages supplémentaires qui existent dans l'espace de travail de conversion à partir des fichiers de configuration Ora2Pg, sauf si vous choisissez explicitement de supprimer les mappages personnalisés.
De plus, l'extraction de la source ne remplace pas les modifications SQL apportées à vos objets de code. Vous pouvez réinitialiser ces modifications directement au niveau de l'objet.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Cliquez sur Modifier la configuration > Extraire à nouveau l'instantané du schéma source.
Dans la boîte de dialogue:
- (Facultatif) Sélectionnez Réinitialiser le mappage personnalisé pour supprimer les mappages personnalisés existants et les modifications LDD.
- Cliquez sur Extraire l'instantané du schéma.
Database Migration Service extrait le nouvel instantané de votre base de données source. Une fois l'opération terminée, convertissez à nouveau la source.
Examiner les résultats de la conversion
Une fois la conversion de la source effectuée, vous pouvez consulter les résultats de la conversion et les problèmes potentiels pour chaque objet converti dans la zone de l'éditeur de l'espace de travail. Vous pouvez également utiliser Google Cloud CLI pour enregistrer tous les résultats et les problèmes de manière groupée dans un fichier texte.
Console
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Cliquez sur le nom à afficher de l'espace de travail de conversion avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Sélectionnez l'onglet Oracle, puis recherchez l'objet pour lequel vous souhaitez examiner les résultats de conversion dans le tableau sous forme d'arborescence.
Sélectionnez l'objet. Utilisez les onglets SQL et Problèmes de conversion pour examiner la conversion.
gcloud
Avec Google Cloud CLI, vous pouvez imprimer tous les résultats ou problèmes de conversion dans le terminal. Redirigez la sortie vers un fichier pour faciliter l'examen groupé des objets.
Obtenir une liste des résultats de conversion
Gcloud CLI affiche les résultats de conversion dans le terminal sous la forme d'instructions de langage de définition de données (LDD). Pour enregistrer les résultats de conversion dans un fichier, exécutez la commande suivante:
gcloud database-migration conversion-workspaces describe-ddls \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
Remplacez :
CONVERSION_WORKSPACE_ID
par l'identifiant de l'espace de travail de conversion. Pour savoir comment récupérer les identifiants d'espace de travail de conversion, consultez Afficher les détails de l'espace de travail de conversion.REGION_ID
par le nom de la région dans laquelle se trouve l'espace de travail de conversion.OUTPUT_FILE_PATH
par le chemin d'accès au fichier texte dans lequel vous souhaitez enregistrer la sortie.Exemple :
gcloud database-migration conversion-workspaces describe-issues \ my-conversion-workspace \ --region=us-central1 \ > ./my-conversion-issues.txt
Résultat :
Les résultats de la conversion de votre schéma sont enregistrés au format texte, où la première ligne indique
DDLs
et les lignes suivantes sont occupées par des instructions SQL:DDLs CREATE SCHEMA IF NOT EXISTS "SCHEMA1"; ALTER TABLE "SCHEMA1"."EMPLOYEES" ADD CONSTRAINT PK_ID PRIMARY KEY ("ID"); CREATE OR REPLACE FUNCTION mockschema.func_test_datatype(str1 VARCHAR(65000)) RETURNS DECIMAL LANGUAGE plpgsql AS $$ DECLARE str2 VARCHAR(100); BEGIN SELECT employees.first_name INTO STRICT STR2 FROM mockschema.employees WHERE employees.employee_id = CAST(FUNC_TEST_DATATYPE.str1 as DECIMAL) ; RAISE NOTICE '%', concat('Input : ', FUNC_TEST_DATATYPE.str1, ' Output : ', str2); RETURN 0; END; $$; CREATE OR REPLACE PROCEDURE greetings AS BEGIN dbms_output.put_line('Hello World!'); END; CREATE SYNONYM TABLE "SCHEMA1"."SYNONYM1" ON "SCHEMA1"."EMPLOYEES"; CREATE OR REPLACE VIEW "SCHEMA1"."VIEW1" AS SELECT * FROM JOBS;
Obtenir la liste des problèmes de conversion
Pour enregistrer les problèmes de conversion dans un fichier, exécutez la commande suivante:
gcloud database-migration conversion-workspaces describe-issues \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
Remplacez :
-
CONVERSION_WORKSPACE_ID
par l'identifiant de l'espace de travail de conversion. Pour savoir comment récupérer les identifiants d'espace de travail de conversion, consultez Afficher les détails de l'espace de travail de conversion. -
REGION_ID
par le nom de la région dans laquelle se trouve l'espace de travail de conversion. -
OUTPUT_FILE_PATH
par le chemin d'accès au fichier texte dans lequel vous souhaitez enregistrer la sortie.
Exemple :
gcloud database-migration conversion-workspaces describe-issues \
my-conversion-workspace \
--region=us-central1 \
> ./my-conversion-issues.txt
Résultat :
Tous les problèmes de conversion contenus dans votre espace de travail sont enregistrés dans un format texte, où la première ligne contient les en-têtes de colonne et chaque ligne suivante contient un problème de conversion distinct:
PARENT NAME ENTITY_TYPE ISSUE_TYPE ISSUE_SEVERITY ISSUE_CODE ISSUE_MESSAGE
SCHEMA1 EMPLOYEES TABLE DDL ERROR 500 unable to parse DDL.
SCHEMA1 EMPLOYEES TABLE CONVERT WARNING 206 no conversion done.
SCHEMA1 STORED_PROCEDURE1 STORED_PROCEDURE DDL ERROR 500 invalid DDL.
SCHEMA1 SYNONYM1 SYNONYM CONVERT WARNING 206 synonym warning message.
Résoudre les problèmes de conversion
Il est possible que Database Migration Service ne puisse pas convertir automatiquement l'intégralité de votre source.
Pour la plupart des objets Oracle, vous pouvez utiliser l'éditeur de conversion directement dans Database Migration Service pour ajuster le code SQL généré. Pour d'autres, vous devrez peut-être modifier l'objet directement dans votre base de données source, puis extraire à nouveau l'instantané source.
Pour obtenir la liste complète des objets que Database Migration Service permet de modifier directement dans l'espace de travail de conversion, consultez la section Objets Oracle modifiables.
Pour résoudre les problèmes de conversion rencontrés avec des objets compatibles avec l'édition en direct:
Examinez les résultats de la conversion et identifiez les problèmes potentiels.
Vous pouvez utiliser la console Google Cloud pour examiner des objets individuels ou gcloud CLI pour examiner tous les objets de manière groupée.
Dans l'onglet Brouillon AlloyDB pour PostgreSQL, utilisez l'éditeur SQL pour mettre à jour le code généré.
Testez l'application pour vérifier que Database Migration Service peut appliquer correctement votre code à la base de données de destination.
Pour résoudre les problèmes de conversion rencontrés avec des objets non compatibles avec l'éditeur de l'espace de travail, procédez comme suit:
Mettez à jour votre source:
- Mettez à jour le schéma et le code directement dans votre base de données source.
- Importez les sources mises à jour dans Database Migration Service.
- Convertissez à nouveau les sources et vérifiez si les problèmes persistent.
Fournissez des mappages supplémentaires à l'aide de l'outil de configuration Ora2Pg:
- Configurez votre Ora2Pg et créez un fichier de mappage pour l'objet défectueux.
- Ajoutez le fichier de configuration à l'espace de travail. Consultez Modifier les espaces de travail de conversion.
Essayez de supprimer l'objet de l'onglet "Sources", puis de convertir à nouveau le schéma.
Modifiez le code directement sur l'instance de destination. Assurez-vous de ne pas mettre à jour d'objets susceptibles d'affecter vos mises en correspondance.
Tester l'application à votre destination
Avant d'appliquer le schéma à la base de données de destination, vous pouvez d'abord effectuer une application de test qui n'a pas d'incidence sur votre instance Cloud SQL de destination. Tester l'application du schéma peut vous aider à rechercher de manière proactive les problèmes potentiels.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Cliquez sur le nom à afficher de l'espace de travail de conversion avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Cliquez sur Appliquer à la destination > Tester (recommandé).
L'assistant permettant d'appliquer le schéma à la base de données de destination s'affiche.
Dans la section Définir la destination, sélectionnez le profil de connexion qui pointe vers votre base de données de destination.
Cliquez sur Définir et continuer.
Dans la section Sélectionner des objets et tester l'application, sélectionnez les schémas des entités de base de données que vous souhaitez tester pour votre base de données de destination.
Vous pouvez utiliser le champ Filtrer pour réduire le nombre d'objets affichés. Consultez Filtrer les objets dans la vue du schéma source.
Cliquez sur Tester l'application.
Vous pouvez consulter l'état de l'application dans l'onglet Brouillon AlloyDB pour PostgreSQL.
Appliquer le schéma à la destination
Lorsque le schéma que vous souhaitez utiliser dans la base de données de destination est converti en fonction de vos exigences et de vos mappages, vous pouvez appliquer les résultats à la base de données de destination.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Cliquez sur le nom à afficher de l'espace de travail de conversion avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Cliquez sur Appliquer à la destination > Appliquer.
L'assistant d'application du schéma à la base de données de destination s'affiche.
Dans la section Définir la destination, sélectionnez le profil de connexion qui pointe vers votre base de données de destination.
Cliquez sur Définir et continuer.
Dans la section Examiner les objets et appliquer la conversion à la destination, sélectionnez les schémas des entités de base de données que vous souhaitez créer dans votre base de données de destination.
Vous pouvez utiliser le champ Filtrer pour réduire le nombre d'objets affichés. Consultez Filtrer les objets dans la vue du schéma source.
Cliquez sur Appliquer à la destination.
Vous pouvez consulter l'état de l'application dans l'onglet Brouillon AlloyDB pour PostgreSQL.
Créer un job de migration à partir de l'éditeur de conversion
Vous pouvez créer un job de migration qui utilise votre espace de travail de conversion directement depuis l'interface de l'éditeur de conversion.
Dans la console Google Cloud , accédez à Espaces de travail de conversion.
Cliquez sur le nom à afficher de l'espace de travail de conversion avec lequel vous souhaitez travailler.
L'éditeur de l'espace de travail de conversion s'ouvre.
Cliquez sur Créer un job de migration.
Suivez les étapes standards de la tâche de migration, comme indiqué dans la section Créer une tâche de migration.
Filtrer les objets dans la vue du schéma source
Les schémas de base de données contiennent souvent des milliers d'objets, ce qui complique la partition de la conversion. Lorsque vous ajoutez des objets à partir de l'instantané du schéma à la vue du schéma source, vous pouvez utiliser des filtres pour limiter le nombre d'objets affichés. Les filtres vous permettent d'ajouter des objets de manière plus précise et de vous concentrer sur la conversion d'un sous-ensemble sélectionné de votre schéma.
Utilisez la vue filtrée lorsque vous ajoutez des objets à la vue du schéma source:
Dans le champ Filtre, utilisez l'une des méthodes de filtrage suivantes:
Dans la liste Propriétés, sélectionnez l'une des options suggérées automatiquement suivantes:
- Nom de l'objet pour filtrer les objets par nom (par exemple,
ADMIN
). - Type d'objet pour filtrer les objets par plusieurs types, tels que Fonction ou Table.
- État de la conversion pour filtrer les objets en fonction de l'état de la conversion (par exemple, Action requise ou Aucun problème).
Vous pouvez combiner des propriétés de filtre avec des opérateurs logiques.
- Nom de l'objet pour filtrer les objets par nom (par exemple,
Saisissez votre requête. Exemple :
type=table
.Pour en savoir plus sur la syntaxe de filtrage, consultez la section Syntaxe de filtrage compatible.
Sélectionnez les objets que vous souhaitez ajouter à la vue du schéma source.
Syntaxe de filtrage acceptée
Vous pouvez filtrer les objets par nom à l'aide d'une recherche de texte libre de base ou d'une propriété type
dédiée.
Les deux approches sont compatibles avec les spécifications formelles de filtrage des API Google, ce qui signifie que vous pouvez utiliser des littéraux avec des caractères génériques, ainsi que des opérateurs logiques et de comparaison.
- Filtrage du texte libre
-
Utilisez du texte libre pour filtrer les objets par nom. Cette approche est sensible à la casse et accepte les caractères génériques.
Exemple :
La requête
*JOB*
utilise des caractères génériques pour rechercher des entités contenant la sous-chaîneJOB
. La vue filtrée renvoie certaines tables et une procédure stockée: - Filtrer à l'aide de la propriété
type
-
Vous pouvez filtrer les objets par tous les types standards compatibles avec Database Migration Service.
La propriété
type
accepte les littéraux suivants avec les opérateurs d'égalité (=
) et d'inégalité (!=
) :database
,schema
,table
,column
,index
,sequence
,stored_procedure
,function
,view
,synonym
,materialized_view
,udt
,constraint
,database_package
,trigger
etevent_trigger
.Exemple :
Le filtre
type=table
ne renvoie que les tables présentes dans votre schéma:
Combiner des conditions de filtrage
Vous pouvez spécifier plusieurs conditions en les combinant à l'aide d'opérateurs logiques.
Par exemple, pour rechercher uniquement les tables dont les noms contiennent les sous-chaînes JOB
ou EMPLOYEE
, utilisez la requête suivante:
type=table AND (*JOB* OR *EMPLOYEE*)
Le filtre affiche alors toutes les tables correspondantes:
Utiliser les anciens espaces de travail de conversion
Les anciens espaces de travail de conversion sont des espaces de travail en lecture seule qui servent à associer les fichiers de configuration Ora2Pg à un profil de connexion.
Convertir le schéma source
Pour les anciens espaces de travail, vous convertissez le schéma à l'aide de l'outil de migration Ora2Pg directement sur votre base de données source. La conversion de schéma est gérée en dehors de Database Migration Service. Consultez Préparer la conversion de schéma.
Database Migration Service exécute la conversion du schéma source lorsque vous créez l'ancien espace de travail de conversion. Si vous souhaitez mettre à jour vos mises en correspondance, recréez l'ancien espace de travail avec le fichier de configuration mis à jour.
Appliquer à la destination
Après avoir créé le fichier de configuration Ora2Pg et l'espace de travail, vous devez appliquer le code généré directement sur la base de données de destination. Si vous devez modifier la conversion, ajustez le fichier de configuration Ora2Pg et recréez l'ancien espace de travail avec de nouveaux paramètres.