Actions de l'espace de travail de conversion

Les espaces de travail de conversion vous permettent de résoudre les problèmes de conversion, de modifier vos objets avec l'éditeur interactif et d'appliquer le schéma converti à votre base de données de destination. Cette page présente toutes les actions que vous pouvez effectuer avec les espaces de travail de conversion.

Supprimer des objets du schéma source

Supprimez des objets du schéma source pour les exclure de la conversion. Vous pourrez ensuite ajouter des objets supprimés si nécessaire.

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion, puis sélectionnez votre espace de travail.

    Accédez aux espaces de travail de conversion.

  2. Dans l'onglet Oracle, à côté de l'objet que vous souhaitez supprimer, sélectionnez Plus > Supprimer.
  3. Dans la boîte de dialogue de confirmation Supprimer l'objet, cliquez sur Supprimer.
  4. Actualisez votre schéma converti. Cliquez sur Convertir la source. Database Migration Service analyse désormais vos modifications et génère le schéma PostgreSQL mis à jour.

    Vous pouvez inspecter le schéma converti dans l'onglet Brouillon Cloud SQL 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.

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion, puis sélectionnez votre espace de travail.

    Accédez aux espaces de travail de conversion.

  2. Dans l'onglet Oracle, cliquez sur Ajouter des objets.
  3. 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 bouton Filtrer les objets pour réduire le nombre d'objets affichés. Consultez Filtrer des objets dans la vue du schéma source.

  4. Cliquez sur Ajouter des objets.
  5. Actualisez votre schéma converti. Cliquez sur Convertir la source. Database Migration Service analyse désormais vos modifications et génère le schéma PostgreSQL mis à jour.

    Vous pouvez inspecter le schéma converti dans l'onglet Brouillon Cloud SQL 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 personnalisés existants dans l'espace de travail de conversion, sauf si vous choisissez explicitement de les supprimer.

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.

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion, puis sélectionnez votre espace de travail.

    Accédez aux espaces de travail de conversion.

  2. Cliquez sur Modifier la configuration > Extraire à nouveau l'instantané du schéma source.
  3. Dans la boîte de dialogue :
    1. (Facultatif) Sélectionnez Réinitialiser le mappage personnalisé pour supprimer les mappages personnalisés existants et les modifications LDD.
    2. Cliquez sur Extraire l'instantané du schéma.

      Database Migration Service extrait le nouvel instantané de votre base de données source.

  4. Actualisez votre schéma converti. Cliquez sur Convertir la source. Database Migration Service analyse désormais vos modifications et génère le schéma PostgreSQL mis à jour.

    Vous pouvez inspecter le schéma converti dans l'onglet Brouillon Cloud SQL pour PostgreSQL.

Utiliser des mises en correspondance de conversions personnalisées

Vous pouvez personnaliser la logique de conversion à l'aide d'un fichier de mappage des conversions. Le fichier de mappage de conversion est un fichier texte contenant des instructions précises (appelées directives de conversion) sur la façon dont vos objets Oracle doivent être convertis en objets PostgreSQL.

Écrire un fichier de mappage personnalisé

Pour écrire vos fichiers de mappage personnalisés:

  1. Consultez la liste des directives de conversion compatibles.

  2. Utilisez l' exemple de fichier de configuration comme référence.

  3. Écrivez vos mises en correspondance de conversions personnalisées dans un éditeur de texte, puis importez-les dans l'espace de travail de conversion.

Ajouter des fichiers de mappage personnalisés

Pour ajouter un fichier de mappage des conversions personnalisé à votre espace de travail, procédez comme suit:

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion, puis sélectionnez votre espace de travail.

    Accédez aux espaces de travail de conversion.

  2. Sur la page de l'éditeur de conversions, sélectionnez Modifier la configuration > Personnaliser le mappage à l'aide d'un fichier de configuration.
  3. Dans le champ Fichier de configuration, cliquez sur Parcourir et utilisez le sélecteur de fichiers système pour sélectionner votre fichier de configuration.
  4. Cliquez sur Ajouter un fichier > Créer une mise en correspondance.

Supprimer les fichiers de mappage personnalisés

Pour supprimer un fichier de mappage des conversions personnalisé de votre espace de travail, procédez comme suit:

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion, puis sélectionnez votre espace de travail.

    Accédez aux espaces de travail de conversion.

  2. Sur la page de l'éditeur de conversions, sélectionnez Modifier la configuration > Supprimer le mappage personnalisé.

Examiner les résultats de la conversion

Une fois la conversion de la source effectuée, vous pouvez examiner 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

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion.

    Accéder aux espaces de travail de conversion

  2. 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.

  3. Sélectionnez l'onglet Oracle, puis recherchez l'objet pour lequel vous souhaitez consulter les résultats de conversion dans le tableau sous forme d'arborescence.

  4. 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 examiner plus facilement les objets groupés.

Obtenir une liste des résultats de conversion

La CLI gcloud 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 page Objets Oracle modifiables.

Résolution des problèmes liés aux objets compatibles avec l'éditeur intégré

