Comment résoudre les problèmes liés à une tâche AWS DMS qui ne migre pas des objets ?
Je souhaite résoudre une tâche AWS Database Migration Service (AWS DMS) qui ne migre pas tous les objets du schéma de base de données.
Brève description
Si la tâche AWS DMS ne migre pas un objet, il est alors possible que la tâche AWS DMS ne migre pas ce type d'objet. Par exemple, AWS DMS ne crée pas d'index secondaires, de données par défaut et de contraintes de clé non primaire.
Pour migrer les objets restants qui ne sont pas migrés par AWS DMS, utilisez une migration homogène ou hétérogène.
Si vous effectuez une migration entre deux bases de données du même type de moteur, utilisez alors une migration homogène. Utilisez les outils natifs du moteur pour exporter et importer le schéma sans aucune donnée.
Si vous effectuez une migration entre deux bases de données utilisant des types de moteur différents, utilisez alors une migration hétérogène. Utilisez l'outil de conversion des schémas AWS (AWS SCT) ou AWS DMS Schema Conversion pour générer un schéma cible complet.
Résolution
Vérifier si une tâche AWS DMS migre un objet
Lorsqu'une tâche AWS DMS crée la table sur la cible, elle migre également la contrainte de clé primaire et l'index. S'il n'existe aucune clé primaire, la tâche crée alors la clé unique si elle existe dans la table source.
Si des contraintes NOT NULL existent sur la table source, la tâche AWS DMS crée alors les contraintes NOT NULL sur la cible. Cela n'inclut pas les colonnes d'objets binaires de grande taille (LOB). Si AWS DMS crée les tables cibles, il définit alors les colonnes LOB comme nullables par défaut. Pour plus d'informations, consultez Migration des LOB.
Si la table source comporte une colonne d'incrémentation automatique, la tâche ne migre alors pas la propriété d'incrémentation automatique. Les tâches AWS DMS ne répliquent pas d'autres propriétés spécifiques à une table telles que les contraintes de clé étrangère, les vérifications, les données par défaut et les commentaires.
Les tâches AWS DMS ne migrent les objets de base de données tels que les index secondaires, les vues, les procédures, les fonctions, les packages et les déclencheurs. Migrez ces objets séparément.
Migrer des objets avec les outils natifs du moteur (migration homogène)
Pour une migration de base de données homogène, utilisez les outils natifs pour exporter les métadonnées du schéma sans les données. AWS DMS importe ce vidage uniquement des métadonnées dans la base de données cible pour créer les objets de base de données sans aucune donnée. Exécutez ensuite la tâche AWS DMS avec le paramètre de tâche TargetTablePrepMode défini sur TRUNCATE_BEFORE_LOAD. Cela signifie que la tâche ne supprime pas et ne recrée pas les tables sur la cible.
Oracle
Pour migrer des objets avec des bases de données Oracle, utilisez l'utilitaire Export Data Pump (expdp) pour vider uniquement les métadonnées. Lorsque vous utilisez le paramètre CONTENT=METADATA_ONLY, l'utilitaire Data Pump décharge uniquement les définitions d'objets de base de données. L'utilitaire ne décharge aucune donnée de ligne de table.
Procédez comme suit :
-
Pour effectuer un vidage de métadonnées uniquement, créez un fichier de paramètres similaire à l'exemple suivant pour exporter le schéma :
cat export_sample_user.par userid=DMS_USER/password@SOURCE_DB directory=DATA_PUMP_DIR logfile=export_dms_sample_user_metadata.log dumpfile=export_dms_sample_user_metadata_%U.dmp schemas=DMS_SAMPLE CONTENT=METADATA_ONLY -
Exécutez l'exportation, à l'aide de l'utilitaire expdp :
expdp parfile=export_sample_user.par -
Une fois que l'utilitaire a créé les fichiers de vidage dans le DATA_PUMP_DIR de la base de données source, copiez-les dans le DATA_PUMP_DIR de la base de données Oracle cible.
-
Pour créer les objets dans la base de données Oracle cible, exécutez l'utilitaire Import Data Pump (impdp) pour importer les métadonnées :
impdp admin@TARGET_DB directory=DATA_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_user_metadata_%U.dmpRemarque : Si vous utilisez des répertoires et des fichiers avec une instance Amazon Relational Database Service (Amazon RDS) pour Oracle, consultez Exécution de tâches diverses pour les instances de bases de données Oracle.
SQL Server
Pour migrer des objets qui utilisent SQL Server, procédez comme suit :
- Utilisez SQL Server Management Studio (SSMS) pour vous connecter à la base de données source.
- Cliquez avec le bouton droit de la souris sur la base de données pour laquelle vous souhaitez générer des scripts, choisissez Tâches, puis Générer des scripts.
- Sous Sélectionner des objets de base de données spécifiques, sélectionnez les tables, les vues et tout autre objet que vous souhaitez utiliser, puis choisissez Suivant.
- Choisissez le bouton Avancé, puis sélectionnez les types de données que vous souhaitez scripter.
- Si vous souhaitez obtenir le code SQL pour les index secondaires, définissez Index de script sur true.
- Choisissez la manière dont vous souhaitez enregistrer les scripts. Par exemple, créez un fichier SQL sur disque, copiez le code SQL dans une nouvelle fenêtre de requête ou copiez les scripts dans le presse-papiers.
- Choisissez Suivant.
- Choisissez de nouveau Suivant, puis Terminer.
- Pour créer des objets dans la base de données cible, exécutez le script SQL généré par SSMS.
MySQL
Pour migrer des objets qui utilisent MySQL, utilisez l'utilitaire mysqldump pour générer un fichier de vidage contenant uniquement les métadonnées du schéma. L'option --no-data indique à mysqldump de ne pas vider les données des tables, de sorte que les résultats du fichier de vidage contiennent uniquement des instructions pour créer les tables. Pour un vidage uniquement des définitions, ajoutez les options --routines et --events afin d'inclure également les définitions de routines et d'événements stockées.
Exemple :
mysqldump --no-data --routines --events -h SOURCE_DB_SERVER_NAME -u DMS_USER -p SOURCE_DB > path_to_dump_file.sql
Pour créer les objets sur la base de données cible, exécutez le script SQL généré par MySQL après que vous exécutez la commande précédente.
PostgreSQL
Pour migrer des objets avec des bases de données PostgreSQL, utilisez l'utilitaire pg_dump pour générer un fichier de vidage contenant uniquement les métadonnées du schéma. L'option -s ou --schema-only vide les définitions d'objets (schéma), et non les données.
Exemple :
pg_dump --host SOURCE_DB_SERVER_NAME --port 5432 --username DMS_USER --schema-only --verbose SOURCE_DB > path_to_dump_file.sql
Pour créer les objets sur la base de données cible, exécutez le script SQL généré par pg_dump après avoir exécuté la commande précédente.
Migrer des objets à l'aide de la conversion de schéma AWS SCT ou DMS (migration hétérogène)
AWS SCT
Pour convertir et migrer les schémas de base de données existants d'un moteur de base de données à un autre, utilisez AWS SCT. Vous pouvez également utiliser AWS SCT pour copier un schéma de base de données sur site existant vers une instance de base de données Amazon RDS qui exécute le même moteur.
Pour convertir le schéma de la base de données, procédez comme suit :
- Créez des règles de migration dans AWS SCT.
- Convertissez le schéma.
- Enregistrez et appliquez le schéma converti.
Conversion de schéma DMS
Pour migrer des objets à l'aide de la conversion de schéma DMS, consultez Utilisation de la conversion de schéma DMS.
Informations connexes
- Langue
- Français

Contenus pertinents
demandé il y a 4 ans
AWS OFFICIELA mis à jour il y a 2 ans
AWS OFFICIELA mis à jour il y a 3 ans