Pour résoudre les problèmes rencontrés avec des objets non compatibles avec l'éditeur de l'espace de travail, effectuez l'une des opérations suivantes:

  1. 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.

  2. Dans l'onglet Cloud SQL pour PostgreSQL, utilisez l'éditeur SQL pour mettre à jour le code généré.
  3. Testez votre schéma pour vérifier que Database Migration Service peut correctement appliquer votre code à la base de données de destination.

Résolution des problèmes liés aux objets non compatibles avec l'éditeur intégré

Pour résoudre les problèmes rencontrés avec des objets non compatibles avec l'éditeur d'espace de travail, effectuez l'une des opérations suivantes:

Mettre à jour les objets défectueux de votre source
Pour certains problèmes, vous devrez peut-être modifier l'instruction Oracle directement dans votre base de données source. Procédez comme suit :
  1. Mettez à jour le schéma et le code directement dans votre base de données source.
  2. Importez les sources mises à jour dans Database Migration Service.
  3. Convertissez à nouveau les sources et vérifiez si les problèmes persistent.
Fournir des mises en correspondance supplémentaires avec un fichier de mappage des conversions

Vous pouvez utiliser un fichier de mappage de conversion pour fournir des définitions précises de la manière dont Database Migration Service doit convertir certains objets PostgreSQL. Pour utiliser un fichier de mappage des conversions, procédez comme suit:

  1. Écrivez un fichier de mappage des conversions.
  2. Ajoutez votre fichier de configuration à l'espace de travail.
Essayez de supprimer l'objet de l'onglet "Sources".
Database Migration Service vous permet de convertir des fichiers . Pour débloquer le processus de conversion, vous pouvez décider d'examiner plus en détail l'objet défectueux ultérieurement. Supprimez l'objet de l'onglet "Sources".

Tester votre schéma dans la destination

Avant d'appliquer le schéma à la base de données de destination, vous pouvez d'abord effectuer un exécution de test pour détecter de manière proactive les problèmes potentiels. Pour effectuer le test, Database Migration Service crée une base de données temporaire. L'exécution du test n'a aucune incidence sur votre instance Cloud SQL de destination.

  1. Assurez-vous que votre utilisateur dédié à la migration dispose de l'autorisation CREATEDB. Pour en savoir plus, consultez la page Créer et configurer votre instance Cloud SQL de destination.

  2. Dans la console Google Cloud, accédez à Espaces de travail de conversion.

    Accéder aux espaces de travail de conversion

  3. 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.

  4. Cliquez sur Appliquer à la destination > Tester (recommandé).

    L'assistant d'application du schéma à la base de données de destination s'affiche.

  5. Dans la section Définir la destination, sélectionnez le profil de connexion qui pointe vers votre base de données de destination.

  6. Cliquez sur Définir et continuer.

  7. 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 bouton Filtrer les objets pour réduire le nombre d'objets affichés. Consultez Filtrer les objets dans la vue du schéma source.

  8. Cliquez sur Tester l'application.

    Vous pouvez consulter l'état de l'application dans l'onglet Cloud SQL 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. L'application du schéma dans la destination ne modifie aucune donnée de la base de données source.

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion.

    Accéder aux espaces de travail de conversion

  2. 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.

  3. Cliquez sur Appliquer à la destination > Appliquer.

    L'assistant d'application du schéma à la base de données de destination s'affiche.

  4. Dans la section Définir la destination, sélectionnez le profil de connexion qui pointe vers votre base de données de destination.

  5. Cliquez sur Définir et continuer.

  6. 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 bouton Filtrer les objets pour réduire le nombre d'objets affichés. Consultez Filtrer les objets dans la vue du schéma source.

  7. Cliquez sur Appliquer à la destination.

    Vous pouvez consulter l'état de l'application dans l'onglet Cloud SQL 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.

  1. Dans la console Google Cloud, accédez à Espaces de travail de conversion.

    Accéder aux espaces de travail de conversion

  2. 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.

  3. Cliquez sur Créer un job de migration.

  4. 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:

  1. Dans le champ Filtre, utilisez l'une des méthodes de filtrage suivantes:
  2. Dans la liste Propriétés, sélectionnez l'une des options suggérées automatiquement suivantes :
    1. Nom de l'objet pour filtrer les objets par nom (par exemple, ADMIN).
    2. Type d'objet pour filtrer les objets par plusieurs types, tels que Fonction ou Table.
    3. É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.

  3. Saisissez votre requête. Exemple : type=table.

    Pour en savoir plus sur la syntaxe de filtrage, consultez la section Syntaxe de filtrage compatible.

  4. 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.

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îne JOB. La vue filtrée renvoie certaines tables et une procédure stockée:

Capture d'écran d'exemples de résultats du filtrage des objets par nom.
Filtrer à l'aide de la propriété type

Vous pouvez filtrer les objets par type standard compatible 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 et event_trigger.

Exemple :

Le filtre type=table ne renvoie que les tables présentes dans votre schéma:

Capture d'écran d'exemples de résultats pour le filtrage d'objets par propriété de type.
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:

Capture d'écran d'exemples de résultats pour le filtrage d'objets en fonction d'une combinaison de propriétés de type et de nom.