AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur...

519
AWS Database Migration Service Guide de l'utilisateur Version de l'API API Version 2016-01-01

Transcript of AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur...

Page 1: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration ServiceGuide de l'utilisateur

Version de l'API API Version 2016-01-01

Page 2: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

AWS Database Migration Service: Guide de l'utilisateurCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Table of ContentsQu'est-ce qu'AWS Database Migration Service ? ...................................................................................... 1

Tâches de migration assurées par AWS DMS ................................................................................ 1Fonctionnement d'AWS DMS au niveau élémentaire ....................................................................... 2

Fonctionnement de AWS DMS ............................................................................................................. 4Présentation générale d'AWS DMS ............................................................................................... 4Composants ............................................................................................................................... 5Sources ................................................................................................................................... 11Cibles ...................................................................................................................................... 13Avec d'autres services AWS ....................................................................................................... 15

Prise en charge pour AWS CloudFormation .......................................................................... 15Construction d'un ARN ...................................................................................................... 15

Configuration .................................................................................................................................... 18Inscrivez-vous à AWS ............................................................................................................... 18Créer un utilisateur IAM ............................................................................................................. 18Planification de la migration pour AWS Database Migration Service ................................................... 20

Démarrez ......................................................................................................................................... 22Démarrer la migration d'une base de données .............................................................................. 22Étape 1  : Bienvenue .................................................................................................................. 23Étape 2 : création d'une instance de réplication ............................................................................. 23Étape 3 : Spécifier les points de terminaison source et cible ............................................................ 28Étape 4  : Création d'une tâche .................................................................................................... 33Surveiller votre tâche ................................................................................................................. 37

Sécurité ........................................................................................................................................... 38Protection des données ............................................................................................................. 39

Chiffrement des données ................................................................................................... 40Confidentialité du trafic inter-réseaux ................................................................................... 41

Identity and Access Management ................................................................................................ 41Public ciblé ...................................................................................................................... 41Authentification avec des identités ....................................................................................... 42Gestion de l'accès à l'aide de stratégies ............................................................................... 44Fonctionnement d'AWS Database Migration Service fonctionne avec IAM .................................. 46Exemples de stratégies basées sur l'identité ......................................................................... 50Exemples de stratégies basées sur les ressources ................................................................. 56Dépannage ...................................................................................................................... 59

Consignation et surveillance ....................................................................................................... 61Validation de la conformité ......................................................................................................... 63Résilience ................................................................................................................................ 63Sécurité de l'infrastructure .......................................................................................................... 64Autorisations IAM nécessaires .................................................................................................... 64Rôles IAM pour l'interface de ligne de commande et l'API ............................................................... 68Contrôle précis des accès .......................................................................................................... 71

Utilisation des noms de ressources pour contrôler l'accès ....................................................... 71Utilisation des balises pour contrôler l'accès .......................................................................... 73

Définition d'une clé de chiffrement ............................................................................................... 78Sécurité du réseau .................................................................................................................... 80Utilisation de SSL ..................................................................................................................... 81

Limitations sur l'utilisation de SSL avec AWS DMS ................................................................ 82Gestion de certificats ......................................................................................................... 83Activation de SSL pour un point de terminaison SQL Server, PostgreSQL ou compatible MySQL .... 83Prise en charge de SSL pour un point de terminaison Oracle ................................................... 85

Modification du mot de passe de base de données ........................................................................ 89Limites ............................................................................................................................................ 90

Limites pour AWS Database Migration Service ............................................................................... 90Instance de réplication ....................................................................................................................... 91

Version de l'API API Version 2016-01-01iii

Page 4: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Présentation détaillée des instances de réplication ......................................................................... 92Instances de réplication publiques et privées ................................................................................. 94Maintenance d'AWS DMS .......................................................................................................... 94

Fenêtre de maintenance d'AWS DMS .................................................................................. 95Versions du moteur de réplication ............................................................................................... 98

Obsolescence d'une version d'instance de réplication ............................................................. 98Mise à niveau de la version du moteur d'une instance de réplication ......................................... 98

Configuration d'un réseau pour une instance de réplication ............................................................ 101Configurations réseau pour la migration de base de données ................................................. 101Créer groupe de sous-réseaux de réplication ....................................................................... 107

Définition d'une clé de chiffrement ............................................................................................. 108Création d'une instance de réplication ........................................................................................ 109Modification d'une instance de réplication .................................................................................. 113Redémarrage d'une instance de réplication ................................................................................ 116Suppression d'une instance de réplication .................................................................................. 118Instructions DDL prises en charge ............................................................................................. 119

Points de terminaison ...................................................................................................................... 120Sources pour la migration des données ...................................................................................... 120

Utilisation d'Oracle comme source ..................................................................................... 122Utilisation de SQL Server comme source ............................................................................ 149Utilisation d'Azure SQL Database comme source ................................................................. 161Utilisation de PostgreSQL comme source ........................................................................... 162Utilisation de MySQL comme source .................................................................................. 180Utilisation de SAP ASE comme source ............................................................................... 188Utilisation de MongoDB comme source .............................................................................. 193Utilisation de Amazon S3 comme source ............................................................................ 198Utilisation d'IBM Db2 LUW comme source .......................................................................... 205

Cibles pour la migration des données ........................................................................................ 208Utilisation d'Oracle comme cible ........................................................................................ 210Utilisation de SQL Server comme cible ............................................................................... 216Utilisation de PostgreSQL comme cible .............................................................................. 220Utilisation de MySQL en tant que cible ............................................................................... 223Utilisation de Amazon Redshift comme cible ....................................................................... 228Utilisation de SAP ASE comme cible .................................................................................. 241Utilisation de Amazon S3 comme cible ............................................................................... 243Utilisation de Amazon DynamoDB comme cible ................................................................... 267Utilisation de Amazon Kinesis Data Streams comme cible ..................................................... 281Utilisation d'Apache Kafka comme cible .............................................................................. 289Utilisation de Amazon Elasticsearch Service comme cible ...................................................... 297Utilisation de Amazon DocumentDB comme cible ................................................................. 301

Création de points de terminaison source et cible ........................................................................ 315Tâches .......................................................................................................................................... 319

Création d'un rapport d'évaluation de tâche ................................................................................. 321Création d'une tâche ................................................................................................................ 323

Paramètres de tâche ....................................................................................................... 330Définition de la prise en charge LOB .................................................................................. 352Création de plusieurs tâches ............................................................................................. 353

Tâches de réplication continue .................................................................................................. 353Réplication à partir d'un point de départ CDC ...................................................................... 354Effectuer une réplication bidirectionnelle ............................................................................. 357

Modification d'une tâche ........................................................................................................... 360Rechargement de tables pendant une tâche ................................................................................ 360

AWS Management Console .............................................................................................. 361Mappage de table ................................................................................................................... 363

Spécification d'une sélection de table et de transformations par mappage de table à partir de laconsole .......................................................................................................................... 363

Version de l'API API Version 2016-01-01iv

Page 5: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Spécification d'une sélection de table et de transformations par mappage de table à l'aide deJSON ............................................................................................................................ 368Règles table-settings et opérations .................................................................................... 382Utilisation de filtres de source ........................................................................................... 402

Surveillance des tâches ................................................................................................................... 407État de la tâche ...................................................................................................................... 407État d'une table pendant des tâches .......................................................................................... 408Surveillance des tâches de réplication à l'aide d'Amazon CloudWatch ............................................. 409Métriques du service de migration des données ........................................................................... 411

métriques des instances de réplication ............................................................................... 412métriques de tâches de réplication ..................................................................................... 413

Gestion des journaux AWS DMS ............................................................................................... 414Journalisation des appels d'API AWS DMS avec AWS CloudTrail ................................................... 415

Informations AWS DMS dans CloudTrail ............................................................................. 416Présentation des entrées des fichiers journaux AWS DMS ..................................................... 416

Validation des tâches ....................................................................................................................... 420Statistiques des tâches de réplication ......................................................................................... 421Revalidation de tables pendant une tâche ................................................................................... 423

AWS Management Console .............................................................................................. 423Dépannage ............................................................................................................................. 423Limites ................................................................................................................................... 424

Balisage des ressources .................................................................................................................. 426API ....................................................................................................................................... 427

Utilisation d'événements et notifications .............................................................................................. 429Catégories d'événements et messages d'événements AWS DMS ................................................... 430Abonnement à la notification d'événement AWS DMS ................................................................... 432

AWS Management Console .............................................................................................. 433API AWS DMS ............................................................................................................... 433

Migration de magasins de données volumineux avec Snowball Edge ...................................................... 434Présentation du processus ....................................................................................................... 435Prérequis ............................................................................................................................... 436Liste de contrôle de migration ................................................................................................... 436Procédures détaillées ............................................................................................................... 438

Étape 1 : Créer une tâche Snowball Edge ........................................................................... 438Étape 2: Télécharger et installer l'AWS Schema Conversion Tool (AWS SCT) ........................... 438Étape 3 : Déverrouiller l'appareil Snowball Edge ................................................................... 438Étape 4 : Configurer l'hôte de l'agent DMS avec les pilotes ODBC .......................................... 440Étape 5 : Installer l'agent DMS .......................................................................................... 442Étape 6 : Créer un projet AWS SCT ................................................................................... 444Étape 7 : Configurer AWS SCT pour utiliser l'appareil Snowball Edge ...................................... 445Étape 8 : Enregistrer l'agent DMS dans AWS SCT ............................................................... 448Étape 9 : Créer une tâche locale et DMS ............................................................................ 449Étape 10 : Exécuter et surveiller la tâche dans SCT .............................................................. 453

Limites ................................................................................................................................... 455Résolution des problèmes ................................................................................................................ 456

Lenteur d'exécution des tâches de migration ............................................................................... 456La barre d’état des tâches ne bouge pas .................................................................................... 457Clés étrangères et index secondaires manquants ......................................................................... 457Problèmes de connexion Amazon RDS ...................................................................................... 457

Message d'erreur : Incorrect thread connection string: incorrect thread value 0 ......................... 458Problèmes de mise en réseau .................................................................................................. 458Capture des données modifiées (CDC) bloquée après le chargement complet ................................... 458Erreurs de violation de clé primaire lorsque vous redémarrez une tâche ........................................... 459Échec de chargement initial du schéma ...................................................................................... 459Échec des tâches avec une erreur inconnue ............................................................................... 459Le redémarrage d'une tâche charge les tables dès le début ........................................................... 459Nombre de tables par tâche ..................................................................................................... 459

Version de l'API API Version 2016-01-01v

Page 6: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Les tâches échouent lorsque la clé primaire est créée sur la colonne LOB ....................................... 459Dupliquer les enregistrements sur la table cible sans clé primaire ................................................... 460Points de terminaison sources dans la plage IP réservée .............................................................. 460Résolution des problèmes spécifiques d'Oracle ............................................................................ 460

Extraire les données à partir de vues ................................................................................. 461Migration des LOB à partir d'Oracle 12c ............................................................................. 461Basculement entre Oracle Binary Reader et Oracle LogMiner ................................................. 461Erreur : CDC Oracle arrêtée 122301 nombre maximal de nouvelles tentatives de CDC Oracledépassé. ........................................................................................................................ 461Ajout automatique d'une journalisation supplémentaire à un point de terminaison source Oracle .... 462Modifications de LOB non capturées .................................................................................. 462Erreur : ORA-12899 : valeur trop grande pour la colonne <nom de la colonne> .......................... 462Mauvaise interprétation du type de données NUMBER .......................................................... 463

Résolution des problèmes spécifiques de MySQL ........................................................................ 463Échec de la tâche CDC pour le point de terminaison d'instance de base de donnéesAmazon RDS car la journalisation binaire est désactivée ....................................................... 463Les connexions à une instance MySQL cible sont déconnectées durant une tâche ..................... 463Ajout de la validation automatique à un point de terminaison compatible MySQL ........................ 464Désactiver les clés étrangères sur un point de terminaison cible compatible MySQL ................... 464Caractères remplacés par un point d'interrogation ................................................................ 465Entrées du journal « événement incorrect » ......................................................................... 465Capture de données modifiées avec MySQL 5.5 .................................................................. 465Augmentation de la durée de conservation des journaux binaires pour les instances de base dedonnées Amazon RDS ..................................................................................................... 465Message du journal : quelques modifications de la base de données source n'ont eu aucunimpact lorsqu'elles ont été appliquées à la base de données cible. .......................................... 466Erreur  : Identificateur trop long .......................................................................................... 466Erreur : un jeu de caractères non pris en charge entraîne l'échec de la conversion des donnéesde champ ....................................................................................................................... 466Erreur : page de codes 1252 à UTF8 [120112] Échec de la conversion des données d'un champ .. 467

Résolution des problèmes spécifiques de PostgreSQL .................................................................. 467Types de données JSON tronqués .................................................................................... 467Les colonnes d'un type de données défini par l'utilisateur ne sont pas migrées correctement ........ 468Erreur : Aucun schéma sélectionné dans lequel effectuer la création ....................................... 468Les suppressions et les mises à jour dans une table ne sont pas répliquées à l'aide de la capturede données modifiées ...................................................................................................... 468Les instructions de troncature ne sont pas propagées ........................................................... 469Empêcher PostgreSQL de capturer la DDL ......................................................................... 469Sélectionner le schéma où sont créés les objets de base de données pour la capture de la DDL ... 469Tables Oracle manquantes après la migration vers PostgreSQL ............................................. 469Une tâche utilisant une vue comme source ne contient aucune ligne copiée ............................. 469

Résolution de problèmes spécifiques de Microsoft SQL Server ....................................................... 469Autorisations spéciales pour que le compte d'utilisateur AWS DMS utilise la CDC ...................... 470Erreurs de capture des modifications pour une base de données SQL Server ........................... 470Colonnes d'identité manquantes ........................................................................................ 470Erreur : SQL Server ne prend pas en charge les publications ................................................. 470Les modifications n'apparaissent pas dans la cible ............................................................... 471Table non uniforme mappée entre les partitions ................................................................... 471

Dépannage de problèmes spécifiques d'Amazon Redshift .............................................................. 471Chargement dans un cluster Amazon Redshift dans une région autre que celle de l'instance deréplication AWS DMS ...................................................................................................... 472Erreur : la relation « awsdms_apply_exceptions » existe déjà ................................................. 472Erreurs avec les tables dont le nom commence par « awsdms_changes » ................................ 472Voir des tables de cluster avec des noms comme dms.awsdms_changes000000000XXXX .......... 472Autorisations requises pour utiliser Amazon Redshift ............................................................ 472

Résolution des problèmes spécifiques de Amazon Aurora MySQL .................................................. 473

Version de l'API API Version 2016-01-01vi

Page 7: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Erreur : Champs CHARACTER SET UTF8 se terminant par une « , » entourée par des lignes« " » se terminant par «  \n » ............................................................................................. 473

Bonnes pratiques ............................................................................................................................ 474Amélioration des performances ................................................................................................. 474Dimensionnement d'une instance de réplication ........................................................................... 476Réduction de la charge sur votre base de données source ............................................................ 477Utilisation du journal des tâches ................................................................................................ 478Conversion du schéma ............................................................................................................ 478Migration des objets binaires volumineux (Large Binary Object, LOB) ............................................. 478

Utilisation du mode LOB limité ......................................................................................... 478Réplication continue ................................................................................................................ 479Modification de l'utilisateur et du schéma pour une cible Oracle ..................................................... 480Modification des espaces de table de table et d'index pour une cible Oracle ..................................... 480Amélioration des performances en cas de migration de tables volumineuses .................................... 481Utilisation de votre propre serveur de noms sur site .................................................................... 481

Référence ...................................................................................................................................... 485Type de données AWS DMS .................................................................................................... 485

Notes de mise à jour ....................................................................................................................... 487Notes de mise à jour pour AWS DMS 3.3.2 ................................................................................ 487Notes de mise à jour pour AWS DMS 3.3.1 ................................................................................ 488Notes de mise à jour pour AWS DMS 3.3.0 ................................................................................ 490Notes de mise à jour AWS DMS 3.1.4 ........................................................................................ 492Notes de mise à jour AWS DMS 3.1.3 ....................................................................................... 493Notes de mise à jour AWS DMS 3.1.2 ....................................................................................... 495Notes de mise à jour AWS DMS 3.1.1 ....................................................................................... 496Notes de mise à jour AWS DMS 2.4.5 ....................................................................................... 498Notes de mise à jour AWS DMS 2.4.4 ....................................................................................... 499Notes de mise à jour AWS DMS 2.4.3 ....................................................................................... 500Notes de mise à jour AWS DMS 2.4.2 ....................................................................................... 501Notes de mise à jour AWS DMS 2.4.1 ....................................................................................... 503Notes de mise à jour AWS DMS 2.4.0 ....................................................................................... 505Notes de mise à jour AWS DMS 2.3.0 ....................................................................................... 506

Historique du document ................................................................................................................... 509Mises à jour antérieures ........................................................................................................... 509

Glossaire AWS ............................................................................................................................... 512

Version de l'API API Version 2016-01-01vii

Page 8: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurTâches de migration assurées par AWS DMS

Qu'est-cequ'AWS Database Migration Service ?

AWS Database Migration Service (AWS DMS) est un service cloud qui facilite la migration des bases dedonnées relationnelles, des entrepôts de données, des bases de données NoSQL et d'autres types demagasins de données. Vous pouvez utiliser AWS DMS pour migrer vos données dans le cloud AWS,entre plusieurs instances sur site (via une configuration AWS Cloud) ou entre différentes combinaisons deconfigurations cloud et sur site.

Avec AWS DMS, vous pouvez effectuer des migrations uniques et répliquer les modifications continuespour que les sources et les cibles restent synchronisées. Si vous voulez modifier les moteurs de basede données, vous pouvez utiliser l'outil AWS Schema Conversion Tool (AWS SCT) pour convertir votreschéma de base de données vers la nouvelle plateforme. Vous utilisez ensuite AWS DMS pour migrerles données. Comme AWS DMS fait partie intégrante du cloud AWS, vous bénéficiez des avantages desservices AWS en termes de coûts, de rapidité de mise sur le marché, de sécurité et de flexibilité.

Pour obtenir des informations sur les régions AWS qui prennent en charge AWS DMS, consultez Utilisationd'une instance de réplication AWS DMS (p. 91). Pour obtenir des informations sur le coût de la migrationd'une base de données, consultez la page de tarification AWS Database Migration Service.

Tâches de migration assurées par AWS DMSAWS DMS prend à sa charge la plupart des tâches complexes ou fastidieuses qu'implique un projet demigration :

• Dans une solution classique, vous devez procéder à une analyse de la capacité, acheter du matériel etdes logiciels, installer et administrer des systèmes, puis tester et déboguer l'installation. Avec AWS DMS,le déploiement, la gestion et la surveillance de l'ensemble du matériel et des logiciels nécessaires à lamigration sont automatiquement gérés. Votre migration peut être opérationnelle en quelques minutesaprès avoir lancé le processus de configuration AWS DMS.

• Avec AWS DMS, vous pouvez augmenter (ou diminuer) la capacité de vos ressources de migrationpour l'adapter à votre charge de travail effective. Par exemple, si vous constatez que vous avez besoind'une capacité de stockage supplémentaire, vous pouvez facilement augmenter l'espace de stockage quivous est alloué et redémarrer votre migration, généralement en quelques minutes. À l'inverse, si vousdécouvrez que vous n'utilisez pas la capacité totale des ressources que vous avez configurée, vouspouvez facilement la réduire pour l'adapter à votre charge de travail effective.

• AWS DMS utilise un modèle de tarification à l'utilisation. Contrairement aux modèles de licenceclassiques qui impliquent des coûts d'achat initiaux et des frais de maintenance continus, vous ne payezque pour le temps d'utilisation des ressources AWS DMS.

• AWS DMS gère automatiquement l'ensemble de l'infrastructure qui prend en charge votre serveur demigration, notamment le matériel et les logiciels, l'application de correctifs logiciels et le signalement deserreurs.

• AWS DMS assure un basculement automatique. Si votre serveur de réplication principal connaît unedéfaillance pour une raison quelconque, un serveur de réplication de secours peut prendre le relais avecpeu ou pas d'interruption de service.

• AWS DMS peut vous aider à passer à un moteur de base de données moderne, peut-être plus rentableque celui que vous exécutez actuellement. Par exemple, AWS DMS peut vous aider à tirer parti desservices de base de données gérés fournis par Amazon RDS ou Amazon Aurora. Il peut également vousaider à utiliser le service d'entrepôt de données géré fourni par Amazon Redshift, les plateformes NoSQL

Version de l'API API Version 2016-01-011

Page 9: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS DMS au niveau élémentaire

comme Amazon DynamoDB ou les plateformes de stockage à bas coût comme Amazon Simple StorageService (Amazon S3). Inversement, si vous souhaitez migrer à partir d'une ancienne infrastructure maiscontinuer à utiliser le même moteur de base de données, AWS DMS prend également en charge ceprocessus.

• AWS DMS prend en charge comme sources de données presque tous les moteurs SGBD les pluspopulaires d'aujourd'hui, notamment Oracle, Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, Db2LUW, SAP, MongoDB et Amazon Aurora.

• AWS DMS est compatible avec la plupart des moteurs cibles disponibles, y compris Oracle, MicrosoftSQL Server, PostgreSQL, MySQL, Amazon Redshift, SAP ASE, Amazon S3 et Amazon DynamoDB.

• Vous pouvez migrer de n'importe quelle source de données prise en charge vers n'importe quellecible de données prise en charge. AWS DMS prend en charge les migrations de données entièrementhétérogènes entre les moteurs pris en charge.

• AWS DMS garantit une migration de données sécurisée. Les données au repos sont chiffrées à l'aide duchiffrement AWS Key Management Service (AWS KMS). Au cours de la migration, vous pouvez utiliser leprotocole SSL (Secure Socket Layers) pour chiffrer vos données à la volée pendant qu'elles transitent dela source vers la cible.

Fonctionnement d'AWS DMS au niveau élémentaireÀ son niveau le plus élémentaire, AWS DMS est un serveur situé dans le cloud AWS qui exécute un logicielde réplication. Vous créez une connexion source et cible pour indiquer à AWS DMS où extraire et oùcharger les données. Vous planifiez ensuite une tâche qui s'exécute sur ce serveur pour déplacer vosdonnées. AWS DMS crée les tables et les clés primaires associées si elles n'existent pas sur la cible. Sivous le préférez, vous pouvez créer à l'avance les tables cibles manuellement. Vous pouvez égalementutiliser AWS SCT pour créer tout ou partie des tables cibles, des index, des vues, des déclencheurs et ainside suite.

Le schéma suivant illustre le processus AWS DMS.

Pour exécuter le processus AWS DMS de bout en bout

1. Pour démarrer un projet de migration, identifiez vos magasins de données source et cible. Cesmagasins de données peuvent résider sur l'un des moteurs de données mentionnés précédemment.

2. Pour la source et la cible, configurez des points de terminaison dans AWS DMS qui communiquent lesinformations de connexion à la base de données. Les points de terminaison utilisent les pilotes ODBCappropriés pour communiquer avec la source et la cible.

3. Allouez une instance de réplication, qui est un serveur qu'AWS DMS configure automatiquement avecle logiciel de réplication.

Version de l'API API Version 2016-01-012

Page 10: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS DMS au niveau élémentaire

4. Créez une tâche de réplication, qui spécifie les tables de données effectives à migrer et les règles detransformation de données à appliquer. AWS DMS gère l'exécution de la tâche de réplication et vousindique le statut du processus de migration.

Pour en savoir plus, prenez connaissance de ce qui suit :

• Si vous débutez avec AWS DMS, mais que vous connaissez bien d'autres services AWS, commencezpar Fonctionnement de AWS Database Migration Service (p. 4). Cette section explore les principauxcomposants d'AWS DMS, ainsi que le processus global de configuration et d'exécution d'une migration.

• Si vous souhaitez changer de moteur de base de données, AWS Schema Conversion Tool peut convertirvotre schéma de base de données existant, notamment les tables, les index et l'essentiel du coded'application, pour la plateforme cible.

• Pour en savoir plus sur les services AWS associés dont vous pouvez avoir besoin pour concevoir votrestratégie de migration, consultez Produits cloud AWS.

• Amazon Web Services fournit un certain nombre de services de base de données. Pour obtenir desconseils sur le service le mieux adapté à votre environnement, consultez Exécution de bases de donnéessur AWS.

• Pour une présentation de tous les produits AWS, consultez Qu'est-ce que le cloud computing ?

Version de l'API API Version 2016-01-013

Page 11: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation générale d'AWS DMS

Fonctionnement deAWS Database Migration Service

AWS Database Migration Service (AWS DMS) est un service web que vous pouvez utiliser pour migrerles données d'une base de données source vers une base de données cible. Ces deux magasins dedonnées sont appelés « points de terminaison ». Vous pouvez effectuer des migrations entre des pointsde terminaison source et cible qui utilisent le même moteur de base de données, par exemple d'une basede données Oracle vers une base de données Oracle. Vous pouvez également procéder à une migrationentre des points de terminaison source et cible qui utilisent des moteurs de base de données différents, parexemple d'une base de données Oracle vers une base de données PostgreSQL. La seule exigence pourutiliser AWS DMS est que l'un de vos points de terminaison doit être sur un service AWS. Vous ne pouvezpas utiliser AWS DMS pour migrer d'une base de données sur site vers une autre base de données sursite.

Pour plus d'informations sur le coût de la migration d'une base de données, consultez la page de tarificationAWS Database Migration Service.

Utilisez les rubriques suivantes pour mieux comprendre AWS DMS.

Rubriques• Présentation générale d'AWS DMS (p. 4)• Composants d'AWS DMS (p. 5)• Sources pour AWS DMS (p. 11)• Cibles pour AWS DMS (p. 13)• Utilisation d'AWS DMS avec d'autres services AWS (p. 15)

Présentation générale d'AWS DMSPour effectuer une migration de base de données, AWS DMS se connecte au magasin de données source,lit les données sources et met en forme les données en vue de leur consommation par le magasin dedonnées cible. Ensuite, il charge les données dans le magasin de données cible. La majeure partie de cetraitement se passe dans la mémoire, même si les transactions importantes peuvent avoir besoin d'unemise en mémoire tampon sur le disque. Les transactions mises en cache et les fichiers journaux sontégalement écrits sur le disque.

De manière générale, lorsque vous utilisez AWS DMS, vous réalisez les opérations suivantes :

• Créer un serveur de réplication.• Créer les points de terminaison source et cible ayant les informations de connexion sur vos magasins de

données.• Créer une ou plusieurs tâches de migration pour migrer les données entre les magasins de données

source et cible.

Une tâche se compose de trois phases principales :

• le chargement complet des données existantes ;• l'application des modifications mises en cache ;• la réplication continue.

Version de l'API API Version 2016-01-014

Page 12: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

Au cours d'une migration de la charge complète, pendant laquelle les données existantes sont déplacéesde la source vers la cible, AWS DMS charge les données des tables du magasin de données sourcevers les tables du magasin de données cible. Lorsque le chargement complet est en cours, toutes lesmodifications apportées aux tables en cours de chargement sont mises en cache sur le serveur deréplication ; ce sont les modifications mises en cache. Notez qu'AWS DMS ne capture pas les modificationsd'une table donnée tant que le chargement complet de cette table n'a pas démarré. En d'autres termes, lepoint de démarrage de la capture des modifications varie d'une table à une autre.

Lorsque le chargement complet d'une table donnée est terminé, AWS DMS commence immédiatement àappliquer les modifications mises en cache pour cette table. Lorsque toutes les tables ont été chargées,AWS DMS commence à collecter les modifications sous la forme de transactions pour la phase deréplication continue. Une fois qu'AWS DMS a appliqué toutes les modifications mises en cache, les tablessont cohérentes sur le plan transactionnel. À ce stade, AWS DMS passe à la phase de réplication continueet applique les modifications sous forme de transactions.

Au début de la phase de réplication continue, un retard de transactions entraîne généralement un décalageentre les bases de données source et cible. La migration atteint finalement un état est stable, après avoirtraité ce retard de transactions. À ce stade, vous pouvez fermer vos applications, autoriser l'applicationdes transactions restantes à la cible, relancer vos applications, qui pointent maintenant vers la base dedonnées cible.

AWS DMS crée les objets de schéma cible nécessaires pour effectuer la migration. Cependant, AWS DMSadopte une approche minimaliste et crée uniquement les objets nécessaires pour migrer efficacement lesdonnées. En d'autres termes, AWS DMS crée des tables, des clés primaires et, dans certains cas, desindex uniques, mais il ne crée pas d'autres objets qui ne seraient pas requis pour migrer efficacementles données de la source. Par exemple, il ne crée pas d'index secondaires, de contraintes de clés nonprimaires ni de valeurs de données par défaut.

Dans la plupart des cas, lorsque vous effectuez une migration, vous migrez également une grande partieou la totalité du schéma source. Si vous effectuez une migration homogène (entre deux bases de donnéesdu même type de moteur), vous migrez le schéma à l'aide des outils natifs de votre moteur pour exporter etimporter le schéma lui-même, sans aucune donnée.

Si votre migration est hétérogène (entre deux bases de données qui utilisent des types de moteurdifférents), vous pouvez utiliser l'outil AWS Schema Conversion Tool (AWS SCT) pour générer un schémacible complet à votre usage. Si vous utilisez cet outil, toutes les dépendances entre les tables, telles queles contraintes de clé étrangère, doivent être désactivées lors des phases de « chargement total » etd'« application des modifications mises en cache » de la migration. Si les performances sont un problème,il est utile de supprimer ou de désactiver les index secondaires au cours du processus de migration. Pourplus d'informations sur l'outil AWS SCT, consultez AWS Schema Conversion Tool dans la documentationd'AWS SCT.

Composants d'AWS DMSCette section décrit les composants internes d'AWS DMS et comment ils fonctionnent ensemble poureffectuer votre migration de données. La compréhension des composants sous-jacents d'AWS DMS peutvous aider à migrer vos données plus efficacement et à mieux saisir les tenants et les aboutissants lors dela résolution ou de l'étude de problèmes.

Une migration AWS DMS se compose de trois composants : une instance de réplication, les points determinaison source et cible, et une tâche de réplication. Pour créer une migration AWS DMS, vous devezgénérer l'instance de réplication, les points de terminaison et les tâches nécessaires dans une région AWS.

Instance de réplication

De manière générale, une instance de réplication AWS DMS est une simple instance Amazon ElasticCompute Cloud (Amazon EC2) gérée qui héberge une ou plusieurs tâches de réplication.

Version de l'API API Version 2016-01-015

Page 13: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

La figure suivante montre un exemple d'instance de réplication qui exécute plusieurs tâches deréplication associées.

Une instance de réplication individuelle peut héberger une ou plusieurs tâches de réplication enfonction des caractéristiques de la migration et de la capacité du serveur de réplication. AWS DMSfournit diverses instances de réplication pour vous permettre de choisir la configuration optimale pourvotre cas d'utilisation. Pour plus d'informations sur les différentes classes d'instances de réplication,consultez Sélection de l'instance de réplication AWS DMS appropriée pour votre migration (p. 92).

AWS DMS crée l'instance de réplication sur une instance Amazon EC2. Certaines des plus petitesclasses d'instance sont suffisantes pour tester le service ou effectuer de petites migrations. Si votremigration implique un grand nombre de tables, ou si vous prévoyez d'exécuter plusieurs tâches

Version de l'API API Version 2016-01-016

Page 14: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

de réplication simultanées, vous devez envisager d'utiliser une des instances plus grandes. Cetteapproche est recommandée, car AWS DMS peut consommer une quantité importante de mémoire etd'UC.

En fonction de la classe d'instance Amazon EC2 que vous sélectionnez, votre instance de réplicationest fournie avec un stockage de données de 50 Go ou 100 Go. Ce volume est généralement suffisantpour la plupart des clients. Toutefois, si votre migration implique de grandes transactions ou unimportant volume de changements de données, vous pouvez augmenter l'allocation de stockage debase. La capture des changements de données (CDC) peut entraîner l'écriture de données sur ledisque selon la vitesse d'écriture des changements de la cible.

AWS DMS assure une haute disponibilité et une prise en charge du basculement à l'aided'un déploiement multi-AZ. Dans un déploiement multi-AZ, AWS DMS met en service et gèreautomatiquement un réplica de secours de l'instance de réplication dans une zone de disponibilitédifférente. L'instance de réplication principale est répliquée de manière synchrone vers le réplica desecours. Si l'instance de réplication principale échoue ou ne répond plus, l'instance de secours reprendtoutes les tâches en cours avec une interruption minimale. Comme l'instance principale répliqueconstamment son état vers l'instance de secours, un déploiement multi-AZ occasionne une certainedégradation des performances.

Pour en savoir plus sur l'instance de réplication AWS DMS, consultez Utilisation d'une instance deréplication AWS DMS (p. 91).

Points de terminaison

AWS DMS utilise un point de terminaison pour accéder à votre magasin de données source oucible. Les informations de connexion spécifiques sont différentes en fonction de votre magasin dedonnées mais, en général, vous fournissez les informations suivantes lorsque vous créez un point determinaison :• Type de point de terminaison – Source ou cible.• Type de moteur – Type de moteur de base de données, tel qu'Oracle, PostgreSQL ou .• Nom de serveur – Nom du serveur ou adresse IP, accessible par AWS DMS.• Port – Numéro de port utilisé pour les connexions du serveur de base de données.• Chiffrement – Mode SSL (Secure Socket Layer) si SSL est utilisé pour chiffrer la connexion.• Informations d'identification – Nom d'utilisateur et mot de passe pour un compte doté des droits

d'accès nécessaires.

Lorsque vous créez un point de terminaison à l'aide de la console AWS DMS, vous devez tester laconnexion du point de terminaison. Le test doit être réussi avant d'utiliser le point de terminaison dansune tâche DMS. Comme les informations de connexion, les critères de test spécifiques sont différentspour différents types de moteur. En général, AWS DMS vérifie que la base de données existe pourle port et nom de serveur donnés, et que les informations d'identification fournies permettent de seconnecter à la base de données avec les privilèges nécessaires pour effectuer une migration. Si letest de la connexion réussit, AWS DMS télécharge et stocke les informations de schéma à utiliserultérieurement lors de la configuration de la tâche. Ces informations peuvent inclure des définitions detable, des définitions de clé primaire et des définitions de clé unique, par exemple.

Plusieurs tâches de réplication peuvent utiliser un seul point de terminaison. Par exemple, vouspouvez avoir deux applications logiquement distinctes, hébergées dans la même base de donnéessource que vous souhaitez migrer séparément. Dans ce cas, vous créez deux tâches de réplication,une pour chaque ensemble de tables d'application. Vous pouvez utiliser le même point de terminaisonAWS DMS dans les deux tâches.

Vous pouvez personnaliser le comportement d'un point de terminaison à l'aide d'attributs deconnexion supplémentaires. Les attributs de connexion supplémentaires permettent de contrôlerdivers comportements tels que le niveau de détail de la journalisation, la taille des fichiers

Version de l'API API Version 2016-01-017

Page 15: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

et d'autres paramètres. Chaque type de moteur de magasin de données a des attributs deconnexion supplémentaires différents disponibles. Vous pouvez trouver les attributs de connexionsupplémentaires spécifiques pour chaque magasin de données dans la section source ou cible de cemagasin de données. Pour obtenir la liste des magasins de données source et cible pris en charge,consultez Sources pour AWS DMS (p. 11) et Cibles pour AWS DMS (p. 13).

Pour plus d'informations sur les points de terminaison AWS DMS, consultez Utilisation de points determinaison AWS DMS (p. 120).

Tâches de réplication

Vous utilisez une tâche de réplication AWS DMS pour déplacer un ensemble de données du pointde terminaison source vers le point de terminaison cible. La création d'une tâche de réplication est ladernière étape que vous devez effectuer avant de démarrer une migration.

Lorsque vous créez une tâche de réplication, vous spécifiez les paramètres de tâche suivants :• Instance de réplication – Instance pour héberger et exécuter la tâche• Point de terminaison source• Point de terminaison cible• Options de type de migration, comme indiqué ci-après. Pour obtenir une explication complète des

options de type de migration, reportez-vous à Création d'une tâche (p. 323).• Chargement complet (Migrer les données existantes) – Si vous pouvez vous permettre une

interruption suffisamment longue pour copier vos données existantes, il est judicieux de choisircette option. Cette option migre simplement les données de votre base de données source versvotre base de données cible, en créant des tables le cas échéant.

• Chargement complet + CDC (Migrer les données existantes et répliquer les modificationsen cours) – Cette option effectue un chargement complet des données tout en capturant leschangements sur la source. Une fois le chargement complet terminé, les modifications capturéessont appliquées à la cible. L'application des modifications finit par atteindre un état stable. Vouspouvez à ce stade fermer vos applications, laisser les modifications restantes être appliquées à lacible, puis redémarrer vos applications pointant vers la cible.

• CDC uniquement (Répliquer uniquement les changements de données) – Dans certains cas, ilpeut s'avérer plus efficace de copier les données existantes à l'aide d'une méthode autre qu'AWSDMS. Par exemple, dans une migration homogène, l'utilisation d'outils natifs d'importation/exportation peut se révéler plus efficace pour charger les données en masse. Dans ce cas, vouspouvez utiliser AWS DMS pour répliquer les modifications à partir du moment où vous démarrez lechargement en masse afin de synchroniser vos bases de données source et cible.

• Options de mode de préparation de table cible, comme indiqué ci-après. Pour obtenir uneprésentation complète des modes de table cible, consultez Création d'une tâche (p. 323).• Do nothing (Ne rien faire) – AWS DMS suppose que les tables cibles ont été précédemment

créées sur la cible.• Drop tables on target (Supprimer les tables sur la cible) – AWS DMS supprime et recrée les tables

cibles.• Truncate (Tronquer) – Si vous avez créé des tables sur la cible, AWS DMS les tronque avant le

démarrage de la migration. S'il n'existe aucune table et que vous sélectionnez cette option, AWSDMS crée toutes les tables manquantes.

• Options de mode LOB, comme indiqué ci-après. Pour obtenir une présentation complète des modesLOB, consultez Définition de la prise en charge LOB pour les bases de données source dans unetâche AWS DMS (p. 352).• Don't include LOB columns (Ne pas inclure les colonnes LOB) – Les colonnes LOB sont exclues

de la migration.• Full LOB mode (Mode LOB intégral) – Migre les LOB complets, quelle que soit leur taille. AWS

DMS migre les LOB sous forme de fragments par blocs contrôlés par le paramètre Max LOB size(Taille maximale du LOB). Ce mode est plus lent que le mode LOB limité.

Version de l'API API Version 2016-01-018

Page 16: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

• Limited LOB mode (Mode LOB limité) – Les LOB sont tronqués en fonction de la valeur spécifiéepar le paramètre Max LOB Size (Taille maximale du LOB). Ce mode est plus rapide que le modeLOB complet.

• Mappages de table – Indique les tables à migrer et la façon dont elles sont migrées. Pour plusd'informations, consultez Utilisation du mappage de table pour spécifier des paramètres detâche (p. 363).

• Transformations de données, comme indiqué ci-après. Pour plus d'informations sur lestransformations de données, consultez Spécification d'une sélection de table et de transformationspar mappage de table à l'aide de JSON (p. 368).• Modification des noms de schéma, de table et de colonne.• Modification des noms d'espace de table (pour les points de terminaison cible Oracle).• Définition de clés principales et d'index uniques sur la cible.

• Validation des données• Journalisation d'Amazon CloudWatch

Vous utilisez cette tâche pour migrer les données du point de terminaison source vers le point determinaison cible ; le traitement des tâches s'effectue sur l'instance de réplication. Vous spécifiezles tables et les schémas à migrer, ainsi que tout traitement particulier, tel que les exigences dejournalisation, les données des tables de contrôle et la gestion des erreurs.

D'un point de vue conceptuel, une tâche de réplication AWS DMS exécute deux fonctions distinctes,telles qu'illustrées dans le schéma suivant :

Version de l'API API Version 2016-01-019

Page 17: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurComposants

Le processus de chargement complet est simple à comprendre. Les données sont extraites de lasource dans un mode d'extraction en bloc, puis chargées directement dans la cible. Vous pouvezspécifier le nombre de tables à extraire et charger en parallèle dans la console AWS DMS, sousParamètres avancés.

Pour plus d'informations sur les tâches AWS DMS, consultez Utilisation de tâches AWSDMS (p. 319).

Réplication en cours ou capture des données modifiées

Vous pouvez également utiliser une tâche AWS DMS pour capturer les modifications en coursapportées au magasin de données source lorsque vous migrez vos données vers une cible. Le

Version de l'API API Version 2016-01-0110

Page 18: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSources

processus de capture des modifications utilisé par AWS DMS lors de la réplication des modificationsen continu à partir d'un point de terminaison source collecte les modifications apportées aux journauxde base de données en utilisant l'API native du moteur de base de données.

Dans le processus CDC, la tâche de réplication est conçue pour diffuser en continu les modificationsde la source vers la cible, à l'aide de tampons en mémoire pour stocker les données en transit. Siles tampons en mémoire s'épuisent pour une raison quelconque, la tâche de réplication déverse leschangements en attente dans le cache des changements sur le disque. Cela peut se produire, parexemple, si AWS DMS capture les modifications à partir de la source plus vite qu'elles ne peuventêtre appliquées sur la cible. Dans ce cas, vous voyez la latence cible de la tâche dépasser la latencesource de la tâche.

Pour vérifier ce comportement, accédez à votre tâche dans la console AWS DMS et ouvrez l'ongletSurveillance des tâches. Les graphiques CDCLatencyTarget et CDCLatencySource sont affichés enbas de la page. Si vous avez une tâche qui affiche la latence cible, il est probablement nécessaired'effectuer quelques réglages sur le point de terminaison cible pour augmenter la vitesse d'application.

La tâche de réplication utilise également un stockage pour les journaux des tâches, comme décritci-dessus. L'espace disque qui est fourni préconfiguré avec votre instance de réplication estgénéralement suffisant pour la journalisation et les modifications déversées. Si vous avez besoin deplus d'espace disque, par exemple, lorsque vous utilisez le débogage détaillé pour étudier un problèmede migration, vous pouvez modifier l'instance de réplication pour allouer plus d'espace.

Migration de schéma et de code

AWS DMS n'effectue pas de conversion de schéma ou de code. Vous pouvez utiliser des outils telsqu'Oracle SQL Developer, MySQL Workbench ou pgAdmin III pour déplacer votre schéma si la sourceet la cible correspondent au même moteur de base de données. Si vous voulez convertir un schémaexistant en un moteur de base de données différent, vous pouvez utiliser l'outil AWS SCT. Il peut créerun schéma cible et générer et créer un schéma entier, avec des tables, des index, des vues, etc. Vouspouvez également utiliser AWS SCT pour convertir des formats PL/SQL ou TSQL en formats PgSQLet autres. Pour plus d'informations sur AWS SCT, consultez AWS Schema Conversion Tool.

Dans la mesure du possible, AWS DMS tente de créer le schéma cible pour votre compte. Parfois,AWS DMS ne crée pas de schéma. Par exemple, AWS DMS ne crée pas de schéma Oracle ciblepour des raisons de sécurité. Pour les cibles de base de données MySQL, vous pouvez utiliser desattributs de connexion supplémentaires pour que DMS migre tous les objets vers la base de donnéeset le schéma spécifiés. Vous pouvez également utiliser ces attributs pour que DMS crée chaque basede données et schéma pour vous lorsqu'il trouve le schéma sur la source.

Sources pour AWS DMSVous pouvez utiliser les magasins de données suivants comme points de terminaison source pour lamigration des données à l'aide d'AWS DMS.

Bases de données sur site et d'instance EC2

• Oracle version 10.2 ou ultérieure (pour les versions 10.x), 11g ou jusqu'à 12.2, 18c ou 19c pour l'éditionEnterprise, Standard, Standard One ou Standard Two

Note

• La prise en charge d'Oracle version 19c comme source est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme source est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

Version de l'API API Version 2016-01-0111

Page 19: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSources

• Microsoft SQL Server version 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 ou 2019 pour les éditionsEnterprise, Standard, Workgroup et Developer. Les éditions Web et Express ne sont pas prises encharge.

Note

La prise en charge de Microsoft SQL Server version 2019 comme source est disponible dansles versions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7.• MariaDB (pris en charge en tant que source de données compatible MySQL) versions 10.0.24 à 10.0.28,

10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que source est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que source uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 etversions ultérieures (pour les versions 9.x) et 10.x comme source dans n'importe quelle versionDMS.

• MongoDB version 2.6.x et 3.x et ultérieures.• SAP Adaptive Server Enterprise (ASE) versions 12.5, 15, 15.5, 15.7, 16 et ultérieures.• Versions IBM Db2 pour Linux, UNIX et Windows (Db2 LUW) :

• Version 9.7, tous les Fix Packs sont pris en charge.• Version 10.1, tous les Fix Packs sont pris en charge.• Version 10.5, tous les Fix Packs sont pris en charge, à l'exception du Fix Pack 5.

Microsoft Azure

• Base de données Azure SQL.

Bases de données d'instance Amazon RDS et Amazon Simple Storage Service (Amazon S3)

• Oracle version 10.2 ou ultérieure (pour les versions 10.x), 11g (version 11.2.0.3.v1 ou ultérieure) oujusqu'à 12.2, 18c ou 19c pour l'édition Enterprise, Standard, Standard One ou Standard Two.

Note

• La prise en charge d'Oracle version 19c comme source est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme source est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2008R2, 2012, 2014, 2016, 2017 et 2019 pour les éditions Enterprise,Standard, Workgroup et Developer. Les éditions Web et Express ne sont pas prises en charge.

Note

La prise en charge de Microsoft SQL Server version 2019 comme source est disponible dansles versions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7.Version de l'API API Version 2016-01-01

12

Page 20: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCibles

• MariaDB (pris en charge en tant que source de données compatible MySQL) versions 10.0.24 à 10.0.28,10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que source est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x. La capture des donnéesmodifiées (CDC) est uniquement prise en charge par les versions 9.4.9 et ultérieures, 9.5.4 et ultérieures,10.x et 11.x. Le paramètre rds.logical_replication, qui est requis pour la CDC, est pris en chargeuniquement dans ces versions et les versions ultérieures.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que source uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL versions 9.4 etultérieures (pour les versions 9.x) et 10.x comme source dans n'importe quelle version DMS.

• Amazon Aurora avec compatibilité MySQL (prise en charge en tant que source de données compatibleMySQL).

• Amazon Aurora avec compatibilité PostgreSQL (prise en charge en tant que source de donnéescompatible PostgreSQL).

• Amazon S3.

Cibles pour AWS DMSVous pouvez utiliser les magasins de données suivants comme points de terminaison cible pour lamigration des données à l'aide d'AWS DMS.

Bases de données des instances sur site et Amazon EC2

• Oracle version 10g, 11g, 12c, 18c ou 19c pour les éditions Enterprise, Standard, Standard One etStandard Two.

Note

• La prise en charge d'Oracle version 19c comme cible est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme cible est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 ou 2019 pour les éditionsEnterprise, Standard, Workgroup et Developer. Les éditions Web et Express ne sont pas prises encharge.

Note

La prise en charge de Microsoft SQL Server version 2019 comme cible est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7.• MariaDB (pris en charge en tant que cible de données compatible MySQL) versions 10.0.24 à 10.0.28,

10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que cible est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.Version de l'API API Version 2016-01-01

13

Page 21: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCibles

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que cible uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 etversions ultérieures (pour les versions 9.x) et 10.x comme cible dans n'importe quelle versionDMS.

• SAP Adaptive Server Enterprise (ASE) versions 15, 15.5, 15.5, 15.7, 16 et ultérieures.

Bases de données d'instance Amazon RDS, Amazon Redshift, Amazon DynamoDB, Amazon S3,Amazon Elasticsearch Service, Amazon Kinesis Data Streams et Amazon DocumentDB

• Oracle version 11g (version 11.2.0.3.v1 ou ultérieure), 12c, 18c ou 19c pour l'édition Enterprise,Standard, Standard One ou Standard Two.

Note

• La prise en charge d'Oracle version 19c comme cible est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme cible est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2008R2, 2012, 2014, 2016, 2017 et 2019 pour les éditions Enterprise,Standard, Workgroup et Developer. Les éditions Web et Express ne sont pas prises en charge.

Note

La prise en charge de Microsoft SQL Server version 2019 comme cible est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7.• MariaDB (pris en charge en tant que cible de données compatible MySQL) versions 10.0.24 à 10.0.28,

10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que cible est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que cible uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 etversions ultérieures (pour les versions 9.x) et 10.x comme cible dans n'importe quelle versionDMS.

• Amazon Aurora avec compatibilité MySQL.• Amazon Aurora avec compatibilité PostgreSQL.• Amazon Redshift.• Amazon S3.• Amazon DynamoDB.• Amazon Elasticsearch Service.• Amazon Kinesis Data Streams.• Apache Kafka – Amazon Managed Streaming for Apache Kafka (Amazon MSK) et Apache Kafka

autogéré.• Amazon DocumentDB (avec compatibilité MongoDB).

Version de l'API API Version 2016-01-0114

Page 22: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAvec d'autres services AWS

Utilisation d'AWS DMS avec d'autres services AWSVous pouvez utiliser AWS DMS avec plusieurs autres services AWS :

• Vous pouvez utiliser une instance Amazon EC2 ou une instance de base de données Amazon RDScomme cible pour la migration des données.

• Vous pouvez utiliser l'AWS Schema Conversion Tool (AWS SCT) pour convertir votre schéma source etvotre code SQL en un schéma cible et du code SQL cible équivalents.

• Vous pouvez utiliser Amazon S3 comme site de stockage pour vos données ou l'utiliser comme étapeintermédiaire lors de la migration de grandes quantités de données.

• Vous pouvez utiliser AWS CloudFormation pour configurer vos ressources AWS pour la gestion ou ledéploiement des infrastructures. Par exemple, vous pouvez allouer les ressources AWS DMS telles queles instances de réplication, les tâches, les certificats et les points de terminaison. Vous créez un modèlequi décrit toutes les ressources AWS que vous souhaitez utiliser, et AWS CloudFormation met en serviceet configure ces ressources.

Prise en charge de AWS DMS pour AWSCloudFormationVous pouvez allouer des ressource AWS DMS avec AWS CloudFormation. AWS CloudFormation est unservice qui permet de modéliser et de configurer vos ressources AWS pour le déploiement ou la gestionde l'infrastructure. Par exemple, vous pouvez allouer les ressources AWS DMS telles que les instances deréplication, les tâches, les certificats et les points de terminaison. Vous créez un modèle qui décrit toutesles ressources AWS que vous souhaitez utiliser, et AWS CloudFormation met en service et configure cesressources.

En tant que développeur ou administrateur système, vous pouvez créer et gérer les collections de cesressources, que vous pouvez, ensuite, utiliser pour les tâches de migration répétitives ou le déploiementdes ressources dans votre organisation. Pour plus d'informations sur AWS CloudFormation, consultezConcepts AWS CloudFormation dans le guide AWS CloudFormation Guide de l'utilisateur.

AWS DMS prend en charge la création des ressources AWS DMS suivantes à l'aide d'AWSCloudFormation :

• AWS::DMS::Certificate• AWS::DMS::Endpoint• AWS::DMS::EventSubscription• Ressource AWS::DMS::ReplicationInstance• Ressource AWS::DMS::ReplicationSubnetGroup• Ressource AWS::DMS::ReplicationTask

Construction d'un Amazon Resource Name (ARN)pour AWS DMSSi vous utilisez l'AWS CLI ou l'AWS DMS pour automatiser la migration de votre base de données, desAmazon Resource Names (ARN) interviennent. Chaque ressource créée dans Amazon Web Services estidentifiée par un ARN, qui est un identificateur unique. Si vous utilisez l'AWS CLI ou l'API AWS DMS pourconfigurer la migration de base de données, vous devez fournir l'ARN de la ressource que vous voulezexploiter.

L'ARN d'une ressource AWS DMS utilise la syntaxe suivante :

Version de l'API API Version 2016-01-0115

Page 23: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConstruction d'un ARN

arn:aws:dms:<region>:<account number>:<resourcetype>:<resourcename>

Dans cette syntaxe, les éléments suivants s'appliquent :

• <region> correspond à l'ID de la région AWS dans laquelle la ressource AWS DMS a été créée,comme us-west-2.

Le tableau suivant indique les noms des régions AWS et les valeurs à utiliser lors de la création d'unARN.

Région Nom

Région Asie-Pacifique (Tokyo) ap-northeast-1

Région Asie-Pacifique (Séoul) ap-northeast-2

Région Asie-Pacifique (Mumbai) ap-south-1

Région Asie-Pacifique (Singapour) ap-southeast-1

Région Asie-Pacifique (Sydney) ap-southeast-2

Région Canada (Centre) ca-central-1

Région Chine (Pékin) cn-north-1

Région Chine (Ningxia) cn-northwest-1

Région Europe (Stockholm) eu-north-1

Région UE (Francfort) eu-central-1

Région Europe (Irlande) eu-west-1

Région UE (Londres) eu-west-2

Région UE (Paris) eu-west-3

Région Amérique du Sud (São Paulo) sa-east-1

Région USA Est (Virginie du N.) us-east-1

Région USA Est (Ohio) us-east-2

Région USA Ouest (Californie du Nord) us-west-1

Région USA Ouest (Oregon) us-west-2

• <account number> est votre numéro de compte sans les tirets. Pour trouver votre numéro de compte,connectez-vous à votre compte AWS à l'adresse http://aws.amazon.com, choisissez My Account/Console (Mon compte/Console), puis My Account (Mon compte).

• <resourcetype> correspond au type de ressource AWS DMS.

Le tableau suivant indique les types de ressources à utiliser lors de la création d'un nom ARN pour uneressource AWS DMS particulière.

Type de ressourceAWS DMS

Format ARN

Instance de réplication arn:aws:dms:<region>: <account>:rep: <resourcename>

Version de l'API API Version 2016-01-0116

Page 24: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConstruction d'un ARN

Type de ressourceAWS DMS

Format ARN

Endpoint arn:aws:dms:<region>:<account>:endpoint: <resourcename>

Tâche de réplication arn:aws:dms:<region>:<account>:task:<resourcename>

Groupe de sous-réseaux

arn:aws:dms:<region>:<account>:subgrp:<resourcename>

• <resourcename> correspond au nom affecté à la ressource AWS DMS. Il s'agit d'une chaîne généréede façon arbitraire.

Le tableau suivant montre des exemples d'ARN pour des ressources AWS DMS avec le compte AWS123456789012, qui a été créé dans la région USA Est (Virginie du Nord) et qui dispose d'un nom deressource.

Type de ressource Exemple d'ARN

Instance de réplication arn:aws:dms:us-east-1:123456789012:rep:QLXQZ64MH7CXF4QCQMGRVYVXAI

Endpoint arn:aws:dms:us-east-1:123456789012:endpoint:D3HMZ2IGUCGFF3NTAXUXGF6S5A

Tâche de réplication arn:aws:dms:us-east-1:123456789012:task:2PVREMWNPGYJCVU2IBPTOYTIV4

Groupe de sous-réseaux

arn:aws:dms:us-east-1:123456789012:subgrp:test-tag-grp

Version de l'API API Version 2016-01-0117

Page 25: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurInscrivez-vous à AWS

Configuration pourAWS Database Migration Service

Avant d'utiliser AWS Database Migration Service (AWS DMS) pour la première fois, exécutez les tâchessuivantes :

1. Inscrivez-vous à AWS (p. 18)2. Créer un utilisateur IAM (p. 18)3. Planification de la migration pour AWS Database Migration Service (p. 20)

Inscrivez-vous à AWSLorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquementinscrit à tous les services d'AWS, y compris AWS DMS. Seuls les services que vous utilisez vous sontfacturés.

Avec AWS DMS, vous ne payez que les ressources que vous utilisez. L'instance de réplication AWSDMS que vous créez sera en ligne (elle ne s'exécutera pas dans un environnement de test (sandbox).Vous devrez payer les frais d'utilisation standard d'AWS DMS pour l'instance jusqu'à ce que vous lamettiez hors service. Pour plus d'informations sur les tarifs d'utilisation relatifs à AWS DMS, consultez lapage de présentation du produit AWS DMS. Si vous êtes un nouveau client AWS, vous pouvez démarrergratuitement avec AWS DMS. Pour plus d'informations, consultez Niveau d'offre gratuite AWS.

Si vous clôturez votre compte AWS, toutes les ressources AWS DMS et les configurations associéesà votre compte sont supprimées après deux jours. Ces ressources incluent toutes les instances deréplication, la configuration des points de terminaison source et cible, les tâches de réplication et lescertificats SSL. Si après deux jours vous décidez d'utiliser à nouveau AWS DMS, vous devez recréer lesressources dont vous avez besoin.

Si vous possédez déjà un compte AWS, passez à la prochaine étape.

Si vous n'avez pas de compte AWS, suivez la procédure suivante pour en créer un.

Pour s'inscrire sur AWS

1. Ouvrez https://aws.amazon.com/, puis choisissez Create an AWS Account.2. Suivez les instructions en ligne.

Notez votre numéro de compte AWS, car vous en aurez besoin lors de la prochaine tâche.

Créer un utilisateur IAMPour accéder à un service d'AWS, tel qu'AWS DMS, vous devez fournir vos informations d'identification afinque le service puisse déterminer si vous êtes autorisé à accéder à ses ressources. La console exige votremot de passe. Vous pouvez créer des clés d'accès pour votre compte AWS afin d'accéder à l'interfaceligne de commande ou à l'API. Cependant, il est déconseillé d'accéder à AWS à l'aide des informationsd'identification de votre compte AWS ; utilisez plutôt AWS Identity and Access Management (IAM). Créezun utilisateur IAM, puis ajoutez-le à un groupe IAM disposant des autorisations administratives ou attribuez-

Version de l'API API Version 2016-01-0118

Page 26: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréer un utilisateur IAM

lui ces autorisations. Vous pouvez alors accéder à AWS à l'aide d'une URL spéciale et des informationsd'identification de l'utilisateur IAM.

Si vous êtes inscrit à AWS, mais que vous n'avez pas créé d'utilisateur IAM pour vous-même, vous pouvezle faire avec la console IAM.

Pour créer un administrateur pour vous-même et ajouter l'utilisateur à un groupe d'administrateurs(console)

1. Utilisez l'adresse e-mail et le mot de passe de votre compte AWS pour vous connecter en tantqu'Utilisateur racine d'un compte AWS à la console IAM à l'adresse https://console.aws.amazon.com/iam/.

Note

Nous vous recommandons vivement de respecter la bonne pratique qui consiste àavoir recours à l'utilisateur Administrator IAM ci-dessous et à mettre en sécurité lesinformations d'identification de l'utilisateur racine. Connectez-vous en tant qu'utilisateur racinepour effectuer certaines tâches de gestion des comptes et des services.

2. Dans le panneau de navigation, choisissez Utilisateurs, puis Add user (Ajouter un utilisateur).3. Dans User name (Nom d'utilisateur), entrez Administrator.4. Cochez la case en regard de AWS Management Console access. Puis, sélectionnez Custom

password (Mot de passe personnalisé, et entrez votre nouveau mot de passe dans la zone de texte.5. Par défaut, AWS oblige le nouvel utilisateur à créer un nouveau mot de passe lors de sa première

connexion. Décochez la case en regard de User must create a new password at next sign-in(L'utilisateur doit créer un nouveau mot de passe à sa prochaine connexion) pour autoriser le nouvelutilisateur à réinitialiser son mot de passe une fois qu'il s'est connecté.

6. Choisissez Next: Permissions (Suivant : Autorisations).7. Sous Set permissions (Accorder des autorisations), choisissez Add user to group (Ajouter un utilisateur

au groupe).8. Choisissez Create group.9. Dans la boîte de dialogue Create group (Créer un groupe), pour Group name (Nom du groupe), tapez

Administrators.10. Choisissez Filter policies (Filtrer les stratégies), puis sélectionnez AWS managed -job function

(Fonction -job gérée par) pour filtrer le contenu de la table.11. Dans la liste des stratégies, cochez la case AdministratorAccess. Choisissez ensuite Create group.

Note

Vous devez activer l'accès des rôles et utilisateurs IAM à la facturation avant de pouvoirutiliser les autorisations AdministratorAccess pour accéder à la console AWS Billing andCost Management. Pour ce faire, suivez les instructions de l'étape 1 du didacticiel portant surcomment déléguer l'accès à la console de facturation.

12. De retour dans la liste des groupes, activez la case à cocher du nouveau groupe. Choisissez Refreshsi nécessaire pour afficher le groupe dans la liste.

13. Choisissez Next: Tags (Suivant : Balises).14. (Facultatif) Ajoutez des métadonnées à l'utilisateur en associant les balises sous forme de paires clé-

valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez Balisage des entitésIAM dans le IAM Guide de l'utilisateur.

15. Choisissez Next: Review pour afficher la liste des membres du groupe à ajouter au nouvel utilisateur.Une fois que vous êtes prêt à continuer, choisissez Create user.

Vous pouvez utiliser ce même processus pour créer d'autres groupes et utilisateurs et pour accorder à vosutilisateurs l'accès aux ressources de votre compte AWS. Pour en savoir plus sur l'utilisation des stratégies

Version de l'API API Version 2016-01-0119

Page 27: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPlanification de la migration pourAWS Database Migration Service

afin de limiter les autorisations d'accès des utilisateurs à certaines ressources AWS, consultez Gestion desaccès et Exemples de stratégies.

Pour vous connecter en tant que nouvel utilisateur IAM, déconnectez-vous de la console AWS, puis utilisezl'URL suivante, où votre_id_de_compte_aws désigne votre numéro de compte AWS sans les traitsd'union (par exemple, si votre numéro de compte AWS est 1234-5678-9012, votre ID de compte AWSest 123456789012) :

https://your_aws_account_id.signin.aws.amazon.com/console/

Saisissez le nom utilisateur et le mot de passe IAM que vous venez de créer. Lorsque vous êtes connecté,la barre de navigation affiche « votre_nom_utilisateur @ votre_id_de_compte_aws ».

Si vous ne voulez pas que l'URL de votre page de connexion contienne votre ID de compte AWS, vouspouvez créer un alias de compte. Dans le tableau de bord IAM, sélectionnez Customize (Personnaliser) ettapez un alias, tel que le nom de votre société. Pour vous connecter après avoir créé un alias de compte,utilisez l'URL suivante.

https://your_account_alias.signin.aws.amazon.com/console/

Pour contrôler le lien de connexion des utilisateurs IAM de votre compte, ouvrez la console IAM et vérifiezle lien sous AWS Account Alias sur le tableau de bord.

Planification de la migration pourAWS Database Migration Service

Lors de la planification d'une migration de base de données à l'aide de AWS Database Migration Service,tenez compte des éléments suivants :

• Vous devez configurer un réseau qui connecte vos bases de données source et cible à une instance deréplication AWS DMS. Cela peut être aussi simple que connecter deux ressources AWS dans le mêmeVPC en tant qu'instance de réplication à des configurations plus complexes telles que la connexiond'une base de données sur site à une instance de base de données Amazon RDS via un VPN. Pour plusd'informations, consultez Configurations réseau pour la migration de base de données (p. 101)

• Points de terminaison source et cible – Vous devrez savoir quelles informations et tables de la basede données source doivent être migrées vers la base de données cible. AWS DMS prend en chargela migration de schéma de base, notamment la création des tables et des clés primaires. Toutefois,AWS DMS ne crée pas automatiquement d'index secondaires, de clés étrangères, de procéduresstockées, de comptes utilisateur, etc., dans la base de données cible. Notez que, selon votre moteur debase de données source et cible, vous devrez peut-être configurer la journalisation supplémentaire oumodifier d'autres paramètres pour une base de données source ou cible. Consultez les sections Sourcespour la migration des données (p. 120) et Cibles pour la migration des données (p. 208) pour plusd'informations.

• Migration de schéma/code – AWS DMS n'effectue pas de conversion de schéma ou de code. Vouspouvez utiliser des outils tels que Oracle SQL Developer, MySQL Workbench ou pgAdmin III pourconvertir votre schéma. Si vous voulez convertir un schéma existant en un moteur de base de donnéesdifférent, vous pouvez utiliser l'outil AWS Schema Conversion Tool. Il peut créer un schéma cible etgénérer et créer un schéma entier : tables, index, vues etc. Vous pouvez également utiliser cet outilpour convertir des formats PL/SQL ou TSQL en PgSQL et autres. Pour plus d'information sur l'outil AWSSchema Conversion Tool, consultez la page AWS Schema Conversion Tool.

• Types de données non pris en charge – Certains types de données source doivent être convertis entypes de données équivalents pour la base de données cible. Pour en savoir plus sur les types de

Version de l'API API Version 2016-01-0120

Page 28: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPlanification de la migration pourAWS Database Migration Service

données pris en charge, consultez la section relative à la source ou à la cible pour votre magasin dedonnées.

Version de l'API API Version 2016-01-0121

Page 29: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDémarrer la migration d'une base de données

Mise en route surAWS Database Migration Service

AWS Database Migration Service (AWS DMS) vous permet de migrer les bases de données vers AWSfacilement et en toute sécurité. Vous pouvez migrer vos données vers et depuis les bases de donnéescommerciales et Open Source les plus répandues, telles qu'Oracle, MySQL et PostgreSQL. Ce serviceprend en charge les migrations homogènes, par exemple d'Oracle vers Oracle, mais aussi les migrationshétérogènes entre différentes plateformes de bases de données, par exemple d'Oracle vers PostgreSQLou de MySQL vers Oracle.

Pour obtenir des informations sur le coût de la migration d'une base de données avecAWS Database Migration Service, consultez la page de tarification AWS Database Migration Service.

Rubriques• Démarrer la migration d'une base de données avec AWS Database Migration Service (p. 22)• Étape 1 : Bienvenue (p. 23)• Étape 2 : création d'une instance de réplication (p. 23)• Étape 3 : Spécifier les points de terminaison source et cible (p. 28)• Étape 4 : Création d'une tâche (p. 33)• Surveiller votre tâche (p. 37)

Démarrer la migration d'une base de données avecAWS Database Migration Service

Il existe plusieurs méthodes pour commencer la migration d'une base de données. Vous pouvezsélectionner l'assistant de la console AWS DMS, qui vous guidera au cours de chaque étape du processus,ou exécuter chaque étape en sélectionnant la tâche appropriée dans le volet de navigation. Vous pouvezégalement utiliser l'interface de ligne de commande AWS. Pour en savoir plus sur l'utilisation de l'interfacede ligne de commande avec AWS DMS, consultez AWS CLI pour AWS DMS.

Pour utiliser l'assistant, sélectionnez Démarrez dans le volet de navigation de la console AWS DMS.Vous pouvez utiliser l'assistant pour vous aider à créer votre première migration de données. En suivantle processus de l'Assistant, vous allouez une instance de réplication qui exécute tous les processus dela migration, vous spécifiez une base de données source et une cible, puis vous créez une tâche ou unensemble de tâches pour définir les tables et les processus de réplication que vous souhaitez utiliser.AWS DMS crée ensuite votre instance de réplication et effectue les tâches sur les données en cours demigration.

Vous pouvez également créer chacun des composants d'une migration de base de données AWS DMS, ensélectionnant les éléments appropriés dans le volet de navigation. Pour migrer une base de données, vousdevez effectuer les opérations suivantes :

• Effectuez les tâches décrites dans Configuration pour AWS Database Migration Service (p. 18).

Version de l'API API Version 2016-01-0122

Page 30: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 1 : Bienvenue

• Allouez une instance de réplication qui effectue tous les processus de la migration.• Indiquez un point de terminaison source et un point de terminaison cible.• Créez une tâche ou un ensemble de tâches pour définir les tables et processus de réplication à utiliser.

Étape 1 : BienvenueSi vous commencez la migration de votre base de données à l'aide de l'assistant de la console AWS DMS,la page Bienvenue s'affiche. Elle explique le processus de migration de base de données avec AWS DMS.

Pour démarrer la migration d'une base de données à partir de la page d'accueil de la console

• Choisissez Suivant.

Étape 2 : création d'une instance de réplicationLa première tâche lors de la migration d'une base de données consiste à créer une instance de réplicationpossédant suffisamment de stockage et de puissance de traitement pour exécuter les tâches de traitementque vous lui attribuez et pour migrer les données de votre base de données source vers la base dedonnées cible. La taille de cette instance varie en fonction de la quantité de données que vous devezmigrer et des tâches que vous souhaitez que l'instance effectue. Pour plus d'informations sur les instancesde réplication, consultez la page Utilisation d'une instance de réplication AWS DMS (p. 91).

La procédure suivante suppose que vous avez choisi l'assistant de la console AWS DMS. Notez que vouspouvez également effectuer cette étape en sélectionnant Replication instances (Instances de réplication)

Version de l'API API Version 2016-01-0123

Page 31: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 2 : création d'une instance de réplication

dans le volet de navigation de la console AWS DMS, puis en choisissant Create replication instance (Créerune instance de réplication).

Pour créer une instance de réplication à l'aide de la console AWS

1. Dans le volet de navigation, cliquez sur Instances de réplication.2. Sélectionnez Créer instance de réplication.3. Sur la page Créer instance de réplication, spécifiez vos informations d'instance de réplication. Le

tableau suivant décrit les paramètres.

Pour cette option Procédez comme suit

Nom Tapez un nom pour l'instance de réplication contenantentre 8 et 16 caractères ASCII d'impression (à l'exceptionde /, " et @). Ce nom doit être unique pour votre comptedans la région que vous avez sélectionnée. Vous pouvezchoisir de compliquer le nom, par exemple en incluant larégion et la tâche que vous effectuez, par exemple west2-mysql2mysql-instance1.

Description Tapez une brève description de l'instance de réplication.

Classe d'instance Choisissez une classe d'instance avec la configurationdont vous avez besoin pour votre migration. Gardez àl'esprit que l'instance doit disposer de suffisamment destockage, de réseau et de puissance de traitement pourmener à bien votre migration. Pour plus d'informationssur la façon de déterminer quelle classe d'instance

Version de l'API API Version 2016-01-0124

Page 32: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 2 : création d'une instance de réplication

Pour cette option Procédez comme suitest la mieux adaptée à votre migration, consultez lapage Utilisation d'une instance de réplication AWSDMS (p. 91).

Replication engine version Par défaut, l'instance de réplication exécute la dernièreversion du moteur de réplication AWS DMS. Nous vousrecommandons d'accepter cette valeur par défaut ;cependant, vous pouvez choisir une version précédente dumoteur, si nécessaire.

VPC Sélectionnez le Cloud Amazon Virtual Private Cloud(Amazon VPC) que vous voulez utiliser. Si votre basede données source ou cible se trouve dans un VPC,sélectionnez ce VPC. Si vos bases de données source etcible se trouvent dans des VPC différents, vérifiez qu'ilsse trouvent tous deux dans des sous-réseaux publics etqu'ils sont accessibles publiquement, puis sélectionnez leVPC dans lequel l'instance de réplication doit être située.L'instance de réplication doit être en métrique d'accéderaux données dans le VPC source. Si ni votre base dedonnées source ni votre base de données cible ne setrouve dans un VPC, sélectionnez un VPC dans lequell'instance de réplication doit être situé.

Multi-AZ Utilisez ce paramètre facultatif pour créer un réplicade secours de votre instance de réplication dans uneautre Zone de disponibilité pour la prise en charge dubasculement. Si vous avez l'intention d'utiliser la capturede données modifiées (CDC) ou la réplication continue,vous devez activer cette option.

Accessible publiquement Choisissez cette option si vous souhaitez que l'instance deréplication soit accessible à partir d'Internet.

4. Cliquez sur l'onglet Avancé, illustré ci-après, pour définir des valeurs pour les paramètres de réseau etde chiffrement si vous en avez besoin. Le tableau suivant décrit les paramètres.

Version de l'API API Version 2016-01-0125

Page 33: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 2 : création d'une instance de réplication

Version de l'API API Version 2016-01-0126

Page 34: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 2 : création d'une instance de réplication

Pour cette option Procédez comme suit

Stockage alloué (Go) Le stockage est principalement consommé par les fichiersjournaux et les transactions mises en cache. Pour lestransactions mises en cache, le stockage est utiliséuniquement lorsque les transactions mises en cachedoivent être écrites sur disque. Par conséquent, AWS DMSn'utilise pas une quantité importante de stockage, mises àpart les quelques exceptions suivantes :

• Les très grandes tables qui entraînent une charge detransaction importante. Le chargement d'une grandetable peut prendre du temps. Les transactions mises encache sont donc plus susceptibles d’être écrites sur ledisque pendant un tel chargement.

• Les tâches qui sont configurées pour marquer unepause avant de charger des transactions mises encache. Dans ce cas, toutes les transactions sontmises en cache jusqu'à la fin du chargement completpour toutes les tables. Avec cette configuration, unequantité de stockage importante peut être utilisée par lestransactions mises en cache.

• Les tâches configurées avec des tables chargées dansAmazon Redshift. Cependant, cette configuration n'estpas un problème lorsqu'Amazon Aurora est la cible.

Dans la plupart des cas, l'allocation de stockage par défautest suffisante. Cependant, il est toujours préférable defaire attention aux métriques associées au stockage et dedimensionner votre stockage si vous constatez que vousconsommez plus que l'allocation par défaut.

Groupe de sous-réseaux de réplication Sélectionnez le groupe de sous-réseaux de réplicationdu VPC que vous avez sélectionnez, dans lequel voussouhaitez que l'instance de réplication soit créée. Sivotre base de données source se trouve dans un VPC,sélectionnez le groupe de sous-réseaux qui contient labase de données source comme emplacement de votreinstance de réplication. Pour plus d'informations sur lesgroupes de sous-réseaux de réplication, consultez la pageCréer groupe de sous-réseaux de réplication (p. 107).

Zone de disponibilité Sélectionnez la Zone de disponibilité dans laquelle setrouve votre base de données source.

Groupes de sécurité VPC L'instance de réplication est créée dans un VPC. Sivotre base de données source se trouve dans un VPC,sélectionnez le groupe de sécurité VPC qui permetd'accéder à l'instance DB où réside la base de données.

Version de l'API API Version 2016-01-0127

Page 35: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Spécifier les points de terminaison source et cible

Pour cette option Procédez comme suit

KMS master key Sélectionnez la clé de chiffrement à utiliser pour chiffrer lesinformations de connexion et de stockage de réplication.Si vous choisissez (Default) aws/dms, la clé AWS KeyManagement Service (AWS KMS) par défaut associée àvotre compte et votre région est utilisée. Une descriptionet votre numéro de compte sont affichés, ainsi que l'ARNde la clé. Pour plus d'informations sur l'utilisation de laclé chiffrement, consultez la page Définition d'une cléde chiffrement et spécification des autorisations AWSKMS (p. 78).

5. Spécifiez les paramètres de Maintenance. Le tableau suivant décrit les paramètres. Pour plusd'informations sur les paramètres de maintenance, consultez Fenêtre de maintenance d'AWSDMS (p. 95).

Pour cette option Procédez comme suit

Mise à niveau automatique desversions mineures

Sélectionnez cette option pour que les mises à niveaumineures du moteur soient appliquées automatiquementsur l'instance de réplication pendant la fenêtre demaintenance.

Fenêtre de maintenance Choisissez un intervalle de temps hebdomadaire, auformat Universal Coordinated Time (UTC), pendant lequela lieu la maintenance du système.

Par défaut : Un délai de 30 minutes sélectionnées auhasard dans un bloc de 8 heures par région, durant un jourde la semaine aléatoire.

6. Choisissez Créer instance de réplication.

Étape 3 : Spécifier les points de terminaison sourceet cible

Lors de la création de votre instance de réplication, vous pouvez spécifier les magasins de données sourceet cible. Les magasins de données source et cible peuvent se trouver sur une instance Amazon Elastic

Version de l'API API Version 2016-01-0128

Page 36: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Spécifier les points de terminaison source et cible

Compute Cloud (Amazon EC2), une instance de base de données Amazon Relational Database Service(Amazon RDS) ou une base de données sur site.

La procédure suivante suppose que vous avez choisi l'assistant de la console AWS DMS. Notez que vouspouvez également effectuer cette étape en sélectionnant Endpoints (Points de terminaison) dans le voletde navigation de la console AWS DMS, puis en choisissant Create endpoint (Créer point de terminaison).Lorsque vous utilisez l'assistant de la console, vous créez les points de terminaison source et cible sur lamême page. Lorsque vous n'utilisez pas l'assistant de la console, vous créez chaque point de terminaisonséparément.

Pour spécifier un point de terminaison de base de données source ou cible l'aide de la consoleAWS

1. Sur la page Connecter les points de terminaison des bases de données source et cible, spécifiez vosinformations de connexion pour la base de données source ou cible. Le tableau suivant décrit lesparamètres.

Version de l'API API Version 2016-01-0129

Page 37: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Spécifier les points de terminaison source et cible

Pour cette option Procédez comme suit

Identificateur de point de terminaison Tapez le nom que vous voulez utiliser pour identifier lepoint de terminaison. Vous pouvez inclure dans le nomdu type de point de terminaison, par exemple oracle-source ou PostgreSQL-target. Le nom doit êtreunique pour toutes les instances de réplication.

Version de l'API API Version 2016-01-0130

Page 38: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Spécifier les points de terminaison source et cible

Pour cette option Procédez comme suit

Moteur source et Moteur cible Choisissez le type de moteur de base de données quicorrespond au point de terminaison.

Nom du serveur Tapez le nom du serveur. Pour une base de données sursite, cela peut être l'adresse IP ou le nom d'hôte public.Pour une instance de base de données Amazon RDS,cela peut être le point de terminaison (égalementappelé nom DNS) pour l'instance de base de données,comme mysqlsrvinst.abcd12345678.us-west-2.rds.amazonaws.com.

Port Saisissez le port utilisé par la base de données.

Mode SSL Sélectionnez un mode SSL si vous souhaitez activer lechiffrement de connexion pour ce point de terminaison.Selon le mode que vous sélectionnez, vous pouvez êtreinvité à fournir les informations concernant le certificat et lecertificat du serveur.

Nom utilisateur Tapez le nom d'utilisateur avec les autorisations requisespour autoriser la migration des données. Pour plusd'informations sur les autorisations requises, consultez lasection relative à la sécurité pour le moteur de base dedonnées source ou cible dans ce guide de l'utilisateur.

Mot de passe : Tapez le mot de passe du compte avec les autorisationsrequises.

2. Cliquez sur l'onglet Avancé, illustré ci-après, pour définir des valeurs pour la chaîne de connexion et laclé de chiffrement si vous en avez besoin. Vous pouvez tester la connexion au point de terminaison ensélectionnant Exécuter test.

Version de l'API API Version 2016-01-0131

Page 39: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Spécifier les points de terminaison source et cible

Pour cette option Procédez comme suit

Attributs de connexionsupplémentaires

Tapez les paramètres de connexion supplémentaires ici.Pour plus d'informations sur les attributs de connexionsupplémentaires, consultez la section de la documentationrelative à votre magasin de données.

KMS master key Sélectionnez la clé de chiffrement à utiliser pour chiffrer lesinformations de connexion et de stockage de réplication.Si vous choisissez (Default) aws/dms, la clé AWS KeyManagement Service (AWS KMS) par défaut associéeà votre compte et votre région est utilisée. Pour plusd'informations sur l'utilisation de la clé chiffrement,consultez la page Définition d'une clé de chiffrement etspécification des autorisations AWS KMS (p. 78).

Version de l'API API Version 2016-01-0132

Page 40: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Création d'une tâche

Étape 4 : Création d'une tâcheCréez une tâche pour spécifier les tables à migrer, pour mapper les données à l'aide d'un schéma cible etpour créer des tables sur la base de données cible. Dans le cadre de la création d'une tâche, vous pouvezchoisir le type de migration : migrer des données existantes, migrer des données existantes et répliquer leschangements en cours ou répliquer uniquement les modifications apportées aux données.

Dans AWS DMS, vous pouvez spécifier un mapping précis de vos données entre la base de donnéessource et la base de données cible. Avant de spécifier votre mapping, consultez la section dedocumentation relative au mapping de type de données pour votre base de données source et cible.

Vous pouvez choisir de démarrer une tâche dès que vous terminez de spécifier les informations laconcernant dans la page Créer tâche, ou choisir de démarrer la tâche à partir de la page Tableau de bordune fois que vous terminez de spécifier les informations la concernant.

La procédure suivante part du principe que vous avez choisi l'assistant de la console AWS DMS et quevous avez indiqué vos informations d'instance de réplication et vos points de terminaison à l'aide del'assistant de la console. Notez que vous pouvez également effectuer cette étape en sélectionnant Tasks(Tâches) dans le volet de navigation de la console AWS DMS, puis en choisissant (Créer une tâche).

Pour créer une tâche de migration

1. Sur la page Créer tâche, spécifiez les options relatives à la tâche. Le tableau suivant décrit lesparamètres.

Version de l'API API Version 2016-01-0133

Page 41: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Création d'une tâche

Pour cette option Procédez comme suit

Nom de la tâche Tapez un nom pour la tâche.

Description de la tâche Tapez une description pour la tâche.

Point de terminaison source Affiche le point de terminaison source qui sera utilisé.

Point de terminaison cible Affiche le point de terminaison cible qui sera utilisé.

Instance de réplication Affiche l'instance de réplication qui sera utilisée.

Type de migration Sélectionnez la méthode de migration que vous souhaitezutiliser. Vous pouvez choisir de migrer simplementles données existantes vers la base de données cibleou d'envoyer les modifications continues à la base dedonnées cible en plus des données migrées.

Démarrer tâche sur créer Lorsque cette option est sélectionnée, la tâche commencedès qu'elle a été créée.

2. Cliquez sur l'onglet Paramètres de tâche, illustré ci-après et précisez des valeurs pour votre table cible,la prise en charge LOB et pour activer la journalisation. Les paramètres de la tâche affichés dépendentde la valeur de Type de migration que vous sélectionnez. Par exemple, lorsque vous sélectionnezMigrate existing data, les options suivantes s'affichent :

Pour cette option Procédez comme suit

Mode de préparation des tables cibles Ne rien faire : les données et métadonnées des tablescibles ne sont pas modifiées.

Supprimer les tables sur la cible : les tables sontsupprimées et de nouvelles tables sont créées à leur place.

Tronquer : les tables sont tronquées sans incidence sur lesmétadonnées de la table.

Inclure les colonnes LOB dans laréplication

Ne pas inclure les colonnes LOB : les colonnes LOB serontexclues de la migration.

Version de l'API API Version 2016-01-0134

Page 42: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Création d'une tâche

Pour cette option Procédez comme suitMode LOB complet : migre les LOB complets quelleque soit leur taille. Les LOB sont migrés sous forme defragments par blocs contrôlés par la taille de bloc du LOB.Cette méthode est plus lente que l'utilisation du mode LOBlimité.

Mode LOB limité : tronque les LOB à la « Taille maximaledu LOB ». Cette méthode est plus rapide que l'utilisationdu mode LOB complet.

Taille maximale du LOB (ko) En Mode LOB limité, les colonnes LOB qui dépassent leparamètre de Taille maximale du LOB seront tronquées àla taille maximale de LOB spécifiée.

Activer la journalisation Autorise la journalisation par Amazon CloudWatch.

Lorsque vous sélectionnez Migrate existing data and replicate comme Type de migration, les optionssuivantes s'affichent :

Version de l'API API Version 2016-01-0135

Page 43: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Création d'une tâche

Pour cette option Procédez comme suit

Mode de préparation des tables cibles Ne rien faire : les données et métadonnées des tablescibles ne sont pas modifiées.

Supprimer les tables sur la cible : les tables sontsupprimées et de nouvelles tables sont créées à leur place.

Tronquer : les tables sont tronquées sans incidence sur lesmétadonnées de la table.

Arrêter la tâche après la fin duchargement complet

Don't stop : n'arrête pas la tâche, applique immédiatementles modifications mises en cache et continue.

Stop before applying cached changes : arrête la tâcheavant l'application des modifications mises en cache. Vouspouvez ainsi ajouter des index secondaires qui peuventaccélérer l'application des modifications.

Stop after applying cached changes : arrête la tâcheaprès l'application des modifications mises en cache.Vous pouvez ainsi ajouter des clés étrangères, desdéclencheurs, etc. si vous utilisez Transactional Apply(Application transactionnelle).

Inclure les colonnes LOB dans laréplication

Ne pas inclure les colonnes LOB : les colonnes LOB serontexclues de la migration.

Mode LOB complet : migre les LOB complets quelleque soit leur taille. Les LOB sont migrés sous forme defragments par blocs contrôlés par la taille de bloc du LOB.Cette méthode est plus lente que l'utilisation du mode LOBlimité.

Mode LOB limité : tronque les LOB à la « Taille maximaledu LOB ». Cette méthode est plus rapide que l'utilisationdu mode LOB complet.

Taille maximale du LOB (ko) En Mode LOB limité, les colonnes LOB qui dépassent leparamètre de Taille maximale du LOB seront tronquées àla taille maximale de LOB spécifiée.

Activer la journalisation Autorise la journalisation par Amazon CloudWatch.

3. Cliquez sur l'onglet Mappages de table illustré ci-après, afin de définir les valeurs de mappage deschéma et la méthode de mappage. Si vous sélectionnez Personnalisé, vous pouvez spécifier lesvaleurs de schéma et de table cible. Pour plus d'informations sur le mappage de table, consultez lapage Utilisation du mappage de table pour spécifier des paramètres de tâche (p. 363).

Version de l'API API Version 2016-01-0136

Page 44: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSurveiller votre tâche

4. Une fois que vous avez fini avec les paramètres de la tâche, sélectionnez Créer tâche.

Surveiller votre tâcheSi vous sélectionnez Démarrer tâche sur créer lorsque vous créez une tâche, celle-ci commenceimmédiatement à migrer vos données lorsque vous sélectionnez Créer tâche. Vous pouvez afficher desstatistiques et des informations concernant la supervision pour votre tâche en choisissant la tâche en coursd'exécution dans AWS Management Console. La capture d'écran suivante présente les statistiques detable d'une migration de base de données. Pour plus d'informations concernant la supervision, consultezSurveillance des tâches AWS DMS (p. 407)

Version de l'API API Version 2016-01-0137

Page 45: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Sécurité dansAWS Database Migration Service

Chez AWS, la sécurité dans le cloud est notre priorité numéro 1. En tant que client AWS, vousbénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences desorganisations les plus pointilleuses en termes de sécurité.

La sécurité est une responsabilité partagée entre AWS et vous-même. Le modèle de responsabilitépartagée décrit ceci comme la sécurité du cloud et la sécurité dans le cloud :

• Sécurité du cloud – AWS est responsable de la protection de l'infrastructure qui exécute des servicesAWS dans le cloud AWS. AWS vous fournit également les services que vous pouvez utiliser en toutesécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans lecadre des programmes de conformité AWS. Pour en savoir plus sur les programmes de conformité quis'appliquent à AWS DMS, consultez Services AWS concernés par le programme de conformité.

• Sécurité dans le cloud – Votre responsabilité est déterminée par le service AWS que vous utilisez. Vousêtes également responsable d'autres facteurs, y compris la sensibilité de vos données, les exigences devotre organisation, et la législation et la réglementation applicables.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lorsde l'utilisation de AWS DMS. Les rubriques suivantes vous montrent comment configurer AWS DMS pourrépondre à vos objectifs de sécurité et de conformité. Vous pouvez également apprendre à utiliser d'autresservices AWS qui vous permettent de surveiller et de sécuriser vos ressources AWS DMS.

Vous pouvez gérer l'accès à vos ressources AWS DMS et à vos bases de données. La méthode que vousutilisez pour gérer l'accès dépend de la tâche de réplication que vous devez effectuer avec AWS DMS:

• Utilisez des stratégies AWS Identity and Access Management (IAM) pour attribuer des autorisations quidéterminent qui est autorisé à gérer les ressources AWS DMS. AWS DMS exige que vous disposiez desautorisations appropriées si vous vous connectez en tant qu'utilisateur IAM. Par exemple, vous pouvezutiliser IAM pour déterminer qui est autorisé à créer, décrire, modifier et supprimer des instances etclusters de base de données, attribuer des balises à des ressources ou modifier des groupes de sécurité.Pour plus d'informations sur IAM et sur son utilisation avec AWS DMS, consultez Gestion des identités etdes accès pour AWS Database Migration Service (p. 41).

• AWS DMS utilise Secure Sockets Layer (SSL) pour vos connexions de point de terminaison avecTransport Layer Security (TLS). Pour de plus amples informations sur l'utilisation de SSL/TLS avec AWSDMS, consultez Utilisation du protocole SSL avec AWS Database Migration Service (p. 81).

• AWS DMS utilise des clés de chiffrement AWS Key Management Service (AWS KMS) pour chiffrerle stockage utilisé par votre instance de réplication et ses informations de connexion au point determinaison. AWS DMS utilise également des clés de chiffrement AWS KMS pour sécuriser les donnéescibles au repos pour Amazon S3 et les points de terminaison Amazon Redshift cibles. Pour plusd'informations, consultez Définition d'une clé de chiffrement et spécification des autorisations AWSKMS (p. 78).

• AWS DMS crée toujours votre instance de réplication dans un Virtual Private Cloud (VPC) basé sur leservice Amazon Virtual Private Cloud (Amazon VPC) pour optimiser le contrôle d'accès au réseau. Pourles instances de base de données et les clusters d'instances, utilisez le même VPC que votre instancede réplication ou des VPC supplémentaires pour atteindre ce niveau de contrôle d'accès. ChaqueAmazon VPC que vous utilisez doit être associé à un groupe de sécurité dont les règles permettent àtout le trafic sur tous les ports de quitter le VPC. Cette approche permet la communication de l'instancede réplication avec vos points de terminaison de base de données source et cible, tant que les bonnesrègles de trafic entrant sont activées sur ces points de terminaison.

Version de l'API API Version 2016-01-0138

Page 46: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurProtection des données

Pour plus d'informations sur les configurations réseau disponibles pour AWS DMS, consultezConfiguration d'un réseau pour une instance de réplication (p. 101). Pour plus d'informations sur lacréation d'une instance de base de données ou d'un cluster d'instances dans un VPC, consultez ladocumentation sur la sécurité et la gestion des clusters de vos bases de données Amazon dans ladocumentation AWS. Pour plus d'informations sur les configurations réseau prises en charge par AWSDMS, consultez Configuration d'un réseau pour une instance de réplication (p. 101).

• Pour afficher les journaux de migration de base de données, vous avez besoin des autorisationsAmazon CloudWatch Logs appropriées pour le rôle IAM que vous utilisez. Pour plus d'informations surla journalisation pour AWS DMS, consultez Surveillance des tâches de réplication à l'aide d'AmazonCloudWatch (p. 409).

Rubriques• Protection des données dans AWS Database Migration Service (p. 39)• Gestion des identités et des accès pour AWS Database Migration Service (p. 41)• Journalisation et surveillance dans AWS Database Migration Service (p. 61)• Validation de la conformité pour AWS Database Migration Service (p. 63)• Résilience dans AWS Database Migration Service (p. 63)• Sécurité de l'infrastructure dans AWS Database Migration Service (p. 64)• Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64)• Création de rôles IAM à utiliser avec l'AWS CLI et l'API AWS DMS (p. 68)• Contrôle précis des accès à l'aide des noms de ressources et des balises (p. 71)• Définition d'une clé de chiffrement et spécification des autorisations AWS KMS (p. 78)• Sécurité de réseau pour AWS Database Migration Service (p. 80)• Utilisation du protocole SSL avec AWS Database Migration Service (p. 81)• Modification du mot de passe de base de données (p. 89)

Protection des données dansAWS Database Migration Service

AWS DMS est conforme au modèle de responsabilité partagée AWS, qui comprend des directives et desréglementations pour la protection des données. AWS est responsable de la protection de l'infrastructureglobale qui exécute tous les services AWS. AWS conserve le contrôle des données hébergées sur cetteinfrastructure, y compris les contrôles de configuration de sécurité pour traiter le contenu et les donnéespersonnelles des clients. Les clients AWS et les partenaires APN (AWS Partner Network), qu'ils agissenten tant que contrôleurs ou responsables du traitement des données, sont responsables de toutes lesdonnées personnelles qu'ils mettent sur le cloud AWS.

Pour la protection des données, nous vous recommandons de protéger vos informations d’identificationde compte AWS et de définir des mandataires avec AWS Identity and Access Management (IAM). Celasignifie que chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour les besoinsde ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :

• Utilisez l'authentification multi-facteurs (MFA) avec chaque compte.• Utilisez SSL/TLS pour communiquer avec des ressources AWS.• Configurez l'API et la consignation des activités utilisateur avec AWS CloudTrail.• Utilisez des solutions de chiffrement AWS, ainsi que tous les contrôles de sécurité par défaut au sein des

services AWS.

Version de l'API API Version 2016-01-0139

Page 47: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurChiffrement des données

• Utilisez des services de sécurité gérés comme Amazon Macie, qui contribue à la découverte et à lasécurisation des données personnelles stockées dans Amazon S3.

Nous vous recommandons vivement de ne jamais placer d'informations d'identification sensibles, tellesque les numéros de compte de vos clients, dans les champs en texte libre d'une base de données. Cetterecommandation s'applique en particulier lorsque vous travaillez avec des services de base de donnéesAWS utilisés comme points de terminaison AWS DMS source à partir de la console, de l'API, de l'AWSCLI ou des kits SDK AWS. Toutes les données que vous entrez dans ces services de base de donnéespeuvent être récupérées pour insertion dans les journaux de diagnostic. Lorsque vous fournissez une URLà un serveur externe, n'ajoutez pas d'informations d'identification non chiffrées dans l'URL pour valider lademande à ce serveur.

Pour en savoir plus sur la protection des données, consultez le billet de blog Modèle de responsabilitépartagée AWS et RGPD sur le blog sur la sécurité d'AWS.

Chiffrement des donnéesVous pouvez activer le chiffrement des ressources de données des points de terminaison AWS DMScibles pris en charge. AWS DMS chiffre également les connexions à AWS DMS et entre tous ses points determinaison AWS DMS source et cible. En outre, vous pouvez gérer les clés utilisées par AWS DMS et lespoints de terminaison cibles pris en charge pour activer ce chiffrement.

Rubriques• Chiffrement au repos (p. 40)• Chiffrement en transit (p. 40)• Gestion des clés (p. 41)

Chiffrement au reposAWS DMS prend en charge le chiffrement au repos en vous permettant de spécifier le mode de chiffrementcôté serveur que vous souhaitez utiliser pour envoyer les données répliquées à Amazon S3 avantleur copie vers les points de terminaison AWS DMS cibles pris en charge. Pour spécifier ce modede chiffrement, définissez l'attribut de connexion supplémentaire encryptionMode pour le point determinaison. Si ce paramètre encryptionMode spécifie le mode de chiffrement des clés KMS, vouspouvez également créer des clés KMS personnalisées spécifiquement pour chiffrer les données cibles pourles points de terminaison AWS DMS cibles suivants :

• Amazon Redshift –Pour plus d'informations sur la configuration du mode encryptionMode, consultezAttributs de connexion supplémentaires lors de l'utilisation de Amazon Redshift en tant que ciblepour AWS DMS (p. 237). Pour plus d'informations sur la création d'une clé de chiffrement KMSpersonnalisée, consultez Création et utilisation de clés AWS KMS pour chiffrer des données ciblesAmazon Redshift (p. 232).

• Amazon S3 –Pour plus d'informations sur la configuration du mode encryptionMode, consultezAttributs de connexion supplémentaires lors de l'utilisation de Amazon S3 en tant que cible pour AWSDMS (p. 257). Pour plus d'informations sur la création d'une clé de chiffrement KMS personnalisée,consultez Création de clés AWS KMS pour chiffrer des objets cibles Amazon S3 (p. 251).

Chiffrement en transitAWS DMS prend en charge le chiffrement en transit et veille ainsi à ce que les données qu'il réplique sedéplacent en toute sécurité du point de terminaison source vers le point de terminaison cible. Cela inclut lechiffrement d'un compartiment S3 sur l'instance de réplication utilisée par votre tâche de réplication pourle stockage intermédiaire lorsque les données se déplacent dans le pipeline de réplication. Pour chiffrerles connexions de tâches aux points de terminaison source et cible, AWS DMS utilise le protocole Secure

Version de l'API API Version 2016-01-0140

Page 48: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfidentialité du trafic inter-réseaux

Socket Layer (SSL) avec Transport Layer Security (TLS). En chiffrant les connexions aux deux points determinaison, AWS DMS garantit la sécurisation de vos données lorsqu'elles se déplacent à la fois du pointde terminaison source vers la tâche de réplication et de la tâche de réplication vers le point de terminaisoncible. Pour de plus amples informations sur l'utilisation de SSL/TLS avec AWS DMS, consultez Utilisationdu protocole SSL avec AWS Database Migration Service (p. 81).

AWS DMS prend en charge les clés par défaut et les clés personnalisées pour chiffrer à la fois le stockagede réplication intermédiaire et les informations de connexion. La gestion de ces clés s'effectue viaAWS KMS. Pour plus d'informations, consultez Définition d'une clé de chiffrement et spécification desautorisations AWS KMS (p. 78).

Gestion des clésAWS DMS prend en charge les clés par défaut ou les clés personnalisées pour chiffrer le stockagede réplication, les informations de connexion et le stockage de données cible pour certains points determinaison cibles. La gestion de ces clés s'effectue via AWS KMS. Pour plus d'informations, consultezDéfinition d'une clé de chiffrement et spécification des autorisations AWS KMS (p. 78).

Confidentialité du trafic inter-réseauxLes connexions bénéficient d'une protection entre les points de terminaison AWS DMS source et cibledans la même région AWS, qu'elles s'exécutent sur site ou dans le cadre d'un service AWS dans le cloud.Notez qu'au moins un point de terminaison, une source ou une cible doit être exécuté dans le cadre d'unservice AWS dans le cloud. Cette protection s'applique que ces composants partagent le même VirtualPrivate Cloud (VPC) ou qu'ils existent dans des VPC distincts, dans la mesure où les VPC se trouventtous dans la même région AWS. Pour plus d'informations sur les configurations réseau prises en chargepour AWS DMS, consultez Configuration d'un réseau pour une instance de réplication (p. 101). Pour plusd'informations sur les considérations de sécurité lors de l'utilisation de ces configurations réseau, consultezSécurité de réseau pour AWS Database Migration Service (p. 80).

Gestion des identités et des accès pourAWS Database Migration Service

AWS Identity and Access Management (IAM) est un service AWS qui permet à un administrateur decontrôler en toute sécurité l'accès aux ressources AWS. Les administrateurs IAM contrôlent qui peut êtreauthentifié (connecté) et autorisé (disposant des autorisations) à utiliser les ressources AWS DMS. IAM estun service AWS que vous pouvez utiliser sans frais supplémentaires.

Rubriques• Public ciblé (p. 41)• Authentification avec des identités (p. 42)• Gestion de l'accès à l'aide de stratégies (p. 44)• Fonctionnement d'AWS Database Migration Service fonctionne avec IAM (p. 46)• Exemples de stratégies AWS Database Migration Service basées sur l'identité (p. 50)• Exemples de stratégies basées sur les ressources pour AWS KMS (p. 56)• Résolution des problèmes d'identité et d'accès AWS Database Migration Service (p. 59)

Public cibléVotre utilisation d'AWS Identity and Access Management (IAM) évolue selon la tâche que vous réalisezdans AWS DMS.

Version de l'API API Version 2016-01-0141

Page 49: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAuthentification avec des identités

Utilisateur du service – Si vous utilisez le service AWS DMS pour effectuer votre tâche, votre administrateurvous fournit les informations d'identification et les autorisations dont vous avez besoin. Plus vous utiliserezde fonctionnalités AWS DMS pour effectuer votre travail, plus vous pourrez avoir besoin d'autorisationssupplémentaires. Comprendre la gestion des accès peut vous aider à demander à votre administrateur lesautorisations appropriées. Si vous ne pouvez pas accéder à une fonctionnalité dans AWS DMS, consultezRésolution des problèmes d'identité et d'accès AWS Database Migration Service (p. 59).

Administrateur du service –Si vous êtes le responsable des ressources AWS DMS de votre entreprise,vous bénéficiez probablement d'un accès total à AWS DMS. C'est à vous de déterminer les fonctionnalitéset les ressources AWS DMS auxquelles vos employés pourront accéder. Vous devez ensuite soumettreles demandes à votre administrateur IAM pour modifier les autorisations des utilisateurs de votre service.Consultez les informations sur cette page pour comprendre les concepts de base d'IAM. Pour en savoirplus sur la façon dont votre entreprise peut utiliser IAM avec AWS DMS, consultez Fonctionnementd'AWS Database Migration Service fonctionne avec IAM (p. 46).

Administrateur IAM – Si vous êtes un administrateur IAM, vous souhaiterez peut-être obtenir des détails surla façon dont vous pouvez écrire des stratégies pour gérer l'accès à AWS DMS. Pour obtenir des exemplesde stratégies AWS DMS basées sur l'identité que vous pouvez utiliser dans IAM, consultez Exemples destratégies AWS Database Migration Service basées sur l'identité (p. 50).

Authentification avec des identitésL'authentification correspond au processus par lequel vous vous connectez à AWS via vos informationsd'identification. Pour plus d'informations sur la signature à l’aide d’AWS Management Console, consultezLa console et la page de connexion IAM dans le IAM Guide de l'utilisateur.

Vous devez être authentifié (connecté à AWS) en tant que Utilisateur racine d'un compte AWS ouutilisateurIAM, ou en assumant un rôle IAM. Vous pouvez également utiliser l’authentification de connexionunique de votre entreprise ou vous connecter via Google ou Facebook. Dans ce cas, votre administrateuraura précédemment configuré une fédération d’identités avec des rôles IAM. Lorsque vous accédez à AWSavec des informations d’identification d’une autre entreprise, vous assumez indirectement un rôle.

Pour vous connecter directement à la AWS Management Console, utilisez votre mot de passe avec votree-mail utilisateur racine ou votre nom d’utilisateur IAM. Vous pouvez accéder à AWS par programmationavec vos clés d’accès utilisateur utilisateur racine ou IAM. AWS fournit un kit de développement logiciel(SDK) et des outils de ligne de commande pour signer de manière cryptographique votre requête avec vosinformations d'identification. Si vous n'utilisez pas les outils AWS, vous devez signer la demande vous-même. Pour ce faire, utilisez Signature Version 4, un protocole permettant d’authentifier les demandesd'API entrantes. Pour en savoir plus sur l'authentification des demandes, consultez Processus de signatureSignature Version 4 dans la documentation AWS General Reference.

Quelle que soit la méthode d'authentification que vous utilisez, vous devrez peut-être également fournir desinformations de sécurité supplémentaires. Par exemple, AWS vous recommande d'utiliser l'authentificationmulti-facteurs (MFA) pour améliorer la sécurité de votre compte. Pour en savoir plus, consultez Utilisationde Multi-Factor Authentication (MFA) dans AWS dans le IAM Guide de l'utilisateur.

Utilisateur racine d'un compte AWSLorsque vous créez un compte AWS, vous commencez avec une seule identité de connexion disposantd'un accès complet à tous les services et ressources AWS du compte. Cette identité est appelée lautilisateur racinedu compte AWS et elle est accessible après connexion à l'aide de l'adresse e-mail et dumot de passe utilisés pour la création du compte. Il est vivement recommandé de ne pas utiliser l'utilisateurracine pour vos tâches quotidiennes, y compris pour les tâches administratives. Au lieu de cela, respectezla bonne pratique qui consiste à avoir recours à l'utilisateur racine uniquement pour créer le premierutilisateurIAM. Ensuite, mettez en sécurité les informations d'identification de l'utilisateur racine et utilisez-les pour effectuer uniquement certaines tâches de gestion des comptes et des services.

Version de l'API API Version 2016-01-0142

Page 50: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAuthentification avec des identités

Utilisateurs et groupes IAMUn utilisateur IAM est une identité dans votre compte AWS qui dispose d'autorisations spécifiques pourune seule personne ou application. Un utilisateur IAM peut disposer d'informations d'identification à longterme comme un nom d'utilisateur et un mot de passe ou un ensemble de clés d'accès. Pour savoircomment générer des clés d'accès, consultez Gestion des clés d’accès pour les utilisateurs IAM dans leIAM Guide de l'utilisateur. Lorsque vous générez des clés d'accès pour un utilisateur IAM, veillez à afficheret enregistrer la paire de clés de manière sécurisée. Vous ne pourrez plus récupérer la clé d'accès secrèteà l'avenir. Au lieu de cela, vous devrez générer une nouvelle paire de clés d'accès.

Un groupe IAM est une identité qui spécifie un ensemble d’utilisateurs IAM. Vous ne pouvez pas vousconnecter en tant que groupe. Vous pouvez utiliser les groupes pour spécifier des autorisations pourplusieurs utilisateurs à la fois. Les groupes permettent de gérer plus facilement les autorisations pourde grands ensembles d'utilisateurs. Par exemple, vous pouvez avoir un groupe nommé Admins IAM etaccorder à ce groupe les autorisations leur permettant d'administrer des ressources IAM.

Les utilisateurs sont différents des rôles. Un utilisateur est associé de manière unique à une personneou une application, alors qu’un rôle est conçu pour être endossé par tout utilisateur qui en a besoin.Les utilisateurs disposent d'informations d'identification permanentes, mais les rôles fournissent desinformations d'identification temporaires. Pour plus de détails, consultez Quand créer un utilisateur IAM (aulieu d'un rôle) dans le IAM Guide de l'utilisateur.

Rôles IAMUn rôle IAM est une entité au sein de votre compte AWS qui dispose d'autorisations spécifiques. Leconcept ressemble à celui d’utilisateur IAM, mais un rôle n'est pas associé à une personne en particulier.Vous pouvez temporairement endosser un rôle IAM dans l’AWS Management Console grâce auchangement de rôle. Vous pouvez obtenir un rôle en appelant une opération d’API AWS CLI ou AWS àl'aide d'une URL personnalisée. Pour plus d'informations sur les méthodes d'utilisation des rôles, consultezUtilisation de rôles IAM dans le IAM Guide de l'utilisateur.

Les rôles IAM avec des informations d'identification temporaires sont utiles dans les cas suivants :

• Autorisations utilisateur IAM temporaires – Un utilisateur IAM peut endosser un rôle IAM pour accepterdifférentes autorisations temporaires concernant une tâche spécifique.

• Accès d'utilisateurs fédérés – Au lieu de créer un utilisateur IAM, vous pouvez utiliser des identitésd'utilisateur préexistantes provenant d'AWS Directory Service, de l'annuaire d'utilisateurs de votreentreprise ou d'un fournisseur d'identité web. On parle alors d'utilisateurs fédérés. AWS attribue un rôleà un utilisateur fédéré lorsque l'accès est demandé via un fournisseur d'identité. Pour plus d'informationssur les utilisateurs fédérés, consultez Utilisateurs fédérés et rôles dans le IAM Guide de l'utilisateur.

• Accès entre comptes – Vous pouvez utiliser un rôle IAM pour permettre à un utilisateur (mandatairede confiance) d'un compte différent d'accéder aux ressources de votre compte. Les rôles constituentle principal moyen d'accorder l'accès entre plusieurs comptes. Toutefois, certains services AWS vouspermettent d'attacher une stratégie directement à une ressource (au lieu d'utiliser un rôle en tant queproxy). Pour en savoir plus sur la différence entre les rôles et les stratégies basées sur les ressourcespour l'accès entre comptes, consultez Différence entre les rôles IAM et les stratégies basées sur lesressources dans le IAM Guide de l'utilisateur.

• Accès à un service AWS –Un rôle de service est un rôle IAM qu'un service assume pour effectuer desactions dans votre compte en votre nom. Lorsque vous configurez certains environnements de servicesAWS, vous devez définir un rôle que ce service devra assumer. Ce rôle de service doit comprendretoutes les autorisations nécessaires pour que le service puisse accéder aux ressources AWS dont il abesoin. Les rôles de service varient d'un service à un service, mais nombre d'entre eux vous permettentde choisir vos autorisations, tant que vous respectez les exigences documentées pour le service enquestion. Les rôles de service fournissent un accès uniquement au sein de votre compte et ne peuventpas être utilisés pour accorder l'accès à des services dans d'autres comptes. Vous créez, modifiezet supprimez un rôle de service à partir d'IAM. Par exemple, vous pouvez créer un rôle qui permet àAmazon Redshift d'accéder à un compartiment Amazon S3 en votre nom, puis de charger les données

Version de l'API API Version 2016-01-0143

Page 51: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurGestion de l'accès à l'aide de stratégies

stockées dans ce compartiment dans un cluster Amazon Redshift. Pour plus d'informations, consultezCréation d'un rôle pour déléguer des autorisations à un service AWS dans le IAM Guide de l'utilisateur.

• Applications qui s'exécutent sur Amazon EC2 –Vous pouvez utiliser un rôle IAM pour gérer desinformations d'identification temporaires pour les applications qui s'exécutent sur une instance EC2 eteffectuent des demandes d'API AWS CLI ou AWS. Cette solution est préférable au stockage des clésd'accès au sein de l'instance EC2. Pour attribuer un rôle AWS à une instance EC2 et le rendre disponibleà toutes les applications associées, vous pouvez créer un profil d'instance attaché à l'instance. Un profild'instance contient le rôle et permet aux programmes qui s'exécutent sur l'instance EC2 d'obtenir desinformations d'identification temporaires. Pour plus d'informations, consultez Utilisation d'un rôle IAMpour accorder des autorisations à des applications s'exécutant sur des instances Amazon EC2 dans leIAM Guide de l'utilisateur.

Pour savoir si vous devez utiliser ces rôles IAM ou non, consultez Quand créer un rôle IAM (au lieu d'unutilisateur) dans le IAM Guide de l'utilisateur.

Gestion de l'accès à l'aide de stratégiesVous contrôlez les accès dans AWS en créant des stratégies et en les attachant à des identités IAM ouà des ressources AWS. Une stratégie est un objet dans AWS qui, lorsqu'il est associé à une identité ouà une ressource, définit les autorisations de ces dernières. AWS évalue ces stratégies lorsqu'une entité(utilisateur racine, utilisateur IAM ou rôle IAM) envoie une demande. Les autorisations dans les stratégiesdéterminent si la demande est autorisée ou refusée. La plupart des stratégies sont stockées dans AWS entant que documents JSON. Pour plus d'informations sur la structure et le contenu du document de stratégieJSON, consultez Présentation des stratégies JSON dans le IAM Guide de l'utilisateur.

Les stratégies permettent à un administrateur IAM de spécifier qui a accès aux ressources AWSet quellesactions ces personnes peuvent exécuter sur ces ressources. Chaque entité IAM (utilisateur ou rôle)démarre sans autorisation. En d'autres termes, par défaut, les utilisateurs ne peuvent rien faire, pasmême changer leurs propres mots de passe. Pour autoriser un utilisateur à effectuer une opération, unadministrateur doit associer une stratégie d'autorisations à ce dernier. Il peut également ajouter l'utilisateurà un groupe disposant des autorisations prévues. Lorsqu'un administrateur accorde des autorisations à ungroupe, tous les utilisateurs de ce groupe se voient octroyer ces autorisations.

Les stratégies IAM définissent les autorisations d'une action quelle que soit la méthode que vous utilisezpour exécuter l'opération. Par exemple, supposons que vous disposiez d'une stratégie qui autorise l'actioniam:GetRole. Un utilisateur avec cette stratégie peut obtenir des informations utilisateur à partir de l’AWSManagement Console, de l’AWS CLI ou de l’API AWS.

Stratégies basées sur l'identitéLes stratégies basées sur l'identité sont des documents de stratégie d'autorisations JSON que vous pouvezattacher à une identité telle qu'un utilisateur, un rôle ou un groupe IAM. Ces stratégies contrôlent lesactions que peut exécuter cette identité, sur quelles ressources et dans quelles conditions. Pour découvrircomment créer une stratégie basée sur l’identité, consultez Création de stratégies IAM dans le IAM Guidede l'utilisateur.

Les stratégies basées sur l'identité peuvent être classées comme étant des stratégies en ligne ou desstratégies gérées. Les stratégies en ligne sont intégrées directement à un utilisateur, groupe ou rôle. Lesstratégies gérées sont des stratégies autonomes que vous pouvez lier à plusieurs utilisateurs, groupes etrôles de votre compte AWS. Les stratégies gérées incluent les stratégies gérées par AWS et les stratégiesgérées par le client. Pour découvrir comment choisir entre une politique gérée ou une politique en ligne,consultez Choix entre les stratégies gérées et les stratégies en ligne dans le IAM Guide de l'utilisateur.

Stratégies basées sur une ressourceLes stratégies basées sur les ressources sont des documents de stratégie JSON que vous attachez àune ressource, telle qu'un compartiment Amazon S3. Les administrateurs de service peuvent utiliser ces

Version de l'API API Version 2016-01-0144

Page 52: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurGestion de l'accès à l'aide de stratégies

stratégies pour définir les actions qu'un principal (membre de compte, utilisateur ou rôle) spécifié peuteffectuer sur cette ressource et dans quelles conditions. Les stratégies basées sur les ressources sont desstratégies en ligne. Il ne s'agit pas de stratégies gérées basées sur les ressources.

Listes de contrôle d'accès (ACL)Les listes de contrôle d’accès (ACL) constituent un type de stratégie permettant de définir les mandataires(membres de compte, utilisateurs ou rôles) ayant l’autorisation d’accéder à une ressource. Les listes decontrôle d'accès sont semblables aux stratégies basées sur les ressources, bien qu'elles n'utilisent pasle format de document de stratégie JSON. Amazon S3, AWS WAF et Amazon VPC sont des exemplesde services prenant en charge les listes de contrôle d'accès. Pour en savoir plus sur les listes de contrôled'accès, consultez Présentation de la liste de contrôle d'accès (ACL) dans le Manuel du développeurAmazon Simple Storage Service.

Autres types de stratégieAWS prend en charge d'autres types de stratégies moins courantes. Ces types de stratégies peuventdéfinir le nombre maximal d'autorisations qui vous sont accordées par des types de stratégies pluscourants.

• Limite d'autorisations – Une limite d'autorisations est une fonctionnalité avancée dans laquelle vousdéfinissez les autorisations maximales qu'une stratégie basée sur l'identité peut accorder à uneentité IAM (utilisateur ou rôle IAM). Vous pouvez définir une limite d'autorisations pour une entité. Lesautorisations obtenues représentent la combinaison des stratégies basées sur l'identité de l'entité et deses limites d'autorisations. Les stratégies basées sur les ressources qui spécifient l'utilisateur ou le rôledans le champ Principal ne sont pas limitées par les limites d'autorisations. Un refus explicite dansl'une de ces stratégies remplace l'autorisation. Pour plus d'informations sur les limites d'autorisations,consultez Limites d'autorisations pour des entités IAM dans le IAM Guide de l'utilisateur.

• Stratégies de contrôle de service (SCP) – Les SCP sont des stratégies JSON qui spécifient lenombre maximal d'autorisations pour une organisation ou une unité d'organisation (OU) dans AWSOrganizations. AWS Organizations est un service qui vous permet de regrouper et de gérer defaçon centralisée plusieurs comptes AWS détenus par votre entreprise. Si vous activez toutes lesfonctions d'une organisation, vous pouvez appliquer les stratégies de contrôle de service (SCP) à l'unou à l'ensemble de vos comptes. La SCP limite les autorisations pour les entités dans les comptesmembres, y compris dans chaque Utilisateur racine d'un compte AWS. Pour plus d'informations surles Organisations et les SCP, consultez Fonctionnement des stratégies de contrôle de service dans leManuel de l'utilisateur AWS Organizations.

• Stratégies de session – Les stratégies de session sont des stratégies avancées que vous transmettezen tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôleou un utilisateur fédéré. Les autorisations de la session obtenue sont une combinaison des stratégiesbasées sur l'identité de l'utilisateur ou du rôle et des stratégies de session. Les autorisations peuventégalement provenir d'une stratégie basée sur les ressources. Un refus explicite dans l'une de cesstratégies remplace l'autorisation. Pour de plus amples informations, veuillez consulter Stratégies desession dans le IAM Guide de l'utilisateur.

Plusieurs types de stratégieLorsque plusieurs types de stratégies s'appliquent à la requête, les autorisations obtenues sont pluscompliquées à comprendre. Pour découvrir la façon dont AWS détermine s'il convient d'autoriser unedemande en présence de plusieurs types de stratégies, consultez Logique d'évaluation de stratégies dansle IAM Guide de l'utilisateur.

Version de l'API API Version 2016-01-0145

Page 53: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS Database Migration Service

fonctionne avec IAM

Fonctionnement d'AWS Database Migration Servicefonctionne avec IAMAvant d'utiliser IAM pour gérer l'accès à AWS DMS, vous devez comprendre quelles sont les fonctionsIAM disponibles à utiliser avec AWS DMS. Pour obtenir une vue d'ensemble de la façon dont AWS DMS etd'autres services AWS fonctionnent avec IAM, consultez Services AWS qui fonctionnent avec IAM dans leIAM Guide de l'utilisateur.

Rubriques• Stratégies AWS DMS basées sur l'identité (p. 46)• Stratégies AWS DMS basées sur les ressources (p. 48)• Autorisation basée sur les balises AWS DMS (p. 49)• Rôles IAM pour AWS DMS (p. 49)

Stratégies AWS DMS basées sur l'identitéAvec les stratégies basées sur une identité IAM, vous pouvez spécifier des actions et ressourcesautorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées.AWS DMS prend en charge des actions, ressources et clés de condition spécifiques. Pour en savoir plussur tous les éléments que vous utilisez dans une stratégie JSON, consultez Références des éléments destratégie JSON IAM dans le IAM Guide de l'utilisateur.

Actions

L'élément Action d'une stratégie basée sur une identité IAM décrit les actions spécifiques qui serontautorisées ou refusées par la stratégie. Les actions de stratégie possèdent généralement le même nomque l'opération d'API AWS associée. L'action est utilisée dans une stratégie pour permettre d'effectuerl'opération associée.

Les actions de stratégie dans AWS DMS utilisent le préfixe suivant avant l'action : dms:. Parexemple, pour accorder à une personne l'autorisation de créer une tâche de réplication à l'aide del'opération d'API AWS DMS CreateReplicationTask, vous incluez l'action dans sa stratégiedms:CreateReplicationTask. Les déclarations de stratégie doivent inclure un élément NotActionou Action. AWS DMS définit son propre ensemble d'actions qui décrivent les tâches que vous pouvezeffectuer avec ce service.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit.

"Action": [ "dms:action1", "dms:action2"

Vous pouvez aussi spécifier plusieurs actions à l'aide de caractères génériques (*). Par exemple, pourspécifier toutes les actions qui commencent par le mot Describe, incluez l'action suivante.

"Action": "dms:Describe*"

Pour afficher une liste des actions AWS DMS, veuillez consulter Actions définies parAWS Database Migration Service dans le IAM Guide de l'utilisateur.

Version de l'API API Version 2016-01-0146

Page 54: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS Database Migration Service

fonctionne avec IAM

RessourcesL'élément Resource spécifie les objets auxquels l'action s'applique. Les instructions doivent inclure unélément Resource ou NotResource. Vous spécifiez une ressource à l'aide d'un ARN ou du caractèregénérique (*) pour indiquer que l'instruction s'applique à toutes les ressources.

AWS DMS fonctionne avec les ressources suivantes :

• Certificats• Points de terminaison• Abonnements aux événements• Instances de réplication• Groupes de sous-réseaux de réplication (sécurité)• Tâches de réplication

La ou les ressources AWS DMS requises dépendent de l'action ou des actions que vous appelez.Vous avez besoin d'une stratégie qui autorise ces actions au niveau de la ou des ressources associéesspécifiées par les ARN correspondants.

Par exemple, une ressource de point de terminaison AWS DMS possède l'ARN suivant :

arn:${Partition}:dms:${Region}:${Account}:endpoint/${InstanceId}

(Pour plus d'informations sur le format des ARN, consultez Noms ARN (Amazon Resource Name) etespaces de noms du service AWS.

Par exemple, pour spécifier l'instance de point de terminaison 1A2B3C4D5E6F7G8H9I0J1K2L3M de larégion use-east-2 dans votre instruction, utilisez l'ARN suivant.

"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/1A2B3C4D5E6F7G8H9I0J1K2L3M"

Pour spécifier tous les points de terminaison qui appartiennent à un compte spécifique, utilisez le caractèregénérique (*).

"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/*"

Certaines actions AWS DMS, telles que la création de ressources, ne peuvent pas être exécutées sur uneressource spécifique. Dans ce cas, vous devez utiliser le caractère générique (*).

"Resource": "*"

Certaines actions d'API AWS DMS impliquent plusieurs ressources. Par exemple,StartReplicationTask lance une tâche de réplication et la connecte à deux ressources de point determinaison de base de données (une source et une cible). Un utilisateur IAM doit donc disposer desautorisations nécessaires pour lire le point de terminaison source et écrire sur le point de terminaison cible.Pour spécifier plusieurs ressources dans une seule instruction, séparez leurs ARN par des virgules.

"Resource": [ "resource1", "resource2" ]

Pour plus d'informations sur le contrôle de l'accès aux ressources AWS DMS à l'aide de stratégies,consultez ??? (p. 71). Pour voir une liste des types de ressources AWS DMS et de leurs ARN, consultezRessources définies par AWS Database Migration Service dans le IAM Guide de l'utilisateur. Pour en

Version de l'API API Version 2016-01-0147

Page 55: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS Database Migration Service

fonctionne avec IAM

savoir plus sur les actions avec laquelle vous pouvez spécifier l'ARN de chaque ressource, consultezActions définies par AWS Database Migration Service.

Clés de conditionL'élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’uneinstruction est appliquée. L'élément Condition est facultatif. Vous pouvez créer des expressionsconditionnelles qui utilisent des opérateurs de condition, comme égal ou inférieur, pour faire correspondrela condition de la stratégie aux valeurs de la demande.

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seulélément Condition, AWS les évalue à l'aide d'une opération AND logique. Si vous spécifiez plusieursvaleurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une opération OR logique.Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soientaccordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Parexemple, vous pouvez accorder à un utilisateur IAM l'autorisation d'accéder à une ressource uniquementsi elle est balisée avec son nom d’utilisateur IAM . Pour de plus amples informations, veuillez consulterÉléments des stratégies IAM : variables et balises dans le Guide de l'utilisateur IAM.

AWS DMS définit son propre ensemble de clés de condition et prend également en charge l'utilisation desclés de condition globales. Pour voir toutes les clés de condition globales AWS, consultez Clés de contextede condition globales AWS dans le IAM Guide de l'utilisateur.

AWS DMS définit un ensemble de balises standard que vous pouvez utiliser dans ses clés de condition. Ilvous permet également de définir vos propres balises personnalisées. Pour plus d'informations, consultezUtilisation des balises pour contrôler l'accès (p. 73).

Pour voir une liste de clés de conditions AWS DMS, consultez Clés de condition pourAWS Database Migration Service dans le IAM Guide de l'utilisateur. Pour déterminer les actions etressources avec lesquelles vous pouvez utiliser une clé de condition, consultez Actions définies parAWS Database Migration Service et Ressources définies par AWS Database Migration Service.

Exemples

Pour voir des exemples de stratégies AWS DMS basées sur l'identité, veuillez consulter Exemples destratégies AWS Database Migration Service basées sur l'identité (p. 50).

Stratégies AWS DMS basées sur les ressourcesLes stratégies basées sur les ressources sont des documents de stratégie JSON qui spécifient les actionsqu'un mandataire prédéfini peut effectuer sur une ressource AWS DMS donnée et dans quelles conditions.AWS DMS prend en charge les stratégies d'autorisation basées sur les ressources pour les clés dechiffrement AWS KMS que vous créez afin de chiffrer les données migrées vers les points de terminaisoncibles pris en charge. Les points de terminaison cibles pris en charge incluent Amazon Redshift et AmazonS3. Grâce aux stratégies basées sur les ressources, vous pouvez accorder l'autorisation d'utiliser ces clésde chiffrement à d'autres comptes pour chaque point de terminaison cible.

Pour permettre un accès entre comptes, vous pouvez spécifier un compte entier ou des entités IAMdans un autre compte en tant que mandataire dans une stratégie basée sur les ressources. L'ajout d'unmandataire entre comptes à une stratégie basée sur les ressources ne représente qu'une partie del'instauration de la relation d'approbation. Lorsque le mandataire et la ressource se trouvent dans descomptes AWS différents, vous devez également accorder à l'entité mandataire l'autorisation d'accéder à laressource. Accordez l'autorisation en attachant une stratégie basée sur les identités à l'entité. Toutefois, siune stratégie basée sur des ressources accorde l'accès à un mandataire dans le même compte, aucuneautre stratégie basée sur l'identité n'est requise. Pour plus d'informations, consultez Différence entre lesrôles IAM et les stratégies basées sur les ressources dans le IAM Guide de l'utilisateur.

Version de l'API API Version 2016-01-0148

Page 56: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFonctionnement d'AWS Database Migration Service

fonctionne avec IAM

Le service AWS DMS prend en charge un seul type de stratégie basée sur les ressources, nomméstratégie de clé, qui est associé à une clé de chiffrement AWS KMS. Cette stratégie définit les entitésprincipales (comptes, utilisateurs, rôles et utilisateurs fédérés) qui peuvent chiffrer les données migrées surle point de terminaison cible pris en charge.

Pour découvrir comment associer une stratégie basée sur les ressources à une clé de chiffrement quevous créez pour les points de terminaison cibles pris en charge, consultez Création et utilisation de clésAWS KMS pour chiffrer des données cibles Amazon Redshift (p. 232) et Création de clés AWS KMS pourchiffrer des objets cibles Amazon S3 (p. 251).

Exemples

Pour obtenir des exemples de stratégies basées sur les ressources AWS DMS, consultez Exemples destratégies basées sur les ressources pour AWS KMS (p. 56).

Autorisation basée sur les balises AWS DMSVous pouvez attacher des balises aux ressources de AWS DMS, ou transmettre des balises dansune requête à AWS DMS. Pour contrôler l'accès en fonction des balises, vous fournissez desinformations sur les balises dans l' élément condition d'une stratégie à l'aide de la clé de conditiondms:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. AWS DMS définitun ensemble de balises standard que vous pouvez utiliser dans ses clés de condition et vous permetégalement de définir vos propres balises personnalisées. Pour plus d'informations, consultez Utilisation desbalises pour contrôler l'accès (p. 73).

Pour obtenir un exemple de stratégie basée sur l'identité, qui limite l'accès à une ressource en fonction desbalises, consultez Accès aux ressources AWS DMS en fonction des balises (p. 55).

Rôles IAM pour AWS DMSUn rôle IAM est une entité au sein de votre compteAWS qui dispose d'autorisations spécifiques.

Obtention d'informations d'identification temporaires avec AWS DMSVous pouvez utiliser des informations d'identification temporaires pour vous connecter avec lafédération, endosser un rôle IAM, ou endosser un rôle entre comptes. Vous obtenez des informationsd'identification de sécurité temporaires en appelant des opérations d'API AWS STS comme AssumeRoleou GetFederationToken.

AWS DMS prend en charge l'utilisation des informations d'identification temporaires.

Rôles liés à un serviceLes rôles liés à un service permettent aux services AWS d'accéder à des ressources dans d'autresservices pour effectuer une action en votre nom. Les rôles liés à un service s'affichent dans votre compteIAM et sont détenus par le service. Un administrateur IAM peut consulter, mais ne peut pas modifier lesautorisations concernant les rôles liés à un service.

AWS DMS ne prend pas en charge les rôles liés à un service.

Rôles de serviceCette fonction permet à un service d'endosser un rôle de service en votre nom. Ce rôle autorise le serviceà accéder à des ressources d'autres services pour effectuer une action en votre nom. Les rôles de services'affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu'un administrateurIAM peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bonfonctionnement du service.

Version de l'API API Version 2016-01-0149

Page 57: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

AWS DMS prend en charge deux types de rôles de service que vous devez créer pour utiliser certainspoints de terminaison source ou cible :

• Rôles disposant d'autorisations permettant à AWS DMS d'accéder aux points de terminaison source etcible suivants (ou à leurs ressources) :• Amazon DynamoDB comme cible – Pour plus d'informations, consultez Conditions préalables à

l'utilisation d'DynamoDB comme cible pour AWS Database Migration Service (p. 268).• Elasticsearch comme cible – Pour plus d'informations, consultez Conditions préalables à l'utilisation

d'Amazon Elasticsearch Service comme cible pour AWS Database Migration Service (p. 298).• Amazon Kinesis comme cible – Pour plus d'informations, consultez Conditions préalables à l'utilisation

d'un flux de données Kinesis comme cible pour AWS Database Migration Service (p. 284).• Amazon Redshift comme cible – Vous devez configurer le rôle spécifié uniquement pour créer une

clé de chiffrement KMS personnalisée permettant de chiffrer les données cibles ou pour définir uncompartiment S3 personnalisé dans lequel stocker les tâches intermédiaires. Pour plus d'informations,consultez Création et utilisation de clés AWS KMS pour chiffrer des données cibles AmazonRedshift (p. 232) ou Paramètres de compartiment Amazon S3 (p. 236).

• Amazon S3 comme source ou cible – Pour plus d'informations, consultez Conditions préalables lorsde l'utilisation de Amazon S3 comme source pour AWS DMS (p. 202) ou Prérequis pour l'utilisationd'Amazon S3 comme cible (p. 244).

Par exemple, pour lire des données à partir d'un point de terminaison source S3 ou pour transférer desdonnées vers un point de terminaison cible S3, vous devez créer un rôle de service comme conditionpréalable à l'accès à S3 pour chacune de ces opérations.

• Rôles disposant des autorisations requises pour utiliser l'AWS CLI et l'API AWS DMS – Deux rôles IAMque vous devez créer sont dms-vpc-role et dms-cloudwatch-logs-role. Si vous utilisez AmazonRedshift comme base de données cible, vous devez également ajouter le rôle IAM dms-access-for-endpoint à votre compte AWS. Pour plus d’informations, consultez Création de rôles IAM à utiliser avecl'AWS CLI et l'API AWS DMS (p. 68).

Choix d'un rôle IAM dans AWS DMS

Si vous utilisez l'AWS CLI ou l'API AWS DMS pour la migration de la base de données, vous devez ajoutercertains rôles IAM à votre compte AWS pour pouvoir utiliser les fonctions de AWS DMS. Deux d'entre euxsont dms-vpc-role et dms-cloudwatch-logs-role. Si vous utilisez Amazon Redshift comme unebase de données cible, vous devez également ajouter le rôle IAM dms-access-for-endpoint à votrecompte AWS. Pour plus d'informations, consultez Création de rôles IAM à utiliser avec l'AWS CLI et l'APIAWS DMS (p. 68).

Exemples de stratégiesAWS Database Migration Service basées sur l'identitéPar défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources AWSDMS. Ils ne peuvent pas non plus exécuter des tâches à l'aide de AWS Management Console, AWS CLIou de l'API AWS. Un administrateur IAM doit créer des stratégies IAM autorisant les utilisateurs et les rôlesà exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuiteattacher ces stratégies aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour apprendre à créer une stratégie basée sur l'identité IAM à l'aide de ces exemples de document destratégie JSON, consultez Création de stratégies dans l'onglet JSON dans le IAM Guide de l'utilisateur.

Rubriques• Bonnes pratiques en matière de stratégies (p. 51)• Utilisation de la console AWS DMS (p. 51)

Version de l'API API Version 2016-01-0150

Page 58: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

• Autoriser les utilisateurs à afficher leurs propres autorisations (p. 54)• Accès à un compartiment Amazon S3 (p. 55)• Accès aux ressources AWS DMS en fonction des balises (p. 55)

Bonnes pratiques en matière de stratégiesLes stratégies basées sur l'identité sont très puissantes. Elles déterminent si une personne peut créer,consulter ou supprimer des ressources AWS DMS dans votre compte. Ces actions peuvent entraîner desfrais pour votre compte AWS. Lorsque vous créez ou modifiez des stratégies basées sur l'identité, suivezces instructions et recommandations :

• Commencer à utiliser des stratégies gérées AWS – Pour commencer à utiliser AWS DMS rapidement,utilisez les politiques gérées AWS pour accorder à vos employés les autorisations dont ils ont besoin.Ces stratégies sont déjà disponibles dans votre compte et sont gérées et mises à jour par AWS. Pourplus d'informations, consultez la section Mise en route avec les autorisations à l'aide des stratégiesgérées AWS dans le IAM Guide de l'utilisateur.

• Accorder le privilège le plus faible – Lorsque vous créez des stratégies personnalisées, accordezuniquement les autorisations requises pour exécuter une seule tâche. Commencez avec unminimum d'autorisations et accordez-en d'autres si nécessaire. Cette méthode est plus sûre que decommencer avec des autorisations trop permissives et d'essayer de les restreindre plus tard. Pour plusd'informations, consultez Accorder le privilège le plus faible dans le IAM Guide de l'utilisateur.

• Activer MFA pour les opérations sensibles – Pour plus de sécurité, obligez les utilisateurs IAM àutiliser l'authentification multi-facteurs (MFA) pour accéder à des ressources ou à des opérations d'APIsensibles. Pour plus d'informations, consultez Utilisation de Multi-Factor Authentication (MFA) dans AWSdans le IAM Guide de l'utilisateur.

• Utiliser des conditions de stratégie pour une plus grande sécurité – Tant que cela reste pratique pourvous, définissez les conditions dans lesquelles vos stratégies basées sur l'identité autorisent l'accès àune ressource. Par exemple, vous pouvez rédiger les conditions pour spécifier une plage d'adresses IPautorisées d'où peut provenir une demande. Vous pouvez également écrire des conditions pour autoriserles requêtes uniquement à une date ou dans une plage de temps spécifiée, ou pour imposer l'utilisationde SSL ou de MFA. Pour plus d'informations, consultez Éléments de stratégie JSON IAM : conditiondans le IAM Guide de l'utilisateur.

Utilisation de la console AWS DMSLa stratégie suivante vous donne accès à AWS DMS, y compris à la console AWS DMS. Elle spécifieégalement les autorisations pour certaines actions nécessaires à partir d'autres services Amazon commeAmazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" },

Version de l'API API Version 2016-01-0151

Page 59: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" } ]}

Une description de ces autorisations peut vous aider à mieux comprendre pourquoi chacune d'entre ellesest nécessaire à l'utilisation de la console.

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher ses clés AWS KMS disponibleset leurs alias sur la console. Cette entrée n'est pas requise si vous connaissez l'Amazon Resource Name(ARN) pour la clé KMS et que vous utilisez uniquement l'AWS Command Line Interface (AWS CLI).

{ "Effect": "Allow",

Version de l'API API Version 2016-01-0152

Page 60: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

"Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }

La section suivante est requise lorsque certains types de points de terminaison nécessitent la transmissiond'un rôle ARN avec le point de terminaison. De plus, si les rôles AWS DMS requis ne sont pas créés àl'avance, la console AWS DMS a la possibilité de créer le rôle. Si tous les rôles sont configurés à l'avance,ils sont tous nécessaires dans iam:GetRole et iam:PassRole. Pour plus d'informations sur les rôles ,consultez Création de rôles IAM à utiliser avec l'AWS CLI et l'API AWS DMS (p. 68).

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }

La section suivante est obligatoire, car AWS DMS a besoin de créer l'instance Amazon EC2 et deconfigurer le réseau pour l'instance de réplication créée. Comme ces ressources existent dans le comptedu client, il est obligatoire de pouvoir effectuer ces actions au nom du client.

{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher les métriques de l'instance deréplication.

{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }

Cette section est obligatoire pour permettre à l'utilisateur d'afficher les journaux de réplication.

{ "Effect": "Allow", "Action": [

Version de l'API API Version 2016-01-0153

Page 61: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

"logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }

La section suivante est obligatoire lorsque vous utilisez Amazon Redshift comme cible. AWS DMS peutainsi valider le fait que le cluster Amazon Redshift est correctement configuré pour AWS DMS.

{ "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" }

La console AWS DMS crée plusieurs rôles qui sont attachés automatiquement à votre compte AWSlorsque vous utilisez la console AWS DMS. Si vous utilisez l'AWS Command Line Interface (AWSCLI) ou l'API AWS DMS; pour la migration, vous devez ajouter ces rôles à votre compte. Pour plusd'informations sur l'ajout de ces rôles, consultez Création de rôles IAM à utiliser avec l'AWS CLI et l'APIAWS DMS (p. 68).

Pour plus d'informations sur les conditions requises pour l'utilisation de cette stratégie d'accès à AWSDMS, consultez Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64)

Autoriser les utilisateurs à afficher leurs propres autorisationsCet exemple montre comment créer une stratégie qui permet aux utilisateurs IAM d'afficher les stratégiesen ligne et gérées attachées à leur identité d'utilisateur. Cette stratégie inclut les autorisations nécessairespour réaliser cette action sur la console ou par programmation à l'aide de l’AWS CLI ou de l'API AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers"

Version de l'API API Version 2016-01-0154

Page 62: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur l'identité

], "Resource": "*" } ]}

Accès à un compartiment Amazon S3AWS DMS utilise des compartiments Amazon S3 comme stockage intermédiaire pour la migrationde la base de données. Généralement, AWS DMS gère les compartiments S3 par défaut à cet effet.Cependant, dans certains cas, notamment lorsque vous utilisez l'AWS CLI ou l'API AWS DMS, AWSDMS vous permet de spécifier votre propre compartiment S3 à la place. Par exemple, vous pouvezspécifier votre propre compartiment S3 pour la migration de données vers un point de terminaison AmazonRedshift cible. Dans ce cas, vous devez créer un rôle avec des autorisations basées sur la stratégieAmazonDMSRedshiftS3Role gérée par Amazon.

L'exemple suivant présente une version de la stratégie AmazonDMSRedshiftS3Role. Il permet à AWSDMS d'accorder à un utilisateur IAM de votre compartiment AWS l'accès à l'un de vos compartimentsAmazon S3. Il permet également à l'utilisateur d'ajouter, de mettre à jour et de supprimer des objets.

En plus de l'octroi des autorisations s3:PutObject, s3:GetObject et s3:DeleteObject à l'utilisateur,la stratégie octroie aussi les autorisations s3:ListAllMyBuckets, s3:GetBucketLocation ets3:ListBucket. Ces conditions supplémentaires sont requises par la console. D'autres autorisationspermettent à AWS DMS de gérer le cycle de vie des compartiments. En outre, l'action s3:GetObjectAclest nécessaire pour pouvoir copier des objets.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket", "s3:DeleteBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetBucketPolicy", "s3:PutBucketPolicy", "s3:GetBucketAcl", "s3:PutBucketVersioning", "s3:GetBucketVersioning", "s3:PutLifecycleConfiguration", "s3:GetLifecycleConfiguration", "s3:DeleteBucketPolicy" ], "Resource": "arn:aws:s3:::dms-*" } ]}

Pour plus d'informations sur la création d'un rôle basé sur cette stratégie, consultez Paramètres decompartiment Amazon S3 (p. 236).

Accès aux ressources AWS DMS en fonction des balisesVous pouvez utiliser des conditions dans votre stratégie basée sur l'identité pour contrôler l'accès auxressources AWS DMS en fonction des balises. Cet exemple montre comment créer une stratégie qui

Version de l'API API Version 2016-01-0155

Page 63: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur les ressources

autorise l'accès à tous les points de terminaison AWS DMS. Toutefois, l'autorisation est accordéeuniquement si la balise Owner contient le nom d'utilisateur approprié.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:*:*:endpoint/*", "Condition": { "StringEquals": {"dms:endpoint-tag/Owner": "${aws:username}"} } } ]}

Vous pouvez attacher cette stratégie aux utilisateurs IAM de votre compte. Si un utilisateur nommérichard-roe tente d'accéder à un point de terminaison AWS DMS, la base de données de terminaisondoit être associée à la balise Owner=richard-roe ou owner=richard-roe. Dans le cas contraire,l’utilisateur se voit refuser l'accès. La clé de condition de balise Owner correspond à la fois à Owner età owner, car les noms de clé de condition ne sont pas sensibles à la casse. Pour plus d'informations,consultez Éléments de stratégie JSON IAM : condition dans le IAM Guide de l'utilisateur.

Exemples de stratégies basées sur les ressourcespour AWS KMSAWS DMS vous permet de créer des clés de chiffrement AWS KMS personnalisées pour chiffrer lesdonnées de point de terminaison cible prises en charge. Pour découvrir comment créer et attacher unestratégie de clé à la clé de chiffrement que vous générez pour le chiffrement des données cibles prisesen charge, consultez Création et utilisation de clés AWS KMS pour chiffrer des données cibles AmazonRedshift (p. 232) et Création de clés AWS KMS pour chiffrer des objets cibles Amazon S3 (p. 251).

Rubriques• Stratégie pour une clé de chiffrement AWS KMS personnalisée permettant de chiffrer les données

Amazon Redshift cibles (p. 56)• Stratégie pour une clé de chiffrement AWS KMS personnalisée permettant de chiffrer les données

Amazon S3 cibles (p. 58)

Stratégie pour une clé de chiffrement AWS KMS personnaliséepermettant de chiffrer les données Amazon Redshift ciblesL'exemple suivant présente la structure JSON de la stratégie de clé créée pour une clé de chiffrement AWSKMS permettant de chiffrer les données Amazon Redshift cibles.

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:root" ]

Version de l'API API Version 2016-01-0156

Page 64: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur les ressources

}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/Admin" ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } }

Version de l'API API Version 2016-01-0157

Page 65: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExemples de stratégies basées sur les ressources

} ]}

Ici, vous pouvez voir à quel endroit la stratégie de clé référence le rôle permettant d'accéder aux donnéesde point de terminaison Amazon Redshift cibles que vous avez créées avant de générer la clé. Danscet exemple, il s'agit de DMS-Redshift-endpoint-access-role. Vous pouvez également voir lesdifférentes actions clés autorisées pour les différentes entités (utilisateurs et rôles). Par exemple, toututilisateur avec DMS-Redshift-endpoint-access-role peut chiffrer, déchiffrer et rechiffrer lesdonnées cibles. Un tel utilisateur peut également générer des clés de données pour l'exportation afin depermettre le chiffrement des données en dehors de AWS KMS. Ce rôle permet aussi de renvoyer desinformations détaillées sur une clé principale client (CMK), telle que la clé que vous venez de créer. Enoutre, un utilisateur avec ce rôle peut gérer les pièces jointes aux ressources AWS, telles que le point determinaison cible.

Stratégie pour une clé de chiffrement AWS KMS personnaliséepermettant de chiffrer les données Amazon S3 ciblesL'exemple suivant présente la structure JSON de la stratégie de clé créée pour une clé de chiffrement AWSKMS permettant de chiffrer les données Amazon S3 cibles.

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/Admin" ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*"

Version de l'API API Version 2016-01-0158

Page 66: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDépannage

}, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ]

Ici, vous pouvez voir à quel endroit la stratégie de clé référence le rôle permettant d'accéder aux donnéesde point de terminaison Amazon S3 cibles que vous avez créées avant de générer la clé. Dans cetexemple, il s'agit de DMS-S3-endpoint-access-role. Vous pouvez également voir les différentesactions clés autorisées pour les différentes entités (utilisateurs et rôles). Par exemple, tout utilisateuravec DMS-S3-endpoint-access-role peut chiffrer, déchiffrer et rechiffrer les données cibles. Un telutilisateur peut également générer des clés de données pour l'exportation afin de permettre le chiffrementdes données en dehors de AWS KMS. Ce rôle permet aussi de renvoyer des informations détaillées surune clé principale client (CMK), telle que la clé que vous venez de créer. En outre, un utilisateur avec cerôle peut gérer les pièces jointes aux ressources AWS, telles que le point de terminaison cible.

Résolution des problèmes d'identité et d'accèsAWS Database Migration ServiceUtilisez les informations suivantes pour identifier et résoudre les problèmes courants que vous pouvezrencontrer lorsque vous travaillez avec AWS DMS et IAM.

Rubriques• Je ne suis pas autorisé à effectuer une action dans AWS DMS (p. 60)• Je ne suis pas autorisé à exécuter iam:PassRole (p. 60)• Je veux afficher mes clés d'accès (p. 60)

Version de l'API API Version 2016-01-0159

Page 67: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDépannage

• Je suis un administrateur et je veux autoriser d'autres utilisateurs à accéder à AWS DMS (p. 61)• Je veux permettre à des personnes extérieures à mon compte AWS d’accéder à mes ressources AWS

DMS (p. 61)

Je ne suis pas autorisé à effectuer une action dans AWS DMSSi AWS Management Console indique que vous n'êtes pas autorisé à exécuter une action, vous devezcontacter votre administrateur pour obtenir de l'aide. Votre administrateur est la personne qui vous a fournivotre nom d'utilisateur et votre mot de passe.

L'exemple d'erreur suivant se produit lorsque l'utilisateur IAM mateojackson tente d'utiliser la consolepour afficher des informations détaillées sur un point de terminaison AWS DMS, mais qu'il ne dispose pasdes autorisations dms: DescribeEndpoint.

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: dms:DescribeEndpoint on resource: my-postgresql-target

Dans ce cas, Mateo demande à son administrateur de mettre à jour ses stratégies pour lui permettred'accéder à la ressource de point de terminaison my-postgresql-target à l'aide de l'actiondms:DescribeEndpoint.

Je ne suis pas autorisé à exécuter iam:PassRoleSi vous recevez un message d'erreur selon lequel vous n'êtes pas autorisé à exécuter l'actioniam:PassRole, vous devez contacter votre administrateur pour obtenir de l'aide. Votre administrateur estla personne qui vous a fourni votre nom d'utilisateur et votre mot de passe. Demandez à cette personne demettre à jour vos stratégies pour vous permettre de transmettre un rôle à AWS DMS.

Certains services AWS vous permettent de transmettre un rôle existant à ce service, au lieu de créer unnouveau rôle de service ou rôle lié à un service. Pour ce faire, un utilisateur doit disposer des autorisationsnécessaires pour transmettre le rôle au service.

L'exemple d'erreur suivant se produit lorsqu'un utilisateur IAM nommé marymajor essaie d'utiliser laconsole pour exécuter une action dans AWS DMS. Toutefois, l'action nécessite que le service ait desautorisations accordées par un rôle de service. Mary ne dispose pas des autorisations nécessaires pourtransférer le rôle au service.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

Dans ce cas, Mary demande à son administrateur de mettre à jour ses stratégies pour lui permettred'exécuter l'action iam:PassRole.

Je veux afficher mes clés d'accèsUne fois que vous avez créé vos clés d'accès utilisateur IAM, vous pouvez afficher votre ID de clé d'accèsà tout moment. Toutefois, vous ne pouvez pas afficher à nouveau votre clé d'accès secrète. Si vous perdezvotre clé d'accès secrète, vous devez créer une nouvelle paire de clés.

Les clés d'accès se composent de deux parties : un ID de clé d'accès (par exemple,AKIAIOSFODNN7EXAMPLE) et une clé d'accès secrète (par exemple, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). À l'instar d'un nom d'utilisateur et un mot de passe, vous devez utiliser à la foisl'ID de clé d'accès et la clé d'accès secrète pour authentifier vos demandes. Gérez vos clés d'accès demanière aussi sécurisée que votre nom d'utilisateur et votre mot de passe.

Important

Ne communiquez pas vos clés d'accès à un tiers, même pour qu'il vous aide à trouver votre IDutilisateur canonique. En effet, vous lui accorderiez ainsi un accès permanent à votre compte.

Version de l'API API Version 2016-01-0160

Page 68: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConsignation et surveillance

Lorsque vous créez une paire de clé d'accès, enregistrez l'ID de clé d'accès et la clé d'accès secrètedans un emplacement sécurisé. La clé d'accès secrète est accessible uniquement au moment de sacréation. Si vous perdez votre clé d'accès secrète, vous devez ajouter de nouvelles clés d'accès pour votreutilisateur IAM. Vous pouvez avoir un maximum de deux clés d'accès. Si vous en avez déjà deux, vousdevez supprimer une paire de clés avant d'en créer une nouvelle. Pour afficher les instructions, consultezGestion des clés d'accès dans le IAM Guide de l'utilisateur.

Je suis un administrateur et je veux autoriser d'autres utilisateursà accéder à AWS DMSPour permettre à d'autres utilisateurs d'accéder à AWS DMS, vous devez créer une entité IAM (utilisateurou rôle) pour la personne ou l'application qui a besoin de l'accès. Ils utiliseront les informationsd'identification de cette entité pour accéder à AWS. Vous devez ensuite associer une stratégie à l'entité quileur accorde les autorisations appropriées dans AWS DMS.

Pour démarrer immédiatement, consultez Création de votre premier groupe et utilisateur délégué IAM dansle IAM Guide de l'utilisateur.

Je veux permettre à des personnes extérieures à mon compteAWS d’accéder à mes ressources AWS DMSVous pouvez créer un rôle que les utilisateurs provenant d'autres comptes ou les personnes extérieures àvotre organisation peuvent utiliser pour accéder à vos ressources. Vous pouvez spécifier qui est approuvépour assumer le rôle. Pour les services qui prennent en charge les stratégies basées sur les ressourcesou les listes de contrôle d'accès (ACL), vous pouvez utiliser ces stratégies pour accorder aux personnesl'accès à vos ressources.

Pour en savoir plus, consultez les éléments suivants :

• Pour savoir si AWS DMS prend en charge ces fonctionnalités, consultez Fonctionnementd'AWS Database Migration Service fonctionne avec IAM (p. 46).

• Pour savoir comment fournir un accès à vos ressources sur les comptes AWS que vous détenez,consultez Octroi à un utilisateur IAM de l'autorisation d'accès à un autre compte AWS vous appartenantdans le IAM Guide de l'utilisateur.

• Pour savoir comment fournir l'accès à vos ressources à des comptes AWS tiers, consultez Octroi d'unaccès à des comptes AWS appartenant à des tiers dans le IAM Guide de l'utilisateur.

• Pour savoir comment fournir un accès par le biais de la fédération d'identité, consultez Octroi d'accès àdes utilisateurs authentifiés en externe (fédération d'identité) dans le IAM Guide de l'utilisateur.

• Pour en savoir plus sur la différence entre l'utilisation des rôles et des stratégies basées sur lesressources pour l'accès entre comptes, consultez Différence entre les rôles IAM et les stratégies baséessur les ressources dans le IAM Guide de l'utilisateur.

Journalisation et surveillance dansAWS Database Migration Service

La surveillance est un enjeu important pour assurer la fiabilité, la disponibilité et les performances de AWSDMS et de vos solutions AWS. Vous devez collecter les données de surveillance de l'ensemble de votresolution AWS afin de pouvoir déboguer plus facilement une éventuelle défaillance à plusieurs points.AWS fournit plusieurs outils pour surveiller vos ressources AWS DMS et autres, et répondre aux incidentspotentiels.

Version de l'API API Version 2016-01-0161

Page 69: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConsignation et surveillance

Événements et notifications AWS DMS

AWS DMS utilise Amazon Simple Notification Service (Amazon SNS) pour fournir des notificationslorsqu'un événement AWS DMS se produit, tel que la création ou la suppression d'une instance deréplication. AWS DMS regroupe les événements en catégories auxquelles vous pouvez vous abonner.Vous êtes ainsi averti lorsqu'un événement de cette catégorie se produit. Par exemple, si vous vousabonnez à la catégorie de création d'une instance de réplication donnée, vous recevez une notificationchaque fois que survient un événement lié à la création qui affecte votre instance de réplication. Vouspouvez utiliser ces notifications sous l'une quelconque des formes prises en charge par AmazonSNS pour une région AWS, telles qu'un message électronique, un SMS ou un appel à un point determinaison HTTP. Pour de plus amples informations, veuillez consulter Utilisation d'événements etnotifications dans AWS Database Migration Service (p. 429)

État de la tâche

Vous pouvez surveiller la progression d'une tâche en vérifiant le statut de la tâche et en surveillant latable de contrôle de la tâche. L'état de la tâche indique l'état d'une tâche AWS DMS et les ressourcesqui lui sont associées. Il inclut des indications qui permettent de déterminer si la tâche est en coursde création, de lancement, d'exécution ou d'arrêt. Il indique également l'état actuel des tables migréespar la tâche. Par exemple, il permet de déterminer si une charge complète d'une table a commencéou si elle est en cours et donne des informations telles que le nombre d'insertions, de suppressions etde mises à jour effectuées pour cette table. Pour plus d'informations sur la surveillance de l'état destâches et de leurs ressources, consultez État de la tâche (p. 407) et État d'une table pendant destâches (p. 408). Pour plus d'informations sur les tables de contrôle, consultez Paramètres de tâchede la table de contrôle (p. 338).

Alarmes et journaux Amazon CloudWatch

À l'aide d'alarmes Amazon CloudWatch, vous surveillez une ou plusieurs métrique de tâche surune période spécifique. Si la métrique dépasse un seuil donné, une notification est envoyée à unerubrique Amazon SNS. Les alarmes CloudWatch n'appellent pas d'actions parce qu'elles sont à unétat particulier. Au contraire, l'état doit avoir changé et être maintenu pendant un certain nombre depériodes. AWS DMSutilise également CloudWatch pour consigner les informations sur les tâchespendant le processus de migration. Vous pouvez utiliser l'AWS CLI ou l'API AWS DMS pour consulterdes informations sur les journaux de tâches. Pour de plus amples informations sur l'utilisation deCloudWatch avec AWS DMS, consultez Surveillance des tâches de réplication à l'aide d'AmazonCloudWatch (p. 409). Pour plus d'informations sur la surveillance des métriques AWS DMS,consultez Métriques du service de migration des données (p. 411). Pour plus d'informations surl'utilisation des journaux de tâches AWS DMS, consultez Gestion des journaux de tâches AWSDMS (p. 414).

Journaux AWS CloudTrail

AWS DMS est intégré à AWS CloudTrail, service qui fournit un enregistrement des actions réaliséespar un utilisateur, un rôle IAM ou un service AWS dans AWS DMS. CloudTrail capture tous les appelsd'API pour AWS DMS sous forme d'événements, y compris les appels provenant de la console AWSDMS et les appels de code aux opérations d'API AWS DMS. Si vous créez un journal de suivi, vouspouvez diffuser en continu les événements CloudTrail sur un compartiment Amazon S3, y comprisles événements pour AWS DMS. Si vous ne configurez pas de journal de suivi, vous pouvez toujoursafficher les événements les plus récents dans la console CloudTrail dans Event history (Historiquedes événements). À l'aide des informations collectées par CloudTrail, vous pouvez déterminer lademande qui a été envoyée à AWS DMS, l'adresse IP source à partir de laquelle la demande a étéeffectuée, l'auteur de la demande et la date de la demande, ainsi que d'autres informations. Pour plusd'informations, consultez Journalisation des appels d'API AWS DMS avec AWS CloudTrail (p. 415).

Journaux de base de données

Vous pouvez afficher, télécharger et surveiller les journaux de base de données pour vos points determinaison de tâche à l'aide de la console AWS Management Console, de l'AWS CLI ou de l'API devotre service de base de données AWS. Pour plus d'informations, consultez la documentation de votreservice de base de données dans la documentation AWS.

Version de l'API API Version 2016-01-0162

Page 70: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurValidation de la conformité

Validation de la conformité pourAWS Database Migration Service

Les auditeurs tiers évaluent la sécurité et la conformité d'AWS Database Migration Service dans le cadrede plusieurs programmes de conformité AWS. Il s'agit notamment des programmes suivants :

• SOC• PCI• ISO• FedRAMP• DoD CC SRG• HIPAA BAA• MTCS• CS• K-ISMS• ENS High• OSPAR• HITRUST CSF

Pour obtenir la liste des services AWS relevant de programmes de conformité spécifiques, consultezServices AWS relevant de programmes de conformité. Pour obtenir des renseignements généraux,consultez Programmes de conformitéAWS .

Vous pouvez télécharger les rapports de l'audit externe avec AWS Artifact. Pour plus d'informations,consultez Téléchargement de rapports dans AWS Artifact.

Votre responsabilité en matière de conformité lorsque vous utilisez AWS DMS est déterminée par lasensibilité de vos données, les objectifs de conformité de votre entreprise, ainsi que la législation et laréglementation en vigueur. AWS fournit les ressources suivantes pour faciliter le respect de la conformité :

• Guides de démarrage rapide de la sécurité et de la conformité – Ces guides de déploiement proposentdes considérations architecturales et fournissent des étapes pour déployer des environnements deréférence centrés sur la sécurité et la conformité sur AWS.

• Livre blanc sur l'architecture pour la sécurité et la conformité HIPAA – Le livre blanc décrit comment lesentreprises peuvent utiliser AWS pour créer des applications conformes à la loi HIPAA.

• Ressources de conformité AWS –Cet ensemble de manuels et de guides peut s'appliquer à votre secteuret à votre emplacement.

• AWS Config – Ce service AWS permet d'évaluer le degré de conformité de vos configurations deressources par rapport aux pratiques internes, aux normes et aux directives industrielles.

• AWS Security Hub – Ce service AWS fournit une vue complète de votre état de sécurité au sein d'AWSqui vous permet de vérifier votre conformité aux normes du secteur et aux bonnes pratiques de sécurité.

Résilience dans AWS Database Migration ServiceL'infrastructure mondiale dAWS repose sur des régions et des zones de disponibilité AWS. Les régionsAWS fournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par unréseau à latence faible, à débit élevé et à forte redondance. Avec les zones de disponibilité, vous pouvezconcevoir et exploiter des applications et des bases de données qui basculent automatiquement d'unezone de disponibilité à l'autre sans interruption. Les zones de disponibilité sont plus hautement disponibles,

Version de l'API API Version 2016-01-0163

Page 71: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSécurité de l'infrastructure

tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres dedonnées.

Pour plus d'informations sur les régions et les zones de disponibilité AWS, consultez Infrastructuremondiale AWS.

Outre l'infrastructure AWS globale, AWS DMS fournit une haute disponibilité et une prise en charge dubasculement pour une instance de réplication à l'aide d'un déploiement Multi-AZ lorsque vous sélectionnezl'option Multi-AZ.

Dans un déploiement multi-AZ, AWS DMS met en service et gère automatiquement un réplica de secoursde l'instance de réplication dans une zone de disponibilité différente. L'instance de réplication principale estrépliquée de manière synchrone vers le réplica de secours. Si l'instance de réplication principale échoue oune répond plus, l'instance de secours reprend toutes les tâches en cours avec une interruption minimale.Comme l'instance principale réplique constamment son état vers l'instance de secours, un déploiementmulti-AZ occasionne une certaine dégradation des performances.

Pour plus d'informations sur le fonctionnement des déploiements Multi-AZ, consultez Utilisation d'uneinstance de réplication AWS DMS (p. 91).

Sécurité de l'infrastructure dansAWS Database Migration Service

En tant que service géré, AWS Database Migration Service est protégé par les procédures de sécuritédu réseau mondial AWS qui sont décrites dans le livre blanc Amazon Web Services : Présentation desprocédures de sécurité.

Vous utilisez les appels d'API publiés dans AWS pour accéder à AWS DMS via le réseau. Les clientsdoivent prendre en charge le protocole TLS (Transport Layer Security) 1.0 ou version ultérieure. Les clientsdoivent également prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) commeEphemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) La plupart dessystèmes modernes tels que Java 7 et versions ultérieures prennent en charge ces modes.

En outre, les demandes doivent être signées à l'aide d'un ID de clé d'accès et d'une clé d'accès secrèteassociée à un mandataire AWS Identity and Access Management (IAM). Vous pouvez également utiliserAWS Security Token Service (AWS STS) pour générer des informations d'identification de sécuritétemporaires et signer les demandes.

Vous pouvez appeler ces opérations d'API à partir de n'importe quel emplacement sur le réseau, maisAWS DMS prend bel et bien en charge les stratégies d'accès basées sur les ressources, ce qui peutinclure des restrictions en fonction de l'adresse IP source. Vous pouvez utiliser des stratégies AWS DMSpour contrôler l'accès depuis des points de terminaison Amazon VPC spécifiques ou depuis des VPCspécifiques. En effet, cela permet d'isoler l'accès réseau vers une ressource AWS DMS donnée depuis leVPC spécifique uniquement au sein du réseau AWS.

Pour plus d'informations sur l'utilisation de stratégies d'accès basées sur les ressources avec AWS DMS,avec des exemples à l'appui, consultez Contrôle précis des accès à l'aide des noms de ressources et desbalises (p. 71).

Autorisations IAM nécessaires pour utiliser AWSDMS

Vous devez utiliser certaines autorisations et certains rôles IAM pour pouvoir utiliser AWS DMS. Si vousêtes connecté en tant qu'utilisateur IAM et que vous souhaitez employer AWS DMS, votre administrateur

Version de l'API API Version 2016-01-0164

Page 72: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAutorisations IAM nécessaires

de compte doit attacher la stratégie présentée dans cette section à l'utilisateur, au groupe ou au rôle IAMque vous utilisez pour exécuter AWS DMS. Pour plus d'informations sur les autorisations IAM, consultez leGuide de l'utilisateur IAM.

La stratégie suivante vous permet d'accéder à AWS DMS. Elle contient également des autorisationspour certaines actions nécessaires à d'autres services Amazon comme AWS KMS, IAM, Amazon EC2 etAmazon CloudWatch.CloudWatch. surveille votre migration AWS DMS en temps réel : il recueille et assurele suivi des métriques qui indiquent la progression de la migration. Vous pouvez utiliser CloudWatch Logspour déboguer les problèmes pouvant survenir avec une tâche.

Note

Vous pouvez limiter l'accès aux ressources AWS DMS à l'aide du balisage. Pour plusd'informations sur la restriction de l'accès aux ressources AWS DMS à l'aide du balisage,consultez Contrôle précis des accès à l'aide des noms de ressources et des balises (p. 71).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*"

Version de l'API API Version 2016-01-0165

Page 73: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAutorisations IAM nécessaires

}, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" } ]}

L'analyse de ces autorisations peut vous aider à mieux comprendre pourquoi chacune d'elles estnécessaire.

La section suivante est obligatoire pour permettre à l'utilisateur d'appeler les opérations d'API AWS DMS.

{ "Effect": "Allow", "Action": "dms:*", "Resource": "*"}

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher ses clés AWS KMS disponibleset leurs alias sur la console. Cette entrée n'est pas requise si vous connaissez l'Amazon Resource Name(ARN) pour la clé KMS et que vous utilisez uniquement l'AWS Command Line Interface (AWS CLI).

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }

La section suivante est requise lorsque certains types de points de terminaison nécessitent la transmissionde l'ARN d'un rôle IAM avec le point de terminaison. De plus, si les rôles AWS DMS requis ne sont pascréés à l'avance, la console AWS DMS a la possibilité de les créer. Si tous les rôles sont configurés àl'avance, seuls iam:GetRole et iam:PassRole sont nécessaires. Pour plus d'informations sur les rôles ,consultez Création de rôles IAM à utiliser avec l'AWS CLI et l'API AWS DMS (p. 68).

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy"

Version de l'API API Version 2016-01-0166

Page 74: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAutorisations IAM nécessaires

], "Resource": "*" }

La section suivante est obligatoire, car AWS DMS a besoin de créer l'instance Amazon EC2 et deconfigurer le réseau pour l'instance de réplication créée. Comme ces ressources existent dans le comptedu client, il est obligatoire de pouvoir effectuer ces actions au nom du client.

{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher les métriques de l'instance deréplication.

{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }

Cette section est obligatoire pour permettre à l'utilisateur d'afficher les journaux de réplication.

{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }

La section suivante est obligatoire lorsque vous utilisez Amazon Redshift comme cible. AWS DMS peutainsi valider le fait que le cluster Amazon Redshift est correctement configuré pour AWS DMS.

{ "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" }

Version de l'API API Version 2016-01-0167

Page 75: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRôles IAM pour l'interface de ligne de commande et l'API

La console AWS DMS crée plusieurs rôles qui sont attachés automatiquement à votre compte AWSlorsque vous utilisez la console AWS DMS. Si vous utilisez l'AWS Command Line Interface (AWSCLI) ou l'API AWS DMS pour la migration, vous devez ajouter ces rôles à votre compte. Pour plusd'informations sur l'ajout de ces rôles, consultez Création de rôles IAM à utiliser avec l'AWS CLI et l'APIAWS DMS (p. 68).

Création de rôles IAM à utiliser avec l'AWS CLI etl'API AWS DMS

Si vous utilisez l'AWS CLI ou l'API AWS DMS pour la migration de votre base de données, vous devezajouter trois rôles IAM à votre compte AWS pour pouvoir utiliser les fonctions de AWS DMS. Deux d'entreeux sont dms-vpc-role et dms-cloudwatch-logs-role. Si vous utilisez Amazon Redshift comme unebase de données cible, vous devez également ajouter le rôle IAM dms-access-for-endpoint à votrecompte AWS.

Les mises à jour des stratégies gérées sont automatiques. Si vous utilisez une stratégie personnaliséeavec les rôles IAM, veillez à vérifier régulièrement la disponibilité des mises à jour de la stratégie géréedans cette documentation. Vous pouvez afficher les détails de la stratégie gérée grâce à une combinaisondes commandes get-policy et get-policy-version.

Par exemple, la commande get-policy suivante récupère les informations relatives au rôle IAM spécifié.

aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole

Les informations renvoyées par la commande sont les suivantes.

{ "Policy": { "PolicyName": "AmazonDMSVPCManagementRole", "Description": "Provides access to manage VPC settings for AWS managed customer configurations", "CreateDate": "2015-11-18T16:33:19Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPAJHKIGMBQI4AEFFSYO", "DefaultVersionId": "v3", "Path": "/service-role/", "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole", "UpdateDate": "2016-05-23T16:29:57Z" }}

La commande get-policy-version suivante récupère les informations relatives à la stratégie IAM.

aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole --version-id v3

Les informations renvoyées par la commande sont les suivantes.

Version de l'API API Version 2016-01-0168

Page 76: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRôles IAM pour l'interface de ligne de commande et l'API

{ "PolicyVersion": { "CreateDate": "2016-05-23T16:29:57Z", "VersionId": "v3", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*", "Effect": "Allow" } ] }, "IsDefaultVersion": true }}

Vous pouvez utiliser les mêmes commandes pour obtenir des informations sur la stratégie géréeAmazonDMSCloudWatchLogsRole et AmazonDMSRedshiftS3Role.

Note

Si vous utilisez la console AWS DMS pour la migration de votre base de données, ces rôles sontajoutés automatiquement à votre compte AWS.

Les procédures suivantes créent les rôles IAM dms-vpc-role, dms-cloudwatch-logs-role et dms-access-for-endpoint.

Pour créer le rôle IAM dms-vpc-role à utiliser avec l'AWS CLI ou l'API AWS DMS

1. Créez un fichier JSON contenant la stratégie IAM suivante. Nommez le fichier JSONdmsAssumeRolePolicyDocument.json.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Créez le rôle avec l'AWS CLI en utilisant la commande suivante.

Version de l'API API Version 2016-01-0169

Page 77: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRôles IAM pour l'interface de ligne de commande et l'API

aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json

2. Attachez la stratégie AmazonDMSVPCManagementRole à dms-vpc-role en utilisant la commandesuivante.

aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole

Pour créer le rôle IAM dms-cloudwatch-logs-role à utiliser avec l'AWS CLI ou l'API AWS DMS

1. Créez un fichier JSON contenant la stratégie IAM suivante. Nommez le fichier JSONdmsAssumeRolePolicyDocument2.json.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Créez le rôle avec l'AWS CLI en utilisant la commande suivante.

aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json

2. Attachez la stratégie AmazonDMSCloudWatchLogsRole à dms-cloudwatch-logs-role enutilisant la commande suivante.

aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole

Si vous utilisez Amazon Redshift en tant que base de données cible, vous devez créer le rôle IAM dms-access-for-endpoint pour fournir l'accès à Amazon S3.

Pour créer le rôle IAM dms-access-for-endpoint à utiliser avec Amazon Redshift comme base dedonnées cible

1. Créez un fichier JSON contenant la stratégie IAM suivante. Nommez le fichier JSONdmsAssumeRolePolicyDocument3.json.

Version de l'API API Version 2016-01-0170

Page 78: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurContrôle précis des accès

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "2", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. Créez le rôle avec l'AWS CLI en utilisant la commande suivante.

aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json

3. Attachez la stratégie AmazonDMSRedshiftS3Role au rôle dms-access-for-endpoint en utilisantla commande suivante.

aws iam attach-role-policy --role-name dms-access-for-endpoint \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role

Vous devez maintenant avoir les stratégies IAM en place pour pouvoir utiliser l'AWS CLI ou l'API AWSDMS.

Contrôle précis des accès à l'aide des noms deressources et des balises

Vous pouvez utiliser les noms de ressources basés sur l'Amazon Resource Names (ARN) et les balisesdes ressources pour gérer l'accès aux ressources AWS DMS. Pour ce faire, définissez l'action autorisée ouincluez les instructions conditionnelles dans les stratégies IAM.

Utilisation des noms de ressources pour contrôlerl'accèsVous pouvez créer un compte utilisateur IAM et attribuer une stratégie basée sur l'ARN de la ressourceAWS DMS.

La stratégie suivante refuse l'accès à l'instance de réplication AWS DMS ayant l'ARN arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV :

Version de l'API API Version 2016-01-0171

Page 79: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des noms de ressources pour contrôler l'accès

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV" } ]}

Par exemple, les commandes suivantes échouent lorsque la stratégie est en vigueur.

$ aws dms delete-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV

$ aws dms modify-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV

Vous pouvez également spécifier des stratégies IAM qui limitent l'accès aux points de terminaison AWSDMS et aux tâches de réplication.

La stratégie suivante limite l'accès à un point de terminaison AWS DMS à l'aide de l'ARN de ce point determinaison.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX" } ]}

Par exemple, les commandes suivantes échouent si la stratégie qui utilise l'ARN du point de terminaisonest en vigueur.

$ aws dms delete-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"

Version de l'API API Version 2016-01-0172

Page 80: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des balises pour contrôler l'accès

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX

$ aws dms modify-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX

La stratégie suivante limite l'accès à une tâche AWS DMS à l'aide de l'ARN de la tâche.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT" } ]}

Par exemple, les commandes suivantes échouent si la stratégie utilisant l'ARN de la tâche est en vigueur.

$ aws dms delete-replication-task --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT

Utilisation des balises pour contrôler l'accèsAWS DMS définit un ensemble de paires clé-valeur courantes, disponibles pour être utilisées dansles stratégies définies par les clients sans qu'aucun balisage supplémentaire ne soit requis. Pour plusd'informations sur le balisage des ressources AWS DMS, consultez Balisage des ressources dansAWS Database Migration Service (p. 426).

Le tableau suivant répertorie les balises standard disponibles pour une utilisation avec AWS DMS :

• aws:CurrentTime – représente la date et l'heure de la demande, ce qui permet de restreindre l'accès enfonction de critères temporels.

• aws:EpochTime – cette balise est similaire à la balise aws:CurrentTime ci-dessus, sauf que l'heureactuelle est représentée comme le nombre de secondes écoulées depuis la date epoch Unix.

• aws:MultiFactorAuthPresent – balise booléenne qui indique si la demande a été signée ou pas vial'authentification multi-facteurs.

Version de l'API API Version 2016-01-0173

Page 81: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des balises pour contrôler l'accès

• aws:MultiFactorAuthAge – fournit l'accès à l'âge du jeton d'authentification multi-facteurs (en secondes).• aws:principaltype – fournit l'accès au type de mandataire (utilisateur, compte, utilisateur fédéré, etc.) pour

la demande actuelle.• aws:SourceIp – représente l'adresse IP source de l'utilisateur émettant la demande.• aws:UserAgent – fournit des informations sur l'application client demandant une ressource.• aws:userid – fournit l'accès à l'ID de l'utilisateur émettant la demande.• aws:username – fournit l'accès au nom de l'utilisateur émettant la demande.• dms:InstanceClass – fournit l'accès à la taille de calcul de l'hôte ou des hôtes de l'instance de réplication.• dms:StorageSize – fournit l'accès à la taille du volume de stockage (en Go).

Vous pouvez également définir vos propres balises. Les balises définies par le client sont de simples pairesclé-valeur, conservées dans le service de balisage AWS. Vous pouvez les ajouter aux ressources AWSDMS, y compris les instances de réplication, les points de terminaison et les tâches. Ces balises sont misesen correspondance via les instructions « conditionnelles » IAM des stratégies et sont référencées à l'aided'une balise conditionnelle spécifique. Les clés de balise sont préfixées par « dms », le type de ressourceet le préfixe « tag ». Le format de balise est le suivant.

dms:{resource type}-tag/{tag key}={tag value}

Par exemple, supposons que vous vouliez définir une stratégie permettant qu'un appel d'API ne réussisseque pour une instance de réplication contenant la balise « stage=production ». L'instruction conditionnellesuivante correspond à une ressource avec la balise donnée.

"Condition":{ "streq": { "dms:rep-tag/stage":"production" }}

Vous devez ajouter la balise suivante à une instance de réplication correspondant à cette condition destratégie.

stage production

En dehors des balises déjà attribuées aux ressources AWS DMS, les stratégies peuvent aussi être écritespour limiter les clés et les valeurs de balise qui peuvent s'appliquer à une ressource donnée. Dans ce cas,le préfixe de balise est « req ».

Par exemple, la déclaration de stratégie suivante limite les balises qu'un utilisateur peut attribuer à uneressource donnée pour une liste spécifique de valeurs autorisées.

"Condition":{ "streq": { "dms:rep-tag/stage": [ "production", "development", "testing" ] }}

Les exemples de stratégie suivants limitent l'accès à une ressource AWS DMS en fonction des balises dela ressource.

Version de l'API API Version 2016-01-0174

Page 82: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des balises pour contrôler l'accès

La stratégie suivante limite l'accès à une instance de réplication où la valeur de balise est « Desktop » et laclé de balise « Env » :

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:rep-tag/Env": [ "Desktop" ] } } } ]}

Les commandes suivantes réussissent ou échouent en fonction de la stratégie IAM qui restreint l'accèslorsque la valeur de balise est « Desktop » et la clé de balise « Env ».

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --endpoint-url http://localhost:8000 { "TagList": [ { "Value": "Desktop", "Key": "Env" } ]}

$ aws dms delete-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN"A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms modify-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN"

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

Version de l'API API Version 2016-01-0175

Page 83: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des balises pour contrôler l'accès

$ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

La stratégie suivante limite l'accès à un point de terminaison AWS DMS où la valeur de balise est« Desktop » et la clé de balise « Env ».

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:endpoint-tag/Env": [ "Desktop" ] } } } ]}

Les commandes suivantes réussissent ou échouent en fonction de la stratégie IAM qui restreint l'accèslorsque la valeur de balise est « Desktop » et la clé de balise « Env ».

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I{ "TagList": [ { "Value": "Desktop", "Key": "Env" } ]}

$ aws dms delete-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms modify-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint

Version de l'API API Version 2016-01-0176

Page 84: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation des balises pour contrôler l'accès

operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

La stratégie suivante limite l'accès à une tâche de réplication où la valeur de balise est « Desktop » et la cléde balise « Env ».

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:task-tag/Env": [ "Desktop" ] } } } ]}

Les commandes suivantes réussissent ou échouent en fonction de la stratégie IAM qui restreint l'accèslorsque la valeur de balise est « Desktop » et la clé de balise « Env ».

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3{ "TagList": [ { "Value": "Desktop", "Key": "Env" } ]}

Version de l'API API Version 2016-01-0177

Page 85: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDéfinition d'une clé de chiffrement

$ aws dms delete-replication-task --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

Définition d'une clé de chiffrement et spécificationdes autorisations AWS KMS

AWS DMS chiffre le stockage utilisé par une instance de réplication et les informations de connexion depoint de terminaison. Pour chiffrer le stockage utilisé par une instance de réplication, AWS DMS utilise uneclé AWS Key Management Service (AWS KMS) unique pour votre compte AWS. Vous pouvez afficher etgérer cette clé avec AWS KMS. Vous pouvez utiliser la clé AWS KMS par défaut de votre compte (aws/dms) ou créer une clé AWS KMS personnalisée. Si vous disposez d'une clé AWS KMS existante, vouspouvez également utiliser cette clé pour le chiffrement.

Note

Toute clé AWS KMS personnalisée ou existante que vous utilisez comme clé de chiffrement doitêtre une clé symétrique. AWS DMS ne prend pas en charge l'utilisation de clés de chiffrementasymétriques. Pour plus d'informations sur les clés de chiffrement symétriques et asymétriques,consultez https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.htmldans le manuel du développeur AWS Key Management Service.

La clé AWS KMS par défaut (aws/dms) est créée lorsque vous lancez pour la première fois une instancede réplication, si vous n'avez pas sélectionné de clé principale AWS KMS personnalisée dans la sectionAvancé de la page Créer une instance de réplication. Si vous utilisez la clé AWS KMS par défaut, lesseules autorisations que vous devez accorder au compte utilisateur IAM que vous utilisez pour la migrationsont kms:ListAliases et kms:DescribeKey. Pour de plus amples informations sur l'utilisation de la cléAWS KMS par défaut, veuillez consulter Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

Pour utiliser une clé AWS KMS personnalisée, vous devez attribuer des autorisations pour la clé AWS KMSpersonnalisée en appliquant l'une des options suivantes :

• Ajoutez le compte utilisateur IAM utilisé pour la migration en tant qu'administrateur ou utilisateur de la clépour la clé AWS KMS personnalisée. Cela permettra de garantir l'attribution des autorisations AWS KMS

Version de l'API API Version 2016-01-0178

Page 86: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDéfinition d'une clé de chiffrement

requises au compte utilisateur IAM. Cette action est effectuée en plus des autorisations IAM que vousdevez attribuer au compte utilisateur IAM pour utiliser AWS DMS. Pour plus d'informations sur l'octroid'autorisations à un utilisateur de clé, consultez Autorise les utilisateurs de clé à utiliser la clé CMK dansle AWS Key Management Service Developer Guide.

• Si vous ne souhaitez pas ajouter le compte utilisateur IAM en tant qu'administrateur ou utilisateur de laclé pour la clé AWS KMS personnalisée, ajoutez les autorisations suivantes aux autorisations IAM quidoivent être accordées au compte utilisateur IAM pour utiliser AWS DMS.

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey", "kms:CreateGrant", "kms:Encrypt", "kms:ReEncrypt*" ], "Resource": "*" },

AWS DMS fonctionne également avec les alias de clé AWS KMS. Pour de plus amples informations sur lacréation de vos propres clés AWS KMS et sur la configuration de l'accès des utilisateurs à ces clés AWSKMS, veuillez consulter le manuel du développeur KMS.

Si vous ne précisez pas d'identifiant de clé AWS KMS, AWS DMS utilise votre clé de chiffrement pardéfaut. AWS KMS crée votre clé de chiffrement par défaut pour AWS DMS, pour votre compte AWS. Votrecompte AWS a une clé de chiffrement par défaut différente pour chaque région AWS.

Pour gérer les clés AWS KMS utilisées pour le chiffrement et le déchiffrement de vos ressources AWSDMS, utilisez le AWS Key Management Service. AWS KMS combine du matériel et des logiciels sécuriséset hautement disponibles pour fournir un système de gestion de clés à l'échelle du cloud. Grâce à AWSKMS, vous pouvez créer des clés de chiffrement et définir les stratégies qui contrôlent la manière dont cesclés peuvent être utilisées.

Vous pouvez trouver AWS KMS dans le AWS Management Console

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Key Management Service(AWS KMS) à l'adresse https://console.aws.amazon.com/kms.

2. Pour changer de région AWS, utilisez le sélecteur de région dans l’angle supérieur droit de la page.3. Choisissez l'une des options suivantes pour utiliser les clés AWS KMS :

• Pour afficher les clés de votre compte qui ont été créées et sont gérées automatiquement par AWS,dans le volet de navigation, choisissez AWS managed keys (Clés gérées par AWS).

• Pour afficher les clés de votre compte que vous créez et gérez vous-même, dans le volet denavigation, choisissez Customer managed key (Clés gérées par le client).

AWS KMS prend en charge AWS CloudTrail pour vous permettre d'effectuer l'audit de l'utilisation des cléset vérifier que cette utilisation est appropriée. Vos clés AWS KMS peuvent être utilisées avec AWS DMS etles services AWS pris en charge, tels que Amazon RDS, Amazon S3, Amazon Redshift et Amazon EBS.

Vous pouvez également créer des clés AWS DMS personnalisées pour chiffrer spécifiquement desdonnées cibles pour les points de terminaison AWS KMS suivants :

• Amazon Redshift – Pour plus d'informations, consultez Création et utilisation de clés AWS KMS pourchiffrer des données cibles Amazon Redshift (p. 232).

Version de l'API API Version 2016-01-0179

Page 87: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSécurité du réseau

• Amazon S3 – Pour plus d'informations, consultez Création de clés AWS KMS pour chiffrer des objetscibles Amazon S3 (p. 251).

Une fois que vous avez créé vos ressources AWS DMS avec une clé AWS KMS, vous ne pouvez pasmodifier la clé de chiffrement pour ces ressources. Prenez soin de déterminer vos besoins en termes declés de chiffrement avant de créer vos ressources AWS DMS.

Sécurité de réseau pourAWS Database Migration Service

Les exigences de sécurité pour le réseau que vous créez lors de l'utilisationd'AWS Database Migration Service dépendent de la façon dont vous configurez le réseau. Les règlesgénérales pour la sécurité du réseau pour AWS DMS sont les suivantes :

• L'instance de réplication doit avoir accès aux points de terminaison source et cible. Le groupe de sécuritépour l'instance de réplication doit disposer d'ACL réseau ou de règles qui autorisent le trafic sortant àpartir de l'instance sur le port de base de données vers les points de terminaison de base de données.

• Les points de terminaison de base de données doivent inclure des ACL réseau et des règles de groupede sécurité qui autorisent l'accès entrant à partir de l'instance de réplication. Vous pouvez atteindrecet objectif à l'aide du groupe de sécurité de l'instance de réplication, l'adresse IP privée, l'adresse IPpublique ou l'adresse publique de la passerelle NAT, selon votre configuration.

• Si votre réseau utilise un tunnel VPN, l'instance Amazon EC2 qui agit comme la passerelle NAT doiventutiliser un groupe de sécurité possédant des règles qui permettent à l'instance de réplication d'y envoyerle trafic.

Par défaut, le groupe de sécurité VPC utilisé par l'instance de réplication AWS DMS possède des règlesqui autorisent le trafic sortant à 0.0.0.0/0 sur tous les ports. Si vous modifiez ce groupe de sécurité ou quevous utilisez votre propre groupe de sécurité, le trafic sortant doit, au minimum, être autorisé sur les pointsde terminaison sources et cibles des ports de base de données respectifs.

Les configurations de réseau que vous pouvez utiliser pour la migration de base de données chaquerequièrent toutes des normes de sécurité spécifiques :

• Configuration avec tous les composants de migration de base de données dans un VPC (p. 102) — Legroupe de sécurité utilisé par les points de terminaison doit autoriser le trafic entrant sur le port de basede données à partir de l'instance de réplication. Veillez que le groupe de sécurité utilisé par l'instance deréplication dispose du trafic entrant vers les points de terminaison, ou créez une règle dans le groupede sécurité utilisé par les points de terminaison qui autorise l'adresse IP privée de l'accès à la réplicationd'instance.

• Configuration à deux VPC (p. 102) — Le groupe de sécurité utilisé par l'instance de réplication doitavoir une règle pour la plage VPC et le port de base de données sur la base de données.

• Configuration d'un réseau à un VPC à l'aide d'AWS Direct Connect ou d'un VPN (p. 103) — Un tunnelVPN autorisant le trafic vers le tunnel à partir du VPC vers un VPN sur site. Dans cette configuration, leVPC comporte une règle de routage qui envoie le trafic destiné à une adresse IP spécifique ou une plagevers un hôte qui peut acheminer le trafic du VPC vers le VPN sur site. Dans ce cas, l'hôte NAT inclut sespropres paramètres de groupe de sécurité qui doivent autoriser le trafic provenant de l'adresse IP privéeou du groupe de sécurité de l'instance de réplication vers l'instance NAT.

• Configuration d'un réseau à un VPC avec Internet (p. 103) — Le groupe de sécurité du VPC doitinclure des règles de routage qui envoient le trafic non destiné au VPC à la passerelle Internet. Danscette configuration, la connexion au point de terminaison semble provenir de l'adresse IP publique surl'instance de réplication.

Version de l'API API Version 2016-01-0180

Page 88: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SSL

• Configuration avec une instance de base de données Amazon RDS qui ne se trouve pas dans un VPCet une instance de base de données dans un VPC utilisant ClassicLink (p. 104) — Lorsque l'instancede base de données Amazon RDS source ou cible ne se trouve pas dans un VPC et ne partage pas ungroupe de sécurité avec le VPC où se trouve l'instance de réplication, vous pouvez configurer un serveurproxy et utiliser ClassicLink pour vous connecter à des bases de données source et cible.

• Le point de terminaison source est en dehors du VPC utilisé par l'instance de réplication et utilise unepasserelle NAT — Vous pouvez configurer une passerelle NAT (Network Address Translation, traductiond'adresses réseau) en utilisant une seule adresse IP Elastic liée à une seule interface réseau Elastic.Celle-ci reçoit alors un identificateur NAT (nat-#####). Si le VPC comporte une route par défaut pourcette passerelle NAT au lieu de la passerelle Internet, l'instance de réplication apparaît pour contacter lepoint de terminaison de base de données à l'aide de l'adresse IP publique de la passerelle Internet. Dansce cas, le trafic entrant vers le point de terminaison de base de données en dehors du VPC doit autoriserle trafic entrant à partir de l'adresse NAT au lieu de l'adresse IP publique de l'instance de réplication.

Utilisation du protocole SSL avecAWS Database Migration Service

Vous pouvez chiffrer les connexions pour les points de terminaison source et cible grâce au protocole SSL(Secure Sockets Layer). Pour ce faire, vous pouvez utiliser la console de gestion AWS DMS ou l'API AWSDMS pour attribuer un certificat à un point de terminaison. Vous pouvez également utiliser la console AWSDMS pour gérer vos certificats.

Toutes les bases de données n'utilisent pas SSL de la même façon. Amazon Aurora avec compatibilitéMySQL utilise le nom du serveur et le point de terminaison de l'instance principale dans le cluster en tantque point de terminaison pour SSL. Un point de terminaison AWS DMS utilise déjà une connexion SSL etne requiert pas de connexion SSL configurée par Amazon Redshift. Un point de terminaison Oracle requiertdes étapes supplémentaires ; pour plus d'informations, consultez Prise en charge de SSL pour un point determinaison Oracle (p. 85).

Rubriques• Limitations sur l'utilisation de SSL avec AWS DMS (p. 82)• Gestion de certificats (p. 83)• Activation de SSL pour un point de terminaison SQL Server, PostgreSQL ou compatible

MySQL (p. 83)• Prise en charge de SSL pour un point de terminaison Oracle (p. 85)

Pour attribuer un certificat à un point de terminaison, vous fournissez le certificat racine ou la chaînede certificats CA intermédiaires menant à la racine (sous la forme d'un ensemble de certificats) qui aété utilisée pour signer le certificat SSL du serveur qui est déployé sur votre point de terminaison. Lescertificats sont acceptés uniquement sous la forme de fichiers X509 au format PEM. Lorsque vous importezun certificat, vous recevez un ARN (Amazon Resource Name), que vous pouvez utiliser pour spécifier cecertificat pour un point de terminaison. Si vous utilisez Amazon RDS, vous pouvez télécharger l'autoritéde certification racine et le bundle de certificats fournis dans le rds-combined-ca-bundle.pemfichier hébergé par Amazon RDS. Pour plus d'informations sur le téléchargement de ce fichier, consultezUtilisation de SSL/TLS pour chiffrer une connexion à une instance de base de données dans le AmazonRDS Guide de l'utilisateur.

Vous avez le choix parmi plusieurs modes SSL à utiliser pour vérifier le certificat SSL.

• none – La connexion n'est pas chiffrée. Cette option n'est pas sécurisée, mais elle nécessite moins deressources.

• require – La connexion est chiffrée à l'aide du protocole SSL (TLS), mais aucune vérification d'autorité decertification n'est effectuée. Cette option est plus sécurisée, mais elle nécessite plus de ressources.

Version de l'API API Version 2016-01-0181

Page 89: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLimitations sur l'utilisation de SSL avec AWS DMS

• verify-ca – La connexion est chiffrée. Cette option est plus sécurisée, mais elle nécessite plus deressources. Cette option vérifie le certificat de serveur.

• verify-full – La connexion est chiffrée. Cette option est plus sécurisée, mais elle nécessite plus deressources. Cette option vérifie le certificat de serveur et vérifie que le nom d'hôte du serveur correspondà l'attribut de nom d'hôte pour le certificat.

Les modes SSL ne fonctionnent pas tous avec tous les points de terminaison de base de données. Letableau suivant présente les modes SSL pris en charge pour chaque moteur de base de données.

Moteur de base dedonnées

none require verify-ca verify-full

MySQL/MariaDB/Amazon Aurora MySQL

Par défaut Non pris encharge

Pris en charge Pris en charge

Microsoft SQL Server Par défaut Pris en charge Non pris encharge

Pris en charge

PostgreSQL Par défaut Pris en charge Pris en charge Pris en charge

Amazon Redshift Par défaut SSL non activé SSL non activé SSL non activé

Oracle Par défaut Non pris encharge

Pris en charge Non pris encharge

SAP ASE Par défaut SSL non activé SSL non activé Pris en charge

MongoDB Par défaut Pris en charge Non pris encharge

Pris en charge

Db2 LUW Par défaut Non pris encharge

Pris en charge Non pris encharge

Limitations sur l'utilisation de SSL avec AWS DMSVoici les limitations relatives à l'utilisation de SSL avec AWS DMS :

• Les connexions SSL aux points de terminaison Amazon Redshift cibles ne sont pas prises en charge.AWS DMS utilise un compartiment Amazon S3 pour transférer les données vers la base de donnéesAmazon Redshift. Cette transmission est chiffrée par Amazon Redshift par défaut.

• Des délais d'attente SQL peuvent se produire lors de l'exécution de tâches de capture des changementsde données (CDC) avec les points de terminaison Oracle compatibles SSL. Si vous rencontrez unproblème, dans lequel les compteurs CDC ne reflètent pas les nombres attendus, affectez une valeurinférieure au paramètre MinimumTransactionSize dans la section ChangeProcessingTuningdes paramètres de tâche. La valeur la plus faible possible correspond à 100. Pour plus d'informationssur le paramètre MinimumTransactionSize, consultez Paramètres de réglage du traitement desmodifications (p. 341).

• Vous ne pouvez importer les certificats que dans les formats .pem et .sso (portefeuille Oracle).• Dans certains cas, le certificat SSL de votre serveur peut être signé par une autorité de certification

intermédiaire. Si tel est le cas, assurez-vous que toute la chaîne de certificats allant de l'autorité decertification intermédiaire à l'autorité de certification racine est importée en tant que fichier .pem unique.

• Si vous utilisez des certificats auto-signés sur votre serveur, sélectionnez require comme mode SSL. Lemode SSL require fait confiance implicitement au certificat SSL du serveur et ne tente pas de s'assurerque le certificat a été signé par une autorité de certification.

Version de l'API API Version 2016-01-0182

Page 90: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurGestion de certificats

Gestion de certificatsVous pouvez utiliser la console DMS pour afficher et gérer vos certificats SSL. Vous pouvez égalementimporter vos certificats à l'aide de la console DMS.

Activation de SSL pour un point de terminaison SQLServer, PostgreSQL ou compatible MySQLVous pouvez ajouter une connexion SSL à un point de terminaison nouvellement créé ou à un point determinaison existant.

Pour créer un point de terminaison AWS DMS avec SSL

1. Connectez-vous à AWS Management Console et choisissez AWS Database Migration Service.

Note

Si vous êtes connecté en tant qu'utilisateur AWS Identity and Access Management (IAM),vous devez disposer des autorisations appropriées pour accéder à AWS DMS. Pour plusd'informations sur les autorisations requises pour la migration de base de données, consultezAutorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Dans le volet de navigation, choisissez Certificates.3. Sélectionnez Import Certificate.4. Téléchargez le certificat que vous voulez utiliser pour chiffrer la connexion à un point de terminaison.

Note

Vous pouvez également télécharger un certificat à l'aide de la console AWS DMS lorsquevous créez ou modifiez un point de terminaison en sélectionnant Add new CA certificate(Ajouter un certificat) sur la page Create database endpoint (Créer un point de terminaison debase de données).

5. Créez un point de terminaison comme décrit dans la page Étape 3 : Spécifier les points de terminaisonsource et cible (p. 28)

Version de l'API API Version 2016-01-0183

Page 91: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurActivation de SSL pour un point de terminaisonSQL Server, PostgreSQL ou compatible MySQL

Pour modifier un point de terminaison AWS DMS existant afin d'utiliser le protocole SSL :

1. Connectez-vous à AWS Management Console et choisissez AWS Database Migration Service.

Note

Si vous êtes connecté en tant qu'utilisateur AWS Identity and Access Management (IAM),vous devez disposer des autorisations appropriées pour accéder à AWS DMS. Pour plusd'informations sur les autorisations requises pour la migration de base de données, consultezAutorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Dans le volet de navigation, choisissez Certificates.3. Sélectionnez Import Certificate.4. Téléchargez le certificat que vous voulez utiliser pour chiffrer la connexion à un point de terminaison.

Note

Vous pouvez également télécharger un certificat à l'aide de la console AWS DMS lorsquevous créez ou modifiez un point de terminaison en sélectionnant Add new CA certificate(Ajouter un certificat) sur la page Create database endpoint (Créer un point de terminaison debase de données).

5. Dans le volet de navigation, sélectionnez Endpoints, sélectionnez le point de terminaison à modifier,puis Modify.

6. Choisissez une valeur pour le mode SSL.

Si vous choisissez le mode verify-ca ou verify-full, spécifiez le certificat que vous souhaitez utiliser pourle certificat d'autorité de certification, comme indiqué ci-dessous.

7. Sélectionnez Modify.

Version de l'API API Version 2016-01-0184

Page 92: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrise en charge de SSL pour un point de terminaison Oracle

8. Lorsque le point de terminaison a été modifié, sélectionnez-le et choisissez Test connection (Tester laconnexion) pour déterminer si la connexion SSL fonctionne.

Lorsque vous avez créé vos points de terminaison source et cible, créez une tâche qui utilise ces pointsde terminaison. Pour plus d'informations sur la création d'une tâche, consultez Étape 4 : Création d'unetâche (p. 33).

Prise en charge de SSL pour un point de terminaisonOracleLes points de terminaisonAWS DMS Oracle prennent en charge SSL V3 pour les modes SSL none etverify-ca. Pour utiliser SSL avec un point de terminaison Oracle, vous devez charger le portefeuilleOracle pour le point de terminaison au lieu des fichiers de certificat .pem.

Rubriques• Utilisation d'un certificat existant pour Oracle SSL (p. 85)• Utilisation d'un certificat auto-signé pour Oracle SSL (p. 86)

Utilisation d'un certificat existant pour Oracle SSLPour utiliser une installation de client Oracle existante afin de créer le fichier de portefeuille Oracle à partirdu fichier de certificat CA, procédez comme suit.

Pour utiliser une installation de client Oracle existante pour Oracle SSL avec AWS DMS

1. Définissez la variable système ORACLE_HOME vers l'emplacement de votre répertoire dbhome_1 enexécutant la commande suivante :

prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1

2. Ajoutez $ORACLE_HOME/lib à la variable système LD_LIBRARY_PATH.

prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

3. Créez un répertoire pour le portefeuille Oracle à l'adresse $ORACLE_HOME/ssl_wallet.

prompt>mkdir $ORACLE_HOME/ssl_wallet

4. Placez le fichier .pem du certificat de l'autorité de certification dans le répertoire ssl_wallet. Si vousutilisez Amazon RDS, vous pouvez télécharger le fichier de certificat d'autorité de certification racinerds-ca-2015-root.pem hébergé par Amazon RDS. Pour plus d'informations sur le téléchargementde ce fichier, consultez Utilisation de SSL/TLS pour chiffrer une connexion à une instance de base dedonnées dans le Amazon RDS Guide de l'utilisateur.

5. Exécutez les commandes suivantes pour créer le portefeuille Oracle.

prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only

Version de l'API API Version 2016-01-0185

Page 93: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrise en charge de SSL pour un point de terminaison Oracle

prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert –cert $ORACLE_HOME/ssl_wallet/ca-cert.pem -auto_login_only

Une fois que vous avez terminé les étapes précédentes, vous pouvez importer le fichier de portefeuilleavec l'API ImportCertificate, en spécifiant le paramètre de portefeuille de certificat. Vous pouvez ensuiteutiliser le certificat de portefeuille importé lorsque vous sélectionnez verify-ca comme mode SSL lors dela création ou de la modification de votre point de terminaison Oracle.

Note

Les portefeuilles Oracle sont des fichiers binaires. AWS DMS accepte ces fichiers en l'état.

Utilisation d'un certificat auto-signé pour Oracle SSLPour utiliser un certificat auto-signé pour Oracle SSL, procédez comme suit.

Pour utiliser un certificat auto-signé pour Oracle SSL avec AWS DMS

1. Créez un répertoire que vous utiliserez pour travailler avec le certificat auto-signé.

mkdir <SELF_SIGNED_CERT_DIRECTORY>

2. Accédez au répertoire que vous avez créé à l'étape précédente.

cd <SELF_SIGNED_CERT_DIRECTORY>

3. Créez une clé racine.

openssl genrsa -out self-rootCA.key 2048

4. Auto-signez un certificat racine à l'aide de la clé racine que vous avez créée à l'étape précédente.

openssl req -x509 -new -nodes -key self-rootCA.key -sha256 -days 1024 -out self-rootCA.pem

5. Créez un répertoire de portefeuille Oracle pour la base de données Oracle.

mkdir $ORACLE_HOME/self_signed_ssl_wallet

6. Créez un nouveau portefeuille Oracle.

orapki wallet create -wallet $ORACLE_HOME/self_signed_ssl_wallet -pwd <password> -auto_login_local

7. Ajoutez le certificat racine au portefeuille Oracle.

orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet -trusted_cert -cert self-rootCA.pem -pwd <password>

8. Affichez le contenu du portefeuille Oracle. La liste doit inclure le certificat racine.

orapki wallet display -wallet $ORACLE_HOME/self_signed_ssl_wallet

9. Générez la demande de signature de certificat (CSR) à l'aide de l'utilitaire ORAPKI.

Version de l'API API Version 2016-01-0186

Page 94: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrise en charge de SSL pour un point de terminaison Oracle

orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet -dn "CN=dms" -keysize 2048 -sign_alg sha256 -pwd <password>

10. Exécutez la commande suivante.

openssl pkcs12 -in $ORACLE_HOME/self_signed_ssl_wallet/ewallet.p12 -nodes -out nonoracle_wallet.pem

11. Mettez « dms » comme nom commun.

openssl req -new -key nonoracle_wallet.pem -out certrequest.csr

12. Obtenez la signature de certificat.

openssl req -noout -text -in certrequest.csr | grep -i signature

13. Si la sortie de l'étape 12 est sha1WithRSAEncryption ou sha256WithRSAEncryption, exécutez le codesuivant.

openssl x509 -req -in certrequest.csr -CA self-rootCA.pem-CAkey self-rootCA.key -CAcreateserial-out certrequest.crt -days 365 -sha256

14. Si la sortie de l'étape 12 est md5WithRSAEncryption, exécutez le code suivant.

openssl x509 -req -in certrequest.csr -CA self-rootCA.pem -CAkey self-rootCA.key -CAcreateserial -out certrequest.crt -days 365 -sha256

15. Ajoutez le certificat au portefeuille.

orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet -user_cert -cert certrequest.crt -pwd <password>

16. Configurez le fichier sqlnet.ora ($ORACLE_HOME/network/admin/sqlnet.ora).

WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = <ORACLE_HOME>/self_signed_ssl_wallet) ) )

SQLNET.AUTHENTICATION_SERVICES = (NONE)SSL_VERSION = 1.0SSL_CLIENT_AUTHENTICATION = FALSESSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)

17. Arrêtez l'écouteur Oracle.

lsnrctl stop

18. Ajoutez des entrées pour SSL dans le fichier listener.ora ($ORACLE_HOME/network/admin/listener.ora).

SSL_CLIENT_AUTHENTICATION = FALSEWALLET_LOCATION =

Version de l'API API Version 2016-01-0187

Page 95: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrise en charge de SSL pour un point de terminaison Oracle

(SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = <ORACLE_HOME>/self_signed_ssl_wallet) ) )

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = <SID>) (ORACLE_HOME = <ORACLE_HOME>) (SID_NAME = <SID>) ) )

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )

19. Configurez le fichier tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora).

<SID>=(DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ))

<SID>_ssl=(DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ))

20. Redémarrez l'écouteur Oracle.

lsnrctl start

21. Affichez le statut de l'écouteur Oracle.

lsnrctl status

22. Testez la connexion SSL à la base de données à partir de localhost à l'aide de sqlplus et de l'entréeSSL tnsnames.

sqlplus -L <ORACLE_USER>@<SID>_ssl

23. Vérifiez que la connexion a été établie à l'aide de SSL.

Version de l'API API Version 2016-01-0188

Page 96: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification du mot de passe de base de données

SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL;

SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')--------------------------------------------------------------------------------tcps

24. Accédez au répertoire contenant le certificat auto-signé.

cd <SELF_SIGNED_CERT_DIRECTORY>

25. Créez un nouveau portefeuille Oracle client qui sera utilisé par AWS DMS.

orapki wallet create -wallet ./ -auto_login_only

26. Ajoutez le certificat racine auto-signé au portefeuille Oracle.

orapki wallet add -wallet ./ -trusted_cert -cert rootCA.pem -auto_login_only

27. Affichez le contenu du portefeuille Oracle qui sera utilisé par AWS DMS. La liste doit inclure le certificatracine auto-signé.

orapki wallet display -wallet ./

28. Chargez le portefeuille Oracle que vous venez de créer sur AWS DMS.

Modification du mot de passe de base de donnéesDans la plupart des cas, la modification du mot de passe de base de données pour votre point determinaison source ou cible est un processus simple. Si vous avez besoin modifier le mot de passe de basede données pour un point de terminaison que vous utilisez actuellement dans une tâche de réplication oude migration, le processus est un peu plus complexe. La procédure suivante montre comment procéder.

Pour modifier le mot de passe de base de données pour un point de terminaison dans une tâchede réplication ou de migration

1. Connectez-vous à AWS Management Console et choisissez AWS DMS. Si vous êtes connecté entant qu'utilisateur AWS Identity and Access Management (IAM), vous devez disposer des autorisationsappropriées pour accéder à AWS DMS. Pour plus d'informations sur les autorisations requises,consultez Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Dans le volet de navigation, choisissez Tasks.3. Choisissez la tâche qui utilise le point de terminaison pour lequel vous voulez modifier le mot de passe

de base de données, puis choisissez Stop.4. Pendant que la tâche est en cours d'arrêt, vous pouvez modifier le mot de passe de la base de

données pour le point de terminaison à l'aide des outils natifs que vous utilisez pour gérer la base dedonnées.

5. Revenez à la console de gestion DMS et choisissez Endpoints dans le volet de navigation.6. Choisissez le point de terminaison pour la base de données dont vous avez modifié le mot de passe,

puis sélectionnez Modify.7. Tapez le nouveau mot de passe dans la zone Password, puis choisissez Modify.8. Choisissez Tasks dans le volet de navigation.9. Choisissez la tâche que vous avez arrêtée précédemment, puis Start/Resume.10. Choisissez Start ou Resume selon la façon dont vous voulez continuer à la tâche, puis choisissez Start

task.

Version de l'API API Version 2016-01-0189

Page 97: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLimites pour AWS Database Migration Service

Limites pourAWS Database Migration Service

Vous trouverez ci-après les limites de ressources et les contraintes d'attribution de noms pourAWS Database Migration Service (AWS DMS).

La taille maximale d'une base de données que AWS DMS peut migrer dépend de votre environnementsource, de la distribution des données dans votre base de données source et dans quelle métrique votresystème source est occupé. Le meilleur moyen de déterminer si le système est un bon candidat pour AWSDMS est de le tester. Commencez lentement afin de pouvoir affiner la configuration, puis ajoutez des objetscomplexes et enfin, tentez un chargement complet comme test.

Limites pour AWS Database Migration ServiceChaque compte AWS possède des limites, par région, sur le nombre de ressources AWS DMS pouvantêtre créées. Une fois qu'une limite a été atteinte pour une ressource, les appels supplémentaires pour créercette ressource échouent avec une exception.

Le tableau ci-dessous répertorie les ressources AWS DMS et leurs limites par région.

Ressource Limite par défaut

Instances de réplication 20

Quantité totale de stockage pour une instance de réplication 10 To

Abonnements aux événements 20

Groupes de sous-réseaux de réplication 20

Sous-réseaux par groupe de sous-réseaux de réplication 20

Points de terminaison 100

Tâches 200

Points de terminaison par instance 20

Note

• La limite de 10 To pour le stockage s'applique à l'instance de réplication DMS. Ce stockage estutilisé pour mettre en cache les modifications si la cible ne peut satisfaire les exigences de lasource et pour stocker les informations de journal.

• La taille de stockage des points de terminaison source et cible peut dépasser 10 To.

Version de l'API API Version 2016-01-0190

Page 98: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Utilisation d'une instance deréplication AWS DMS

Lorsque vous créez une instance de réplication AWS DMS, AWS DMS crée l'instance de réplication surune instance Amazon Elastic Compute Cloud (Amazon EC2) dans un VPC basé sur le service AmazonVirtual Private Cloud (Amazon VPC). Cette instance de réplication vous permet de réaliser votre migrationde base de données. L'instance de réplication fournit une haute disponibilité et une prise en charge dubasculement à l'aide d'un déploiement Multi-AZ lorsque vous sélectionnez l'option Multi-AZ.

Dans un déploiement multi-AZ, AWS DMS met en service et gère automatiquement un réplica de secourssynchrone de l'instance de réplication dans une zone de disponibilité différente. L'instance de réplicationprincipale est répliquée de manière synchrone entre les Zones de Disponibilité vers le réplica de secours.Cette approche offre la redondance des données, élimine les figements d'E/S et minimise les pics delatence.

AWS DMS utilise une instance de réplication pour se connecter à votre magasin de données source, lireles données sources et formater les données en vue de leur consommation par le magasin de donnéescible. Une instance de réplication charge également les données dans le magasin de données cible.La majeure partie de ce traitement se passe dans la mémoire. Cependant, les transactions importantespeuvent nécessiter une mise en mémoire tampon sur disque. Les transactions mises en cache et lesfichiers journaux sont également écrits sur le disque.

Vous pouvez créer une instance de réplication AWS DMS dans les régions AWS suivantes.

Région Nom

Région Asie-Pacifique (Tokyo) ap-northeast-1

Région Asie-Pacifique (Séoul) ap-northeast-2

Région Asie-Pacifique (Mumbai) ap-south-1

Région Asie-Pacifique (Singapour) ap-southeast-1

Région Asie-Pacifique (Sydney) ap-southeast-2

Région Canada (Centre) ca-central-1

Région Chine (Pékin) cn-north-1

Région Chine (Ningxia) cn-northwest-1

Version de l'API API Version 2016-01-0191

Page 99: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation détaillée des instances de réplication

Région Nom

Région Europe (Stockholm) eu-north-1

Région UE (Francfort) eu-central-1

Région Europe (Irlande) eu-west-1

Région UE (Londres) eu-west-2

Région UE (Paris) eu-west-3

Région Amérique du Sud (São Paulo) sa-east-1

Région USA Est (Virginie du N.) us-east-1

Région USA Est (Ohio) us-east-2

Région USA Ouest (Californie du Nord) us-west-1

Région USA Ouest (Oregon) us-west-2

AWS DMS prend en charge une région AWS particulière appelée AWS GovCloud (US), qui est conçuepour permettre aux clients et aux agences gouvernementales américains de déplacer les charges detravail les plus sensibles vers le cloud. AWS GovCloud (US) répond aux exigences de conformité et deréglementation spécifiques du gouvernement américain. Pour plus d'informations sur AWS GovCloud (US),consultez Qu'est-ce qu'AWS GovCloud (US) ?

Ci-dessous, vous trouverez plus d'informations sur les instances de réplication.

Rubriques• Sélection de l'instance de réplication AWS DMS appropriée pour votre migration (p. 92)• Instances de réplication publiques et privées (p. 94)• Maintenance d'AWS DMS (p. 94)• Utilisation des versions du moteur de réplication (p. 98)• Configuration d'un réseau pour une instance de réplication (p. 101)• Définition d'une clé de chiffrement pour une instance de réplication (p. 108)• Création d'une instance de réplication (p. 109)• Modification d'une instance de réplication (p. 113)• Redémarrage d'une instance de réplication (p. 116)• Suppression d'une instance de réplication (p. 118)• Instructions DDL prises en charge par AWS DMS (p. 119)

Sélection de l'instance de réplication AWS DMSappropriée pour votre migration

AWS DMS crée l'instance de réplication sur une instance. Amazon Elastic Compute Cloud (AmazonEC2). AWS DMS prend actuellement en charge les classes d'instance Amazon EC2 T2, C4 et R4 pour lesinstances de réplication :

• Les classes d'instances T2 sont des instances standard à coût réduit conçues pour fournir desperformances de l'UC de base avec la possibilité d'émettre en rafales au-delà de ce niveau. Elles

Version de l'API API Version 2016-01-0192

Page 100: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation détaillée des instances de réplication

conviennent pour le développement, la configuration et le test de votre processus de migration debase de données. Elles fonctionnent également parfaitement pour les tâches de migration de donnéespériodiques qui peuvent bénéficier de la capacité d'émission en rafales de l'UC.

• Les classes d'instances C4 ont été conçues de façon à proposer le plus haut niveau de performancesde processeur pour les charges de travail informatiques intensives. Elles offrent des performancesde paquet par seconde (PPS) nettement plus élevées, ainsi qu'une instabilité et une latence réseauréduites. AWS DMS peut être très consommateur d'UC, en particulier lors de migrations et deréplications hétérogènes telles que la migration d'Oracle vers PostgreSQL. Les instances C4 peuventêtre un choix judicieux pour ces situations.

• Les classes d'instances R4 sont optimisées pour la mémoire pour les charges de travail consommatricesde mémoire. Les migrations et réplications continues des systèmes de transactions à haut débit utilisantDMS peuvent parfois consommer de grandes quantités de ressources d'UC et de mémoire. Lesinstances R4 incluent davantage de mémoire par vCPU.

Chaque instance de réplication a une configuration spécifique de la mémoire et des processeurs virtuels.Le tableau suivant présente la configuration pour chaque type d'instance de réplication. Pour obtenir desinformations sur la tarification, consultez la Page de tarification d'AWS Database Migration Service.

Type d'instance de réplication vCPU Mémoire (Go)

Usage général

dms.t2.micro 1 1

dms.t2.small 1 2

dms.t2.medium 2 4

dms.t2.large 2 8

Calcul optimisé

dms.c4.large 2 3,75

dms.c4.xlarge 4 7,5

dms.c4.2xlarge 8 15

dms.c4.4xlarge 16 30

Mémoire optimisée

dms.r4.large 2 15,25

dms.r4.xlarge 4 30,5

dms.r4.2xlarge 8 61

dms.r4.4xlarge 16 122

dms.r4.8xlarge 32 244

Pour vous aider à déterminer quelle classe d'instance de réplication serait la plus adaptée pour votremigration, examinons le processus de capture des changements de données (CDC) que l'instance deréplication AWS DMS utilise.

Supposons que vous exécutez une tâche de chargement complet + CDC (chargement en masse +réplication continue). Dans ce cas, la tâche a son propre référentiel SQLite pour stocker les métadonnées

Version de l'API API Version 2016-01-0193

Page 101: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurInstances de réplication publiques et privées

et d'autres informations. Avant qu'AWS DMS commence un chargement complet, les étapes suivantes seproduisent :

• AWS DMS commence à capturer les changements pour les tables qu'il migre à partir du journal destransactions du moteur source (nous les appelons modifications mises en cache). Une fois le chargementcomplet terminé, ces modifications mises en cache sont collectées et appliquées sur la cible. En fonctiondu volume des modifications mises en cache, ces modifications peuvent être appliquées directement àpartir de la mémoire, où elles sont collectées en premier, jusqu'à un seuil défini. Elles peuvent égalementêtre appliquées à partir du disque, où les modifications sont écrites lorsqu'elles ne peuvent pas êtreconservées en mémoire.

• Une fois les modifications mises en cache appliquées, par défaut, AWS DMS commence une applicationtransactionnelle sur l'instance cible.

Pendant la phase d'application des modifications mises en cache et la phase des réplications continues,AWS DMS utilise deux mémoires tampon de flux de données, une pour les données entrantes et l'autrepour les données sortantes. AWS DMS utilise également un composant important appelé trieur, qui est uneautre mémoire tampon. Voici deux utilisations importantes du composant trieur (qui en a d'autres) :

• Il suit toutes les transactions et s'assure de transférer uniquement les transactions pertinentes vers lamémoire tampon sortante.

• Il s'assure que les transactions sont transférées dans le même ordre de validation que sur la source.

Comme vous pouvez le voir, nous avons trois mémoires tampon importantes dans cette architecture pourCDC dans AWS DMS. Si l'un quelconque de ces tampons connaît une sollicitation importante de mémoire,la migration peut avoir des problèmes de performances susceptibles d'entraîner des échecs.

Lorsque vous introduisez d'importantes charges de travail dotées d'un grand nombre de transactions parseconde (TPS) dans cette architecture, la mémoire supplémentaire fournie par les instances R4 peuts'avérer utile. Vous pouvez utiliser les instances R4 pour conserver un grand nombre de transactions enmémoire et éviter des problèmes de sollicitation de mémoire au cours des réplications continues.

Instances de réplication publiques et privéesVous pouvez spécifier si une instance de réplication dispose d'une adresse IP publique ou privée quel'instance utilise pour se connecter aux bases de données source et cible.

Une instance de réplication privée a une adresse IP privée à laquelle vous ne pouvez pas accéder endehors du réseau de réplication. Une instance de réplication doit avoir une adresse IP privée lorsque lesbases de données source et cible se trouvent dans le même réseau qui est connecté au VPC de l'instancede réplication via un VPN, AWS Direct Connect ou l'appairage de VPC.

Une connexion d'appairage de VPC est une connexion réseau entre deux VPC qui permet le routage enutilisant les adresses IP privées de chaque VPC comme s'ils se trouvaient sur le même réseau. Pour plusd'informations sur l'appairage de VPC, consultez la section Appairage de VPC dans le Guide de l'utilisateurAmazon VPC.

Maintenance d'AWS DMSAWS DMS effectue régulièrement la maintenance des ressources AWS DMS. La maintenance impliquele plus souvent des mises à jour de l'instance de réplication ou du système d'exploitation de l'instancede réplication. Vous pouvez gérer la période de votre fenêtre de maintenance et voir les mises à jour de

Version de l'API API Version 2016-01-0194

Page 102: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFenêtre de maintenance d'AWS DMS

maintenance en utilisant l'AWS CLI ou l'API AWS DMS. La console AWS DMS n'est actuellement pas priseen charge pour ce travail.

Les éléments de maintenance exigent qu'AWS DMS mette hors connexion votre instance de réplicationpendant un temps limité. Parmi les opérations de maintenance qui nécessitent qu'une ressource soit horsconnexion figurent les mises à jour correctives obligatoires pour le système d'exploitation ou l'instance.Les mises à jour correctives obligatoires sont planifiées automatiquement uniquement pour les correctifsassociés à la sécurité et à la fiabilité de l'instance. Ce type de mise à jour corrective n'est pas fréquent (engénéral une ou deux fois par an) et nécessite rarement plus d'une fraction de votre fenêtre de maintenance.Vous pouvez faire en sorte que des mises à jour de versions mineures soient appliquées automatiquementen sélectionnant l'option de console Mise à niveau automatique des versions mineures.

Fenêtre de maintenance d'AWS DMSChaque instance de réplication AWS DMS est associée à un créneau de maintenance hebdomadaire aucours duquel toutes les modifications système disponibles sont appliquées. Vous pouvez considérer lecréneau de maintenance comme une occasion de contrôler le moment où les modifications et les correctifslogiciels sont appliqués.

Si AWS DMS détermine que la maintenance est nécessaire au cours d'une semaine donnée, cetteopération a lieu pendant la fenêtre de maintenance de 30 minutes que vous avez choisie lors de la créationde l'instance de réplication. AWS DMS effectue la plupart de la maintenance au cours de la fenêtre demaintenance de 30 minutes. Toutefois, une plus longue durée peut être nécessaire pour de plus grandesmodifications.

La fenêtre de maintenance de 30 minutes que vous avez sélectionnée lorsque vous avez créé l'instancede réplication est comprise dans un bloc de 8 heures alloué pour chaque région AWS. Si vous ne spécifiezpas de fenêtre de maintenance préférée lors de la création de votre instance de réplication, AWS DMS enattribue une au cours d'une journée de la semaine sélectionnée de manière aléatoire. Pour une instancede réplication qui utilise un déploiement multi-AZ, un basculement peut être requis pour terminer lamaintenance.

Le tableau suivant répertorie la fenêtre de maintenance pour chaque région AWS qui prend en chargeAWS DMS.

Région Bloc chronologique

Région Asie-Pacifique(Sydney)

12:00–20:00 UTC

Région Asie-Pacifique(Tokyo)

13:00–21:00 UTC

Région Asie-Pacifique(Mumbai)

17:30–01:30 UTC

Région Asie-Pacifique (Séoul) 13:00–21:00 UTC

Région Asie-Pacifique(Singapour)

14:00–22:00 UTC

Région Canada (Centre) 06:29–14:29 UTC

Région Chine (Pékin) 06:00–14:00 UTC

Région Chine (Ningxia) 06:00–14:00 UTC

Région Europe (Stockholm) 23:00–07:00 UTC

Version de l'API API Version 2016-01-0195

Page 103: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFenêtre de maintenance d'AWS DMS

Région Bloc chronologique

Région Europe (Francfort) 23:00–07:00 UTC

Région Europe (Irlande) 22:00–06:00 UTC

Région Europe (Londres) 06:00–14:00 UTC

Région Europe (Paris) 23:00–07:00 UTC

Région Amérique du Sud(São Paulo)

00:00–08:00 UTC

Région USA Est (Virginie duN.)

03:00–11:00 UTC

Région USA Est (Ohio) 03:00–11:00 UTC

Région USA Ouest (Californiedu Nord)

06:00–14:00 UTC

Région USA Ouest (Oregon) 06:00–14:00 UTC

AWS GovCloud (USA Ouest) 06:00–14:00 UTC

Effet de la maintenance sur les tâches de migration existantesLorsqu'une tâche de migration AWS DMS est en cours d'exécution sur une instance, les événementssuivants se produisent lorsqu'un correctif est appliqué :

• Si les tables dans la tâche de migration se trouvent dans la phase de réplication des modifications encontinu (CDC), AWS DMS interrompt la tâche pendant le temps nécessaire à l'application du correctif. Lamigration reprend ensuite à partir du point où elle a été interrompue lorsque le correctif a été appliqué.

• Si AWS DMS est en train de migrer une table lorsque le correctif est appliqué, AWS DMS redémarre lamigration pour la table.

Modification de la configuration de la fenêtre de maintenanceVous pouvez modifier l'horaire de la fenêtre de maintenance à l'aide de l'AWS Management Console, del'AWS CLI ou de l'API AWS DMS.

Modification de la configuration de la fenêtre de maintenance à l'aide de la console AWS

Vous pouvez modifier l'horaire de la fenêtre de maintenance à l'aide de l'AWS Management Console.

Pour modifier la fenêtre de maintenance préférée à l'aide de la console AWS

1. Connectez-vous à l'AWS Management Console et choisissez AWS DMS.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez l'instance de réplication que vous souhaitez modifier, puis sélectionnez Modifier.4. Développez la section Maintenance et choisissez la date et l'heure de votre fenêtre de maintenance.

Version de l'API API Version 2016-01-0196

Page 104: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurFenêtre de maintenance d'AWS DMS

5. Choisissez Apply changes immediately.6. Sélectionnez Modify.

Modification de la configuration de la fenêtre de maintenance à l'aide de l'interface de ligne decommande

Pour ajuster le créneau de maintenance préféré, utilisez la commande AWS CLI modify-replication-instance avec les paramètres suivants.

• --replication-instance-identifier

• --preferred-maintenance-window

Example

L'exemple d'AWS CLI suivant définit la fenêtre de maintenance sur les mardis entre 04h00 et 04h30– UTC.

aws dms modify-replication-instance \--replication-instance-identifier myrepinstance \--preferred-maintenance-window Tue:04:00-Tue:04:30

Modification de la configuration de la fenêtre de maintenance à l'aide de l'API

Pour ajuster le créneau de maintenance préféré, utilisez l'action ModifyReplicationInstance de l'APIAWS DMS avec les paramètres suivants.

• ReplicationInstanceIdentifier = myrepinstance

• PreferredMaintenanceWindow = Tue:04:00-Tue:04:30

Example

L'exemple de code suivant définit la fenêtre de maintenance sur les mardis entre 04h00 et 04h30– UTC.

https://dms.us-west-2.amazonaws.com/?Action=ModifyReplicationInstance&DBInstanceIdentifier=myrepinstance&PreferredMaintenanceWindow=Tue:04:00-Tue:04:30&SignatureMethod=HmacSHA256&SignatureVersion=4&Version=2014-09-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request&X-Amz-Date=20140425T192732Z

Version de l'API API Version 2016-01-0197

Page 105: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurVersions du moteur de réplication

&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date&X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

Utilisation des versions du moteur de réplicationLe moteur de réplication est le logiciel AWS DMS principal qui s'exécute sur votre instance de réplicationet procède aux tâches de migration que vous spécifiez. AWS publie régulièrement de nouvelles versionsdu moteur de réplication AWS DMS avec de nouvelles fonctions et des performances améliorées. Chaqueversion du moteur de réplication a son propre numéro, pour la distinguer des autres versions.

Lorsque vous lancez une nouvelle instance de réplication, la version du moteur AWS DMS la plus récenteest exécutée, sauf indication contraire. Pour plus d'informations, consultez Utilisation d'une instance deréplication AWS DMS (p. 91).

Si vous avez une instance de réplication en cours d'exécution, vous pouvez la mettre à niveau vers uneversion plus récente du moteur. (AWS DMS ne prend pas en charge le passage à une version antérieuredu moteur.) Pour en savoir plus, y compris la liste des versions du moteur de réplication, reportez-vous à lasection suivante.

Obsolescence d'une version d'instance de réplicationDe temps en temps, AWS DMS rend obsolètes les anciennes versions de l'instance de réplication. Depuisle 2 avril 2018, AWS DMS désactive la création de toute nouvelle instance de réplication version 1.9.0.Cette version a été initialement prise en charge dans AWS DMS le 15 mars 2016 et a depuis été remplacéepar les versions ultérieures contenant des améliorations sur le plan des fonctionnalités, de la sécurité et dela fiabilité.

À compter du 5 août 2018 à 0h00 UTC, toutes les instances de réplication DMS exécutant la version 1.9.0feront l'objet d'une mise à niveau automatique vers la dernière version disponible à l'occasion de la fenêtrede maintenance spécifiée pour chaque instance. Nous vous recommandons de mettre à niveau vosinstances avant cette opération, au moment vous convenant le mieux.

Vous pouvez lancer une mise à niveau de votre instance de réplication en suivant les instructions fourniesdans la section ci-après, Mise à niveau de la version du moteur d'une instance de réplication (p. 98).

Pour les tâches de migration qui s'exécutent au moment où vous choisissez de mettre à niveau l'instancede réplication, les tables en phase de chargement complet au moment de la mise à niveau sont rechargéesdepuis le début une fois que la mise à niveau est terminée. La réplication de toutes les autres tables doitreprendre sans interruption une fois que la mise à niveau est terminée. Nous vous recommandons de testertoutes les tâches de migration en cours sur la dernière version disponible de l'instance de réplication AWSDMS avant de mettre à niveau les instances à partir de la version 1.9.0.

Mise à niveau de la version du moteur d'une instancede réplicationAWS publie régulièrement de nouvelles versions du moteur de réplication AWS DMS avec de nouvellesfonctions et des performances améliorées. Voici un récapitulatif des versions du moteur AWS DMSdisponibles.

Version Récapitulatif des versions

3.3.x • Notes de mise à jour pour AWS Database Migration Service (AWS DMS)3.3.1 (p. 488)

Version de l'API API Version 2016-01-0198

Page 106: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMise à niveau de la version du

moteur d'une instance de réplication

Version Récapitulatif des versions• Notes de mise à jour pour AWS Database Migration Service (AWS DMS)

version bêta 3.3.0 (p. 490)

3.1.x • Notes de mise à jour AWS Database Migration Service (AWS DMS)3.1.3 (p. 493)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)3.1.2 (p. 495)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)3.1.1 (p. 496)

2.4.x • Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.5 (p. 498)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.4 (p. 499)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.3 (p. 500)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.2 (p. 501)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.1 (p. 503)

• Notes de mise à jour AWS Database Migration Service (AWS DMS)2.4.0 (p. 505)

2.3.x • Notes de mise à jour AWS Database Migration Service (AWS DMS)2.3.0 (p. 506)

2.2.x • Prise en charge de Microsoft SQL Server 2016 en tant que source AWS DMSou cible AWS DMS.

• Prise en charge de SAP ASE 16 en tant que source AWS DMS ou cible AWSDMS.

• Prise en charge de Microsoft SQL Server exécuté sur Microsoft Azure en tantque source AWS DMS uniquement. Vous pouvez effectuer une migrationcomplète des données existantes ; toutefois, la capture des données modifiées(CDC) n'est pas disponible.

1.9.x Version cumulative du moteur de réplication AWS DMS.

Le tableau suivant présente les chemins de mise à niveau actuellement pris en charge depuis n'importequelle version AWS DMS vers une version ultérieure.

Mise à niveau à partir decette version...

Vers cette version...

2.4.4 2.4.5

2.4.4 3.1.4

2.4.4 3.3.1

2.4.5 3.1.4

2.4.5 3.3.1

Version de l'API API Version 2016-01-0199

Page 107: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMise à niveau de la version du

moteur d'une instance de réplication

Mise à niveau à partir decette version...

Vers cette version...

3.1.3 3.1.4

3.1.3 3.3.1

3.1.4 3.3.1

3.3.0 3.3.1

Mise à niveau de la version du moteur à l'aide de la consoleVous pouvez mettre à niveau une instance de réplication AWS DMS à l'aide de l'AWS ManagementConsole.

Pour mettre à niveau une instance de réplication à l'aide de la console

1. Ouvrez la console AWS DMS à l'adresse https://console.aws.amazon.com/dms/.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez votre moteur de réplication, puis choisissez Modifier.4. Pour Replication engine version (Version du moteur de réplication), choisissez le numéro de version de

votre choix, puis Modifier.

Note

La mise à niveau de l'instance de réplication prend plusieurs minutes. Lorsque l'instance est prête,son statut passe à available.

Mise à niveau de la version du moteur à l'aide de l'interface deligne de commandeVous pouvez mettre à niveau une instance de réplication AWS DMS à l'aide de l'AWS CLI, comme suit.

Pour mettre à niveau une instance de réplication à l'aide de l'AWS CLI

1. Déterminez le nom Amazon Resource Name (ARN) de votre instance de réplication à l'aide de lacommande suivante.

aws dms describe-replication-instances \--query "ReplicationInstances[*].[ReplicationInstanceIdentifier,ReplicationInstanceArn,ReplicationInstanceClass]"

Dans la sortie, prenez note du nom ARN pour l'instance de réplicationque vous souhaitez mettre à niveau ; par exemple : arn:aws:dms:us-east-1:123456789012:rep:6EFQQO6U6EDPRCPKLNPL2SCEEY

2. Déterminez quelles versions d'instance de réplication sont disponibles à l'aide de la commandesuivante.

aws dms describe-orderable-replication-instances \--query "OrderableReplicationInstances[*].[ReplicationInstanceClass,EngineVersion]"

Dans la sortie, prenez note du ou des numéros de version du moteur disponibles pour votre classed'instance de réplication. Vous devriez voir ces informations dans la sortie à partir de l'étape 1.

Version de l'API API Version 2016-01-01100

Page 108: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfiguration d'un réseau pour une instance de réplication

3. Mettez à niveau l'instance de réplication à l'aide de la commande suivante.

aws dms modify-replication-instance \--replication-instance-arn arn \--engine-version n.n.n

Remplacez arn dans ce qui précède par le nom ARN de l'instance de réplication réelle obtenu àl'étape précédente.

Remplacez n.n.n par le numéro de version du moteur de votre choix ; par exemple : 2.2.1

Note

La mise à niveau de l'instance de réplication prend plusieurs minutes. Vous pouvez afficher lestatut de l'instance de réplication à l'aide de la commande suivante.

aws dms describe-replication-instances \--query "ReplicationInstances[*].[ReplicationInstanceIdentifier,ReplicationInstanceStatus]"

Lorsque l'instance de réplication est prête, son statut passe à available.

Configuration d'un réseau pour une instance deréplication

AWS DMS crée toujours l'instance de réplication dans un VPC en fonction du Amazon Virtual Private Cloud(Amazon VPC). Vous spécifiez le VPC dans lequel votre instance de réplication est située. Vous pouvezutiliser votre VPC par défaut pour votre compte et la région AWS, ou vous pouvez créer un nouveau VPC.Le VPC doit avoir deux sous-réseaux dans au moins une Zone de disponibilité.

L'Interface réseau Elastic (ENI) allouée pour l'instance de réplication dans votre VPC doit être associée àun groupe de sécurité doté de règles qui autorisent tout le trafic sur tous les ports à quitter (trafic sortant) leVPC. Cette approche permet la communication de l'instance de réplication avec vos points de terminaisonde base de données source et cible, tant que les bonnes règles de trafic sortant sont activées sur les pointsde terminaison. Nous recommandons l'utilisation des paramètres par défaut pour les points de terminaison,qui autorisent le trafic sortant sur tous les ports vers toutes les adresses.

Les points de terminaison source et cible accèdent à l'instance de réplication située à l'intérieur du VPCen se connectant au VPC ou en étant à l'intérieur du VPC. Les points de terminaison de base de donnéesdoivent inclure des listes ACL réseau et des règles de groupe de sécurité (le cas échéant) qui autorisentl'accès entrant à partir de l'instance de réplication. En fonction de la configuration réseau que vous utilisez,vous pouvez utiliser le groupe de sécurité du VPC de l'instance de réplication, l'adresse IP privée oupublique de l'instance de réplication ou l'adresse IP publique de la passerelle NAT. Ces connexions formentun réseau que vous utilisez pour la migration des données.

Configurations réseau pour la migration de base dedonnéesVous pouvez utiliser différentes configurations réseau avec AWS Database Migration Service. Voiciquelques configurations courantes pour un réseau utilisé pour la migration de base de données.

Version de l'API API Version 2016-01-01101

Page 109: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfigurations réseau pour la migration de base de données

Rubriques• Configuration avec tous les composants de migration de base de données dans un VPC (p. 102)• Configuration à deux VPC (p. 102)• Configuration d'un réseau à un VPC à l'aide d'AWS Direct Connect ou d'un VPN (p. 103)• Configuration d'un réseau à un VPC avec Internet (p. 103)• Configuration avec une instance de base de données Amazon RDS qui ne se trouve pas dans un VPC

et une instance de base de données dans un VPC utilisant ClassicLink (p. 104)

Configuration avec tous les composants de migration de base dedonnées dans un VPCLe réseau le plus simple pour la migration de base de données consiste à rassembler le point determinaison source, l'instance de réplication et le point de terminaison cible dans le même VPC. Cetteconfiguration est possible si vos points de terminaison source et cible se trouvent sur une instance de basede données Amazon RDS ou une instance Amazon EC2.

L'illustration suivante présente une configuration dans laquelle une base de données sur une instanceAmazon EC2 se connecte à l'instance de réplication et les données sont migrées vers une instance debase de données Amazon RDS.

Le groupe de sécurité du VPC utilisé dans cette configuration doit autoriser le trafic entrant sur le port debase de données à partir de l'instance de réplication. Vous pouvez procéder soit en vous assurant que legroupe de sécurité utilisé par l'instance de réplication a un trafic entrant vers les points de terminaison, soiten autorisant explicitement l'adresse IP privée de l'instance de réplication.

Configuration à deux VPCSi votre point de terminaison source et les points de terminaison cibles se trouvent dans des VPCdistincts, vous pouvez créer votre instance de réplication dans l'un des VPC, puis relier les deux VPC avecl'appairage de VPC.

Une connexion d'appairage de VPC est une connexion réseau entre deux VPC qui permet le routage enutilisant les adresses IP privées de chaque VPC comme s'ils se trouvaient sur le même réseau. Nousrecommandons cette méthode pour la connexion des réseaux VPC dans une région AWS. Vous pouvezcréer des connexions d'appairage de VPC entre vos propres VPC ou avec un VPC situé dans un autrecompte AWS au sein de la même région AWS. Pour plus d'informations sur l'appairage de VPC, consultezla section Appairage de VPC dans le Guide de l'utilisateur Amazon VPC.

L'illustration suivante présente un exemple de configuration utilisant l'appairage de VPC. Ici, la base dedonnées source sur une instance Amazon EC2 dans un VPC se connecte par appairage de VPC à unVPC. Ce VPC contient l'instance de réplication et la base de données cible sur une instance de base dedonnées Amazon RDS.

Version de l'API API Version 2016-01-01102

Page 110: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfigurations réseau pour la migration de base de données

Les groupes de sécurité du VPC utilisés dans cette configuration doivent autoriser le trafic entrant sur leport de base de données à partir de l'instance de réplication.

Configuration d'un réseau à un VPC à l'aide d'AWS DirectConnect ou d'un VPNLes réseaux distants peuvent se connecter à un VPC grâce à plusieurs options telles qu'AWS DirectConnect ou une connexion VPN software ou hardware. Ces options sont souvent utilisées pour intégrerdes services sur site existants, comme la supervision, l'authentification, la sécurité, les données ou d'autressystèmes, par l'extension d'un réseau interne dans le cloud AWS. Grâce à ce type d'extension de réseau,vous pouvez en toute transparence vous connecter à des ressources hébergées par AWS, telles qu'unVPC.

L'illustration suivante présente une configuration dans laquelle le point de terminaison source est une basede données sur site dans un centre de données d'entreprise. Il est connecté via AWS Direct Connect ou unVPN à un VPC qui contient l'instance de réplication et une base de données cible sur une instance de basede données Amazon RDS.

Dans cette configuration, le groupe de sécurité VPC doit inclure une règle de routage qui envoie à un hôtele trafic destiné à une adresse IP ou à une plage spécifique. Cet hôte doit être en mesure d'acheminer letrafic du VPC vers le VPN sur site. Dans ce cas, l'hôte NAT inclut ses propres paramètres de groupe desécurité qui doivent autoriser le trafic provenant de l'adresse IP privée de l'instance de réplication ou dugroupe de sécurité vers l'instance NAT.

Configuration d'un réseau à un VPC avec InternetSi vous n'utilisez pas un VPN ou AWS Direct Connect pour vous connecter aux ressources AWS, vouspouvez utiliser Internet pour migrer une base de données vers une instance Amazon EC2 ou une instancede base de données Amazon RDS. Cette configuration implique une instance de réplication publique dansun VPC avec une passerelle Internet qui contient le point de terminaison cible et l'instance de réplication.

Pour ajouter une passerelle Internet à votre VPC, consultez la page Attachement d'une passerelle Internetdans le Guide de l'utilisateur Amazon VPC.

Version de l'API API Version 2016-01-01103

Page 111: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfigurations réseau pour la migration de base de données

Le groupe de sécurité VPC doit inclure des règles de routage qui envoient le trafic non destiné au VPC pardéfaut vers la passerelle Internet. Dans cette configuration, la connexion au point de terminaison semblevenir de l'adresse IP publique de l'instance de réplication et non pas de l'adresse IP privée.

Configuration avec une instance de base de données AmazonRDS qui ne se trouve pas dans un VPC et une instance de basede données dans un VPC utilisant ClassicLinkVous pouvez utiliser ClassicLink avec un serveur proxy pour connecter une instance de base de donnéesAmazon RDS ne se trouvant pas dans un VPC à un serveur de réplication AWS DMS et une instance debase de données qui résident dans un VPC.

ClassicLink permet de relier une instance de base de donnés EC2-Classic à un VPC dans votre compte, ausein de la même région AWS. Une fois que vous avez créé le lien, l'instance DB source peut communiqueravec l'instance de réplication à l'intérieur du VPC à l'aide de leurs adresses IP privées.

Étant donné que l'instance de réplication dans le VPC ne peut pas accéder directement à l'instancede base de données source sur la plateforme EC2-Classic à l'aide de ClassicLink, vous devez utiliserun serveur proxy. Le serveur proxy connecte l'instance de base de données source au VPC contenantl'instance de réplication et l'instance de base de données cible. Le serveur proxy utilise ClassicLink pourse connecter au VPC. Le réacheminement de port sur le serveur proxy permet la communication entrel'instance de base de données source et l'instance de base de données cible dans le VPC.

Utilisation de ClassicLink avec AWS Database Migration Service

Vous pouvez utiliser ClassicLink, en conjonction avec un serveur proxy, pour connecter une instance debase de données Amazon RDS ne se trouvant pas dans un VPC à un serveur de réplication AWS DMS etune instance de base de données qui résident dans un VPC.

La procédure suivante montre comment utiliser ClassicLink pour connecter à un VPC une instance de basede données source Amazon RDS qui ne se trouve pas dans un VPC contenant une instance de réplicationAWS DMS; et une instance de base de données cible.

• Créer une instance de réplication AWS DMS dans un VPC. (Toutes les instances de réplication sontcréées dans un VPC).

• Associer un groupe de sécurité VPC à l'instance de réplication et à l'instance DB cible. Lorsque deuxinstances partagent un groupe de sécurité VPC, elles peuvent communiquer l'une avec l'autre par défaut.

• Configurer un serveur proxy sur une instance EC2 classique.• Créer une connexion à l'aide de ClassicLink entre le serveur proxy et le VPC.• Créer des points de terminaison AWS DMS pour les bases de données source et cible.• Créer une tâche AWS DMS.

Utiliser ClassicLink pour migrer une base de données sur une instance de base de données ne setrouvant pas dans un VPC vers une instance de base de données se trouvant dans un VPC

1. Étape 1 : création d'une instance de réplication AWS DMS

Version de l'API API Version 2016-01-01104

Page 112: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfigurations réseau pour la migration de base de données

Pour créer une instance de réplication AWS DMS et assigner un groupe de sécurité VPC :

a. Connectez-vous à AWS Management Console et choisissez AWS Database Migration Service.Notez que si vous êtes connecté en tant qu'utilisateur d'AWS Identity and Access Management(IAM), vous devez détenir les autorisations pertinentes pour accéder à AWS DMS. Pour plusd'informations sur les autorisations requises pour la migration de base de données, consultez lapageAutorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

b. Sur la page Tableau de bord, sélectionnez Instance de réplication. Suivez les instructions dela page Étape 2 : création d'une instance de réplication (p. 23) pour créer une instance deréplication.

c. Une fois que vous avez créé l'instance de réplication AWS DMS, ouvrez la console de serviceEC2. Sélectionnez Interfaces réseau dans le volet de navigation.

d. Sélectionnez DMSNetworkInterface, puis Changer les groupes de sécurité dans le menu Actions.e. Sélectionnez le groupe de sécurité que vous voulez utiliser pour l'instance de réplication et

l'instance DB cible.2. Étape 2 : Associer le groupe de sécurité de la dernière étape à l'instance DB cible.

Pour associer un groupe de sécurité à une instance DB

a. Ouvrez la console de service Amazon RDS. Sélectionnez Instances dans le volet de navigation.b. Sélectionnez l'instance DB cible. Dans Instance Actions, sélectionnez Modify.c. Pour le paramètre Security Group, sélectionnez le groupe de sécurité que vous avez utilisé à

l'étape précédente.d. Sélectionnez Continue, puis Modify DB Instance.

3. Étape 3 : Configurer un serveur proxy sur une instance EC2 classique à l'aide de NGINX. Utilisez uneAMI de votre choix pour lancer une instance EC2 classique. L'exemple suivant est basée sur l'AMIUbuntu Server 14.04 LTS (HVM).

Pour configurer un serveur proxy sur une instance EC2 classique

a. Connectez-vous à l'instance EC2 classique et installez NGINX à l'aide des commandessuivantes :

Prompt> sudo apt-get updatePrompt> sudo wget http://nginx.org/download/nginx-1.9.12.tar.gzPrompt> sudo tar -xvzf nginx-1.9.12.tar.gz Prompt> cd nginx-1.9.12Prompt> sudo apt-get install build-essentialPrompt> sudo apt-get install libpcre3 libpcre3-devPrompt> sudo apt-get install zlib1g-devPrompt> sudo ./configure --with-streamPrompt> sudo makePrompt> sudo make install

b. Modifiez le fichier de démon NGINX, /etc/init/nginx.conf, à l'aide du code suivant :

# /etc/init/nginx.conf – Upstart file

description "nginx http daemon"author "email"

start on (filesystem and net-device-up IFACE=lo)stop on runlevel [!2345]

Version de l'API API Version 2016-01-01105

Page 113: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurConfigurations réseau pour la migration de base de données

env DAEMON=/usr/local/nginx/sbin/nginxenv PID=/usr/local/nginx/logs/nginx.pid

expect forkrespawnrespawn limit 10 5

pre-start script $DAEMON -t if [ $? -ne 0 ] then exit $? fiend script

exec $DAEMON

c. Créez un fichier de configuration NGINX à l'adresse /usr/local/nginx/conf/nginx.conf. Dans lefichier de configuration, ajoutez les éléments suivants :

# /usr/local/nginx/conf/nginx.conf - NGINX configuration file

worker_processes 1;

events { worker_connections 1024;}

stream { server { listen <DB instance port number>;proxy_pass <DB instance identifier>:<DB instance port number>; }}

d. À partir de la ligne de commande, démarrez NGINX à l'aide des commandes suivantes :

Prompt> sudo initctl reload-configurationPrompt> sudo initctl list | grep nginxPrompt> sudo initctl start nginx

4. Étape 4 : Créer une connexion ClassicLink entre le serveur proxy et la cible VPC qui contient l'instanceDB cible et l'instance de réplication

Utilisez ClassicLink pour connecter le serveur proxy au VPC cible

a. Ouvrez la console EC2 et sélectionnez l'instance EC2 classique qui exécute le serveur proxy.b. Sélectionnez ClassicLink sous Actions, puis Link to VPC.c. Sélectionnez le groupe de sécurité que vous avez utilisé précédemment dans cette procédure.d. Sélectionnez Link to VPC.

5. Étape 5 : Créer des points de terminaison AWS DMS en utilisant la procédure présentée à la pageÉtape 3 : Spécifier les points de terminaison source et cible (p. 28). Vous devez utiliser le nom d'hôteDNS EC2 interne du proxy comme nom de serveur lorsque vous spécifiez le point de terminaisonsource.

6. Étape 6 : Créer une tâche AWS DMSen utilisant la procédure présentée à la page Étape 4 : Créationd'une tâche (p. 33).

Version de l'API API Version 2016-01-01106

Page 114: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréer groupe de sous-réseaux de réplication

Créer groupe de sous-réseaux de réplicationDans le cadre du réseau à utiliser pour la migration de bases de données, vous devez spécifier les sous-réseaux de votre cloud Amazon Virtual Private Cloud (Amazon VPC) que vous avez l'intention d'utiliser.Un sous-réseau est une plage d'adresses IP dans votre VPC dans une Zone de disponibilité donnée. Cessous-réseaux peuvent être répartis entre les zones de disponibilité pour la région AWS où se trouve votreVPC.

Vous créez une instance de réplication dans un sous-réseau que vous sélectionnez et vous pouvez gérerle sous-réseau qu'un point de terminaison source ou cible utilise grâce à la console AWS DMS.

Vous créez un groupe de sous-réseaux de réplication pour définir les sous-réseaux à utiliser. Vous devezspécifier au moins un sous-réseau dans deux Zones de disponibilité différentes.

Pour créer un groupe de sous-réseaux de réplication

1. Connectez-vous à l'AWS Management Console et choisissez AWS Database Migration Service.Si vous êtes connecté en tant qu'utilisateur d'AWS Identity and Access Management (IAM), vousdevez détenir les autorisations pertinentes pour accéder à AWS DMS. Pour plus d'informations surles autorisations requises pour la migration de base de données, consultez la pageAutorisations IAMnécessaires pour utiliser AWS DMS (p. 64).

2. Dans le volet de navigation, sélectionnez Subnet Groups.3. Choisissez Create Subnet Group.4. Sur la page Modifier groupe de sous-réseaux de réplication, illustrée ci-après, précisez les informations

du groupe de sous-réseaux de réplication. Le tableau suivant décrit les paramètres.

Pour cette option Procédez comme suit

Identificateur Tapez un nom pour le groupe de sous-réseaux deréplication qui contient entre 8 et 16 caractères ASCIId'impression (à l'exception de /, " et @). Ce nom doit être

Version de l'API API Version 2016-01-01107

Page 115: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDéfinition d'une clé de chiffrement

Pour cette option Procédez comme suitunique pour votre compte dans la région AWS que vousavez sélectionnée. Vous pouvez choisir de compliquer lenom, par exemple en incluant la région AWS et la tâcheque vous effectuez, par exemple DMS-default-VPC.

Description Tapez une brève description du groupe de sous-réseauxde réplication.

VPC Sélectionnez le VPC que vous voulez utiliser pour lamigration de base de données. Gardez à l'esprit que leVPC doit avoir au moins un sous-réseau dans au moinsdeux Zones de disponibilité.

Sous-réseaux (subnets) disponibles Choisissez les sous-réseaux à inclure dans le groupe desous-réseau de réplication. Vous devez sélectionner lessous-réseaux dans au moins deux Zones de disponibilité.

5. Sélectionnez Ajouter pour ajouter les sous-réseaux au groupe de sous-réseaux de réplication.6. Sélectionnez Create.

Définition d'une clé de chiffrement pour uneinstance de réplication

AWS DMS chiffre le stockage utilisé par une instance de réplication et les informations de connexion depoint de terminaison. Pour chiffrer le stockage utilisé par une instance de réplication, AWS DMS utilise uneclé principale unique pour votre compte AWS. Vous pouvez afficher et gérer cette clé principale avec AWSKey Management Service (AWS KMS). Vous pouvez utiliser la clé principale par défaut de votre compte(aws/dms) ou une clé principale personnalisée que vous créez. Si vous avez une clé de chiffrement AWSKMS existante, vous pouvez également utiliser cette clé pour le chiffrement.

Vous pouvez spécifier votre propre clé de chiffrement en fournissant un identificateur de clé KMS pourchiffrer vos ressources AWS DMS. Lorsque vous spécifiez votre propre clé de chiffrement, le compted'utilisateur utilisé pour effectuer la migration de base de données doit avoir accès à cette clé. Pour plusd'informations sur la création de vos propres clés de chiffrement et pour donner aux utilisateurs l'accès àune clé de chiffrement, consultez le Manuel du développeur AWS KMS.

Si vous ne spécifiez pas d'identificateur de clé KMS, AWS DMS utilise votre clé de chiffrement par défaut.KMS crée la clé de chiffrement par défaut pour AWS DMS pour votre compte AWS. Votre compte AWS aune clé de chiffrement par défaut différente pour chaque région AWS.

Pour gérer les clés utilisées pour chiffrer vos ressources AWS DMS, vous utilisez KMS. Vous accédezà KMS dans AWS Management Console en choisissant Identity & Access Management (Gestion desidentités et des accès) sur la page d'accueil de la console, puis en choisissant Encryption Keys (Clés dechiffrement) dans le volet de navigation.

KMS combine du matériel et des logiciels sécurisés hautement disponibles pour fournir un système degestion de clés à l'échelle du cloud. Grâce à KMS, vous pouvez créer des clés de chiffrement et définirles stratégies qui contrôlent la manière dont ces clés peuvent être utilisées. KMS prend en charge AWSCloudTrail pour vous permettre d'effectuer l'audit de l'utilisation des clés et vérifier que cette utilisation estappropriée. Vos clés KMS peuvent être utilisées avec AWS DMS et les services AWS pris en charge, telsque Amazon RDS, Amazon S3, Amazon Elastic Block Store (Amazon EBS) et Amazon Redshift.

Une fois que vous avez créé vos ressources AWS DMS avec une clé de chiffrement spécifique, vous nepouvez pas modifier la clé de chiffrement pour ces ressources. Prenez soin de déterminer vos besoins entermes de clés de chiffrement avant de créer vos ressources AWS DMS.

Version de l'API API Version 2016-01-01108

Page 116: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une instance de réplication

Création d'une instance de réplicationLa première tâche lors de la migration d'une base de données consiste à créer une instance de réplicationpossédant suffisamment de stockage et de puissance de traitement pour exécuter les tâches de traitementque vous lui attribuez et pour migrer les données de votre base de données source vers la base dedonnées cible. La taille de cette instance varie en fonction de la quantité de données que vous devezmigrer et des tâches que vous souhaitez que l'instance effectue. Pour plus d'informations sur les instancesde réplication, consultez la page Utilisation d'une instance de réplication AWS DMS (p. 91).

La procédure suivante suppose que vous avez choisi l'assistant de la console AWS DMS. Vous pouvezégalement effectuer cette étape en sélectionnant Replication instances (Instances de réplication) dans levolet de navigation de la console AWS DMS, puis en sélectionnant Create replication instance (Créer uneinstance de réplication).

Pour créer une instance de réplication à l'aide de la console AWS

1. Sur la page Créer instance de réplication, spécifiez vos informations d'instance de réplication. Letableau suivant décrit les paramètres.

Pour cette option Procédez comme suit

Nom Tapez un nom pour l'instance de réplication contenantentre 8 et 16 caractères ASCII d'impression (à l'exceptionde /, " et @). Ce nom doit être unique pour votre comptedans la région AWS que vous avez sélectionnée. Vouspouvez choisir de compliquer le nom, par exemple en

Version de l'API API Version 2016-01-01109

Page 117: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une instance de réplication

Pour cette option Procédez comme suitincluant la région AWS et la tâche que vous effectuez, parexemple west2-mysql2mysql-instance1.

Description Tapez une brève description de l'instance de réplication.

Classe d'instance Choisissez une classe d'instance avec la configurationdont vous avez besoin pour votre migration. Gardez àl'esprit que l'instance doit disposer de suffisamment destockage, de réseau et de puissance de traitement pourmener à bien votre migration. Pour plus d'informationssur la façon de déterminer quelle classe d'instanceest la mieux adaptée à votre migration, consultez lapage Utilisation d'une instance de réplication AWSDMS (p. 91).

Replication engine version Par défaut, l'instance de réplication exécute la dernièreversion du moteur de réplication AWS DMS. Nous vousrecommandons d'accepter cette valeur par défaut ;cependant, vous pouvez choisir une version précédente dumoteur, si nécessaire.

VPC Sélectionnez le Cloud Amazon Virtual Private Cloud(Amazon VPC) que vous voulez utiliser. Si votre basede données source ou cible se trouve dans un VPC,choisissez ce VPC. Si vos bases de données source etcible se trouvent dans des VPC différents, vérifiez qu'ilsse trouvent tous deux dans des sous-réseaux publics etqu'ils sont accessibles publiquement, puis sélectionnez leVPC dans lequel l'instance de réplication doit être située.L'instance de réplication doit être en métrique d'accéderaux données dans le VPC source. Si ni votre base dedonnées source ni votre base de données cible ne setrouve dans un VPC, sélectionnez un VPC dans lequell'instance de réplication doit être situé.

Multi-AZ Utilisez ce paramètre facultatif pour créer un réplicade secours de votre instance de réplication dans uneautre Zone de disponibilité pour la prise en charge dubasculement. Si vous avez l'intention d'utiliser la capturede données modifiées (CDC) ou la réplication continue,vous devez activer cette option.

Accessible publiquement Choisissez cette option si vous souhaitez que l'instance deréplication soit accessible à partir d'Internet.

2. Cliquez sur l'onglet Avancé, illustré ci-après, pour définir des valeurs pour les paramètres de réseau etde chiffrement si vous en avez besoin. Le tableau suivant décrit les paramètres.

Version de l'API API Version 2016-01-01110

Page 118: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une instance de réplication

Version de l'API API Version 2016-01-01111

Page 119: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une instance de réplication

Pour cette option Procédez comme suit

Stockage alloué (Go) Le stockage est principalement consommé par les fichiersjournaux et les transactions mises en cache. Pour lestransactions mises en cache, le stockage est utiliséuniquement lorsque les transactions mises en cachedoivent être écrites sur disque. Par conséquent, AWSDMS n'utilise pas une quantité importante de stockage.Certaines exceptions sont les suivantes :

• Les très grandes tables qui entraînent une charge detransaction importante. Le chargement d'une grandetable peut prendre du temps. Les transactions mises encache sont donc plus susceptibles d’être écrites sur ledisque pendant un tel chargement.

• Les tâches qui sont configurées pour marquer unepause avant de charger les transactions mises encache. Dans ce cas, toutes les transactions sontmises en cache jusqu'à la fin du chargement completpour toutes les tables. Avec cette configuration, unequantité de stockage importante peut être utilisée par lestransactions mises en cache.

• Les tâches configurées avec des tables chargées dansAmazon Redshift. Cependant, cette configuration n'estpas un problème lorsqu'Amazon Aurora est la cible.

Dans la plupart des cas, l'allocation de stockage par défautest suffisante. Cependant, il est toujours judicieux defaire attention aux métriques associées au stockage etd'augmenter votre stockage si vous constatez que vousconsommez plus que l'allocation par défaut.

Groupe de sous-réseaux de réplication Sélectionnez le groupe de sous-réseaux de réplicationdu VPC que vous avez sélectionnez, dans lequel voussouhaitez que l'instance de réplication soit créée. Sivotre base de données source se trouve dans un VPC,sélectionnez le groupe de sous-réseaux qui contient labase de données source comme emplacement de votreinstance de réplication. Pour plus d'informations sur lesgroupes de sous-réseaux de réplication, consultez la pageCréer groupe de sous-réseaux de réplication (p. 107).

Zone de disponibilité Sélectionnez la Zone de disponibilité dans laquelle setrouve votre base de données source.

Groupes de sécurité VPC L'instance de réplication est créée dans un VPC. Sivotre base de données source se trouve dans un VPC,sélectionnez le groupe de sécurité VPC qui permetd'accéder à l'instance DB où réside la base de données.

Version de l'API API Version 2016-01-01112

Page 120: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification d'une instance de réplication

Pour cette option Procédez comme suit

KMS master key Sélectionnez la clé de chiffrement à utiliser pour chiffrer lesinformations de connexion et de stockage de réplication.Si vous choisissez (Default) aws/dms, la clé AWS KeyManagement Service (AWS KMS) par défaut associéeà votre compte et votre région AWS est utilisée. Unedescription et votre numéro de compte sont affichés, ainsique l'ARN de la clé. Pour plus d'informations sur l'utilisationde la clé chiffrement, consultez la page Définition d'uneclé de chiffrement et spécification des autorisations AWSKMS (p. 78).

3. Spécifiez les paramètres de Maintenance. Le tableau suivant décrit les paramètres. Pour plusd'informations sur les paramètres de maintenance, consultez Fenêtre de maintenance d'AWSDMS (p. 95).

Pour cette option Procédez comme suit

Mise à niveau automatique desversions mineures

Sélectionnez cette option pour que les mises à niveaumineures du moteur soient appliquées automatiquementsur l'instance de réplication pendant la fenêtre demaintenance.

Fenêtre de maintenance Choisissez un intervalle de temps hebdomadaire, auformat Universal Coordinated Time (UTC), pendant lequela lieu la maintenance du système.

Par défaut : Une fenêtre de 30 minutes sélectionnée auhasard dans un bloc de 8 heures par région AWS, durantun jour de la semaine aléatoire.

4. Choisissez Créer instance de réplication.

Modification d'une instance de réplicationVous pouvez modifier les paramètres d'une instance de réplication pour, par exemple, modifier la classed'instance ou augmenter l'espace de stockage.

Lorsque vous modifiez une instance de réplication, vous pouvez appliquer les modificationsimmédiatement. Pour appliquer les modifications immédiatement, sélectionnez l'option Apply changes

Version de l'API API Version 2016-01-01113

Page 121: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification d'une instance de réplication

immediately (Appliquer immédiatement les modifications) dans AWS Management Console, utilisez leparamètre --apply-immediately lors de l'appel de l'interface de ligne de commande AWS ou définissezle paramètre ApplyImmediately sur true lorsque vous utilisez l'API AWS DMS.

Si vous ne choisissez pas d'appliquer les modifications immédiatement, les modifications sont placéesdans la file d'attente des modifications en attente. Au cours de la fenêtre de maintenance suivante, lesmodifications en attente sont appliquées.

Note

Si vous choisissez d'appliquer les modifications immédiatement, les modifications placées dansla file d'attente des modifications en attente sont également appliquées. Si des modifications enattente ont besoin d'un temps d'arrêt, le choix de l'option Apply changes immediately (Appliquerimmédiatement les modifications) peut entraîner un temps d'arrêt imprévu.

Pour modifier une instance de réplication à l'aide de la console AWS

1. Connectez-vous à l'AWS Management Console et choisissez AWS DMS.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez l'instance de réplication que vous souhaitez modifier. Le tableau suivant décrit les

modifications que vous pouvez effectuer.

Pour cette option Procédez comme suit

Nom Vous pouvez modifier le nom de l'instance de réplication.Tapez un nom pour l'instance de réplication contenantentre 8 et 16 caractères ASCII d'impression (à l'exceptionde /, " et @). Ce nom doit être unique pour votre comptedans la région AWS que vous avez sélectionnée. Vouspouvez choisir de compliquer le nom, par exemple enincluant la région AWS et la tâche que vous effectuez, parexemple west2-mysql2mysql-instance1.

Classe d'instance Vous pouvez modifier la classe d'instance. Choisissezune classe d'instance avec la configuration dont vousavez besoin pour votre migration. La modification de laclasse d'instance entraîne le redémarrage de l'instance deréplication. Ce redémarrage a lieu pendant la fenêtre demaintenance suivante ou peut se produire immédiatementsi vous sélectionnez l'option Apply changes immediately.

Pour plus d'informations sur la façon de déterminer quelleclasse d'instance est la mieux adaptée à votre migration,consultez la page Utilisation d'une instance de réplicationAWS DMS (p. 91).

Replication engine version Vous pouvez mettre à niveau la version du moteur utiliséepar l'instance de réplication. La mise à niveau de la versiondu moteur de réplication entraîne l'arrêt de l'instance deréplication pendant la mise à niveau.

Multi-AZ Vous pouvez modifier cette option pour créer un réplicade secours de votre instance de réplication dans uneautre Zone de disponibilité pour la prise en charge dubasculement ou supprimer cette option. Si vous avezl'intention d'utiliser la capture de données modifiées (CDC),la réplication continue, vous devez activer cette option.

Version de l'API API Version 2016-01-01114

Page 122: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification d'une instance de réplication

Pour cette option Procédez comme suit

Stockage alloué (Go) Le stockage est principalement consommé par les fichiersjournaux et les transactions mises en cache. Pour lestransactions mises en cache, le stockage est utiliséuniquement lorsque les transactions mises en cachedoivent être écrites sur disque. Par conséquent, AWSDMS n'utilise pas une quantité importante de stockage.Certaines exceptions sont les suivantes :

• Les très grandes tables qui entraînent une charge detransaction importante. Le chargement d'une grandetable peut prendre du temps. Les transactions mises encache sont donc plus susceptibles d’être écrites sur ledisque pendant un tel chargement.

• Les tâches qui sont configurées pour marquer unepause avant de charger les transactions mises encache. Dans ce cas, toutes les transactions sontmises en cache jusqu'à la fin du chargement completpour toutes les tables. Avec cette configuration, unequantité de stockage importante peut être utilisée par lestransactions mises en cache.

• Les tâches configurées avec des tables chargées dansAmazon Redshift. Cependant, cette configuration n'estpas un problème lorsqu'Amazon Aurora est la cible.

Dans la plupart des cas, l'allocation de stockage par défautest suffisante. Cependant, il est toujours préférable defaire attention aux métriques associées au stockage et dedimensionner votre stockage si vous constatez que vousconsommez plus que l'allocation par défaut.

VPC Security Group(s) L'instance de réplication est créée dans un VPC. Sivotre base de données source se trouve dans un VPC,sélectionnez le groupe de sécurité VPC qui permetd'accéder à l'instance DB où réside la base de données.

Mise à niveau automatique desversions mineures

Sélectionnez cette option si vous souhaitez que lesmises à niveau du moteur mineures soient appliquéesautomatiquement à l'instance de réplication pendantla fenêtre de maintenance ou immédiatement si voussélectionnez l'option Apply changes immediately.

Fenêtre de maintenance Choisissez un intervalle de temps hebdomadaire, auformat Universal Coordinated Time (UTC), pendant lequela lieu la maintenance du système.

Par défaut : Une fenêtre de 30 minutes sélectionnée auhasard dans un bloc de 8 heures par région AWS, durantun jour de la semaine aléatoire.

Apply changes immediately Choisissez cette option pour appliquer immédiatementles modifications que vous avez apportées. En fonctiondes paramètres que vous choisissez, la sélection decette option peut entraîner un redémarrage immédiat del'instance de réplication.

Version de l'API API Version 2016-01-01115

Page 123: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRedémarrage d'une instance de réplication

Redémarrage d'une instance de réplicationVous pouvez redémarrer une instance de réplication AWS DMS pour redémarrer le moteur de réplication.Le redémarrage entraîne une interruption momentanée de l'instance de réplication. À cette occasion,le statut de l'instance est défini sur Rebooting (Redémarrage). Si l'instance AWS DMS est configuréepour Multi-AZ, le redémarrage peut se dérouler avec un basculement. Un événement AWS DMS est créélorsque le redémarrage est terminé.

Si votre instance AWS DMS est un déploiement Multi-AZ, vous pouvez forcer un basculement d'une zonede disponibilité AWS vers une autre lors du redémarrage. Lorsque vous forcez un basculement de votreinstance AWS DMS, AWS DMS bascule automatiquement vers une instance en veille dans une autre zonede disponibilité. Le redémarrage avec basculement s'avère bénéfique lorsque vous souhaitez simuler ladéfaillance d'une instance AWS DMS à des fins de test.

Si des tâches de migration s'exécutent sur l'instance de réplication pendant un redémarrage, aucuneperte de données ne se produit et la tâche reprend à la fin du redémarrage. Si les tables comprises dansla tâche de migration se trouvent au milieu d'un chargement en masse (phase de chargement complet),DMS redémarre la migration pour ces tables depuis le début. Si les tables comprises dans la tâche demigration se trouvent dans la phase de réplication continue, la tâche reprend une fois que le redémarrageest terminé.

Vous ne pouvez pas redémarrer votre instance de réplication AWS DMS si son statut n'est pas à l'étatAvailable (Disponible). Votre instance AWS DMS peut être indisponible pour plusieurs raisons, notammentpour cause de modification demandée précédemment ou d'action de créneau de maintenance. Leredémarrage d'une instance de réplication AWS DMS prend généralement peu de temps (moins de5 minutes).

Redémarrage d'une instance de réplication à l'aide de la consoleAWSPour redémarrer une instance de réplication, utilisez la console AWS.

Pour redémarrer une instance de réplication à l'aide de la console AWS

1. Connectez-vous à l'AWS Management Console et choisissez AWS DMS.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez l'instance de réplication que vous souhaitez redémarrer.4. Choisissez Reboot.5. Dans la boîte de dialogue Redémarrer l'instance de réplication, choisissez Redémarrer avec

basculement ? si vous avez configuré votre instance de réplication pour le déploiement multi-AZ et quevous souhaitez basculer vers une autre zone de disponibilité AWS.

6. Choisissez Reboot.

Redémarrage d'une instance de réplication à l'aide de la CLIPour redémarrer une instance de réplication, utilisez la commande AWS CLI reboot-replication-instance avec le paramètre suivant :

• --replication-instance-arn

Example Exemple de redémarrage simple

L'exemple de AWS CLI suivant redémarre une instance de réplication.

Version de l'API API Version 2016-01-01116

Page 124: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRedémarrage d'une instance de réplication

aws dms reboot-replication-instance \--replication-instance-arn arnofmyrepinstance

Example Exemple de redémarrage simple avec basculement

L'exemple AWS CLI suivant redémarre une instance de réplication avec basculement.

aws dms reboot-replication-instance \--replication-instance-arn arnofmyrepinstance \--force-failover

Redémarrage d'une instance de réplication via l'APIPour redémarrer une instance de réplication, utilisez l'action RebootReplicationInstance de l'APIAWS DMS avec les paramètres suivants :

• ReplicationInstanceArn = arnofmyrepinstance

Example Exemple de redémarrage simple

L'exemple de code suivant redémarre une instance de réplication.

https://dms.us-west-2.amazonaws.com/?Action=RebootReplicationInstance&DBInstanceArn=arnofmyrepinstance&SignatureMethod=HmacSHA256&SignatureVersion=4&Version=2014-09-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request&X-Amz-Date=20140425T192732Z&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date&X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

Example Exemple de redémarrage simple avec basculement

L'exemple de code suivant redémarre une instance de réplication et opère un basculement vers une autrezone de disponibilité AWS.

https://dms.us-west-2.amazonaws.com/?Action=RebootReplicationInstance&DBInstanceArn=arnofmyrepinstance&ForceFailover=true&SignatureMethod=HmacSHA256&SignatureVersion=4&Version=2014-09-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request&X-Amz-Date=20140425T192732Z&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date&X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

Version de l'API API Version 2016-01-01117

Page 125: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSuppression d'une instance de réplication

Suppression d'une instance de réplicationVous pouvez supprimer une instance de réplication AWS DMS une fois que vous avez fini de l'utiliser. Sivous avez des tâches de migration qui utilisent l'instance de réplication, vous devez arrêter et supprimerces tâches avant de supprimer l'instance de réplication.

Si vous clôturez votre compte AWS, toutes les ressources AWS DMS et les configurations associéesà votre compte sont supprimées après deux jours. Ces ressources incluent toutes les instances deréplication, la configuration des points de terminaison source et cible, les tâches de réplication et lescertificats SSL. Si après deux jours vous décidez d'utiliser à nouveau AWS DMS, vous devez recréer lesressources dont vous avez besoin.

Suppression d'une instance de réplication à l'aide de la consoleAWSPour supprimer une instance de réplication, utilisez la console AWS.

Pour supprimer une instance de réplication à l'aide de la console AWS

1. Connectez-vous à l'AWS Management Console et choisissez AWS DMS.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez l'instance de réplication que vous souhaitez supprimer.4. Sélectionnez Delete.5. Dans la boîte de dialogue , , choisissez Delete (Supprimer).

Suppression d'une instance de réplication à l'aide de l'interface deligne de commandePour supprimer une instance de réplication, utilisez la commande AWS CLI delete-replication-instance avec le paramètre suivant :

• --replication-instance-arn

Example Exemple de suppression

L'exemple AWS CLI suivant supprime une instance de réplication.

aws dms delete-replication-instance \--replication-instance-arn <arnofmyrepinstance>

Suppression d'une instance de réplication à l'aide de l'APIPour supprimer une instance de réplication, utilisez l'action DeleteReplicationInstance de l'API AWSDMS avec les paramètres suivants :

• ReplicationInstanceArn = <arnofmyrepinstance>

Example Exemple de suppression

L'exemple de code suivant supprime une instance de réplication.

Version de l'API API Version 2016-01-01118

Page 126: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurInstructions DDL prises en charge

https://dms.us-west-2.amazonaws.com/?Action=DeleteReplicationInstance&DBInstanceArn=arnofmyrepinstance&SignatureMethod=HmacSHA256&SignatureVersion=4&Version=2014-09-01&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request&X-Amz-Date=20140425T192732Z&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date&X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

Instructions DDL prises en charge par AWS DMSVous pouvez exécuter des instructions de langage de définition de données (Data Definition Language,DDL) sur la base de données source au cours du processus de migration des données. Ces instructionssont répliquées dans la base de données cible par le serveur de réplication.

Les instructions DDL prises en charge sont les suivantes :

• Créer une table• Supprimer une table• Renommer une table• Ajouter une colonne• Supprimer une colonne• Renommer une colonne• Modifier le type de données d'une colonne

Pour en savoir plus sur les instructions DDL prises en charge pour une source spécifique, consultez larubrique décrivant cette source.

Version de l'API API Version 2016-01-01119

Page 127: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSources pour la migration des données

Utilisation de points de terminaisonAWS DMS

Un point de terminaison fournit la connexion, le type de magasin de données et les informationsd'emplacement de votre magasin de données. AWS Database Migration Service utilise ces informationspour se connecter à un magasin de données et migrer les données depuis un point de terminaison sourcevers un point de terminaison cible. Vous pouvez spécifier les attributs de connexion supplémentairesd'un point de terminaison. Ces attributs peuvent contrôler la journalisation, la taille de fichier et d'autresparamètres ; pour en savoir plus sur les attributs de connexion supplémentaires, consultez la section de ladocumentation relative à votre magasin de données.

Ci-dessous, vous trouverez plus d'informations sur les points de terminaison.

Rubriques• Sources pour la migration des données (p. 120)• Cibles pour la migration des données (p. 208)• Création de points de terminaison source et cible (p. 315)

Sources pour la migration des donnéesAWS Database Migration Service (AWS DMS) peut utiliser un grand nombre des moteurs de données lesplus populaires comme source pour la réplication des données. La base de données source peut être surun moteur autogéré exécutant une instance Amazon EC2 ou une base de données sur site. Ou, ce peutêtre une source de données sur un service géré par Amazon tel que Amazon RDS ou Amazon S3.

Les sources valides pour AWS DMS incluent les suivantes :

Bases de données sur site et d'instance Amazon EC2

• Oracle version 10.2 ou ultérieure (pour les versions 10.x), 11g ou jusqu'à 12.2, 18c ou 19c pour l'éditionEnterprise, Standard, Standard One ou Standard Two.

Note

• La prise en charge d'Oracle version 19c comme source est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme source est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditionsEnterprise, Standard, Workgroup et Developer sont prises en charge. Les éditions Web et Express nesont pas prises en charge par AWS DMS.

Note

La prise en charge de Microsoft SQL Server version 2019 comme source est disponible dansles versions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7.Version de l'API API Version 2016-01-01

120

Page 128: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSources pour la migration des données

• MariaDB (pris en charge en tant que source de données compatible MySQL) versions 10.0.24 à 10.0.28,10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que source est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que source uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL versions 9.4 etultérieures (pour les versions 9.x) et 10.x comme source dans n'importe quelle version DMS.

• SAP Adaptive Server Enterprise (ASE) versions 12.5.3 ou supérieures, 15, 15.5, 15.7, 16 et ultérieures.• MongoDB version 2.6.x et 3.x et ultérieures.• Versions IBM Db2 pour Linux, UNIX et Windows (Db2 LUW) :

• Version 9.7, tous les Fix Packs sont pris en charge.• Version 10.1, tous les Fix Packs sont pris en charge.• Version 10.5, tous les Fix Packs sont pris en charge, à l'exception du Fix Pack 5.• Version 11.1, tous les Fix Packs sont pris en charge.

Microsoft Azure

• AWS DMS prend en charge le chargement complet des données lors de l'utilisation d'une base dedonnées Azure SQL comme source. La capture des données modifiées (CDC) n'est pas prise en charge.

Bases de données d'instance Amazon RDS

• Oracle version 10.2 ou ultérieure (pour les versions 10.x), 11g (version 11.2.0.3.v1 ou ultérieure) oujusqu'à 12.2, 18c ou 19c pour l'édition Enterprise, Standard, Standard One ou Standard Two.

Note

• La prise en charge d'Oracle version 19c comme source est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme source est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditions Enterprise etStandard sont prises en charge. La capture des données modifiées est prise en charge pour toutes lesversions de l'édition Enterprise. La capture des données modifiées est uniquement prise en charge pourl'édition Standard versions 2016 SP1 et ultérieures. Les éditions Web, Workgroup, Developer et Expressne sont pas prises en charge par AWS DMS.

Note

La prise en charge de Microsoft SQL Server version 2019 comme source est disponible dansles versions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6 et 5.7. La capture des données modifiées (CDC) n'est pas prise en charge pourMySQL 5.5 et les versions antérieures. La fonctionnalité CDC est prise en charge pour MySQL versions5.6 et 5.7.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.. La capture des donnéesmodifiées (CDC) est uniquement prise en charge par les versions 9.4.9 et ultérieures et 9.5.4 etultérieures,10.x et 11.x. Le paramètre rds.logical_replication, qui est requis pour la CDC, estpris en charge uniquement dans ces versions et les versions ultérieures.

Version de l'API API Version 2016-01-01121

Page 129: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que source uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL versions 9.4 etultérieures (pour les versions 9.x) et 10.x comme source dans n'importe quelle version DMS.

• MariaDB (pris en charge en tant que source de données compatible MySQL) versions 10.0.24 à 10.0.28,10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que source est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• Amazon Aurora avec compatibilité MySQL.• Amazon Aurora avec compatibilité PostgreSQL (version 10.6 ou ultérieure).

Amazon S3

• AWS DMS prend en charge le chargement complet des données et la capture des données modifiées(CDC) lors de l'utilisation d'Amazon S3 comme source.

Rubriques• Utilisation d'une base de données Oracle comme source pour AWS DMS (p. 122)• Utilisation d'une base de données Microsoft SQL Server comme source pour AWS DMS (p. 149)• Utilisation de Microsoft Azure SQL Database comme source pour AWS DMS (p. 161)• Utilisation d'une base de données PostgreSQL comme source pour AWS DMS (p. 162)• Utilisation d'une base de données compatible MySQL comme source pour AWS DMS (p. 180)• Utilisation d'une base de données SAP ASE comme source pour AWS DMS (p. 188)• Utilisation de MongoDB comme source pour AWS DMS (p. 193)• Utilisation de Amazon S3 comme source pour AWS DMS (p. 198)• Utilisation d'une base de données IBM Db2 pour Linux, Unix et Windows (Db2 LUW) comme source

pour AWS DMS (p. 205)

Utilisation d'une base de données Oracle commesource pour AWS DMSVous pouvez migrer des données d'une ou de plusieurs bases de données Oracle à l'aide d'AWS DMS.Avec une base de données Oracle comme source, vous pouvez migrer des données vers l'une des ciblesprises en charge par AWS DMS.

DMS prend en charge les éditions de base de données Oracle suivantes :

• Oracle Enterprise Edition• Oracle Standard Edition• Édition Oracle Express• Édition Oracle Personal

Pour les bases de données Oracle autogérées comme sources, AWS DMS prend en charge toutes leséditions de base de données Oracle pour les versions 10.2 et ultérieures, 11g et jusqu'à 12.2, 18c et 19c.

Version de l'API API Version 2016-01-01122

Page 130: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Pour les bases de données Oracle gérées par Amazon, fournies par Amazon RDS, AWS DMS prenden charge toutes les éditions de base de données Oracle pour les versions 11g (version 11.2.0.3.v1 ouultérieure) ou jusqu'à 12.2, 18c ou 19c.

Note

• La prise en charge d'Oracle version 19c comme source est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme source est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

Vous pouvez utiliser SSL (Secure Sockets Layer) pour chiffrer les connexions entre votre pointde terminaison Oracle et votre instance de réplication. Pour plus d'informations sur l'utilisationde SSL avec un point de terminaison Oracle, consultez Utilisation du protocole SSL avecAWS Database Migration Service (p. 81).

La procédure à suivre pour configurer une base de données Oracle en tant que source pour AWS DMS estla suivante :

1. Si vous souhaitez créer une tâche CDC uniquement ou CDC et de chargement complet, vous devezchoisir Oracle LogMiner ou AWS DMS Binary Reader pour capturer les modifications des données. Lechoix de LogMiner ou de Binary Reader détermine certaines tâches de configuration et d'autorisationultérieures. Pour une comparaison de LogMiner et de Binary Reader, veuillez consulter la sectionsuivante.

2. Créez un utilisateur Oracle avec les autorisations appropriées pour AWS DMS. Si vous créez une seuletâche de chargement complet, aucune configuration supplémentaire n'est nécessaire.

3. Créez un point de terminaison DMS conforme à votre configuration choisie.

Pour plus de détails sur l'utilisation des bases de données Oracle et d'AWS DMS, consultez les sectionssuivantes.

Rubriques• Utilisation d'Oracle LogMiner ou d'AWS DMS Binary Reader pour la capture des données modifiées

(CDC) (p. 123)• Utilisation d'une base de données Oracle autogérée comme source pour AWS DMS (p. 126)• Utilisation d'une base de données Oracle gérée par Amazon comme source pour AWS DMS (p. 131)• Limites lors de l'utilisation d'Oracle comme source pour AWS DMS (p. 134)• Méthodes de chiffrement prises en charge pour l'utilisation d'Oracle comme source pour AWS

DMS (p. 136)• Méthodes de compression prises en charge pour utiliser Oracle comme source pour AWS

DMS (p. 138)• Réplication de tables imbriquées à l'aide d'Oracle en tant que source pour AWS DMS (p. 138)• Attributs de connexion supplémentaires lors de l'utilisation d'Oracle comme source pour AWS

DMS (p. 140)• Types de données sources pour Oracle (p. 146)

Utilisation d'Oracle LogMiner ou d'AWS DMS Binary Reader pourla capture des données modifiées (CDC)Oracle fournit deux méthodes pour la lecture des journaux redo lorsque vous traitez les modifications :Oracle LogMiner et AWS DMS Binary Reader. LogMiner est une API Oracle permettant de lire les fichiers

Version de l'API API Version 2016-01-01123

Page 131: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

de journalisation en ligne et les fichiers de journalisation archivés. Binary Reader est une méthode AWSDMS native qui lit et analyse les fichiers de journalisation bruts directement.

Par défaut, AWS DMS utilise Oracle LogMiner pour la capture des données modifiées (CDC).

Les avantages de l'utilisation de LogMiner avec AWS DMS incluent les avantages suivants :

• LogMiner prend en charge la plupart des options Oracle, telles que les options de chiffrement et lesoptions de compression. Binary Reader ne prend pas en charge toutes les options Oracle, en particuliercelles liées au chiffrement et à la compression.

• LogMiner propose une configuration simple, surtout par rapport à la configuration d'accès direct deBinary Reader ou si les journaux redo se trouvent sur Oracle Automatic Storage Management (ASM).

• LogMiner prend en charge les types de compression HCC suivants pour le chargement complet et laréplication en cours (CDC) :• QUERY HIGH• ARCHIVE HIGH• ARCHIVE LOW• QUERY LOW

Binary Reader prend en charge la compression QUERY LOW uniquement pour les réplications dechargement complet, et pas pour les réplications en cours (CDC).

• LogMiner prend en charge les clusters de table à utiliser par AWS DMS. Ce n'est pas le cas de BinaryReader.

Les avantages de l'utilisation de Binary Reader avec AWS DMS, au lieu de LogMiner, sont les suivants :

• Pour les migrations avec un gros volume de modifications, LogMiner peut avoir un impact sur les E/S oul'UC sur l'ordinateur hébergeant la base de données Oracle source. Binary Reader a moins de chanced'avoir un impact sur les E/S ou l'UC parce que les journaux d'archivage sont copiés sur l'instance deréplication et y sont exploités.

• Pour les migrations avec un gros volume de modifications, les performances CDC sont généralementsupérieures lors de l'utilisation d'Oracle Binary Reader plutôt qu'Oracle LogMiner.

• Oracle Binary Reader prend en charge CDC pour LOBs dans Oracle version 12c. LogMiner ne le faitpas.

• Binary Reader prend en charge les types de compression HCC suivants pour le chargement complet etla réplication continue (CDC) :• QUERY HIGH• ARCHIVE HIGH• ARCHIVE LOW

Le type de compression QUERY LOW n'est pris en charge que pour les migrations de chargementcomplet.

En général, utilisez Oracle LogMiner pour la migration de votre base de données Oracle, sauf dans l'un descas suivants :

• Vous avez besoin d'exécuter plusieurs tâches de migration sur la base de données source Oracle.• Le volume de modifications ou de journalisation de la base de données Oracle source est élevé, ou vous

avez des modifications et vous utilisez également ASM.• Votre charge de travail inclut des instructions UPDATE qui mettent à jour uniquement les colonnes LOB.

Dans ce cas, utilisez Binary Reader. Ces instructions UPDATE ne sont pas prises en charge par OracleLogMiner.

Version de l'API API Version 2016-01-01124

Page 132: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• Vous migrez des colonnes LOB à partir d'Oracle 12c. Dans Oracle 12c, LogMiner ne prend pas encharge les colonnes LOB. Dans ce cas, utilisez Binary Reader.

Note

Vous devez redémarrer une tâche si vous basculez d'Oracle LogMiner à AWS DMS BinaryReader, ou vice-versa, pour effectuer la capture des données modifiées.

Configuration de la capture des données modifiées (CDC) sur une base dedonnées source Oracle

Lorsque vous utilisez Oracle comme point de terminaison source pour la capture de données modifiées(CDC) et le chargement complet, ou seulement pour CDC, vous définissez des attributs de connexionsupplémentaires. Ces attributs spécifient s'il convient d'utiliser Binary Reader pour accéder aux journauxde transactions. Vous spécifiez des attributs de connexion supplémentaires lorsque vous créez le point determinaison source. Si vous avez plusieurs paramètres d'attribut de connexion, séparez-les les uns desautres par des points-virgules, sans espace supplémentaire (par exemple, oneSetting;thenAnother).

LogMiner est utilisé par défaut, de sorte que vous n'avez pas à spécifier explicitement son utilisation. Pouractiver Binary Reader afin d'accéder aux journaux de transactions, ajoutez les attributs de connexionsupplémentaire suivants.

useLogMinerReader=N;useBfile=Y;

Note

Vous pouvez configurer un chargement CDC pour un Amazon RDS pour Oracle en tantqu'instance source à l'aide de Binary Reader uniquement pour les versions Oracle 11.2.0.4.v11et ultérieures et 12.1.0.2.v7. Pour une instance Amazon RDS pour Oracle version 12.2 ou 18c,utilisez la version AWS DMS 3.3.1. Pour de plus amples informations, veuillez consulter Utilisationd'une base de données Oracle gérée par Amazon comme source pour AWS DMS (p. 131).

Dans les versions AWS DMS antérieures à 3.x où la base de données source Oracle utilise Oracle ASM,l'utilisation de Binary Reader nécessite des attributs supplémentaires. En plus de ce qui précède, assurez-vous également que vous spécifiez des attributs pour le nom d'utilisateur ASM et l'adresse du serveurASM. Lorsque vous créez le point de terminaison source, le paramètre de demande Password doitspécifier les deux mots de passe : le mot de passe du point de terminaison source Oracle et le mot depasse ASM.

Utilisez le format suivant pour les attributs de connexion supplémentaires afin d'accéder à un serveur quiutilise ASM avec Binary Reader.

useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;

Définissez le paramètre de demande Password du point de terminaison source sur le mot de passed'utilisateur Oracle et le mot de passe ASM, séparés par une virgule comme suit.

oracle_user_password,asm_user_password

Dans les versions AWS DMS 3.x ou ultérieures où la source Oracle utilise ASM, vous pouvez utiliserdes options hautes performances dans Binary Reader pour le traitement des transactions à grande

Version de l'API API Version 2016-01-01125

Page 133: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

échelle. Dans ce cas, l'instance de réplication prend en charge ces options hautes performances. Cesoptions incluent des attributs de connexion supplémentaires pour spécifier le nombre de threads parallèles(parallelASMReadThreads) et le nombre de tampons de lecture anticipée (readAheadBlocks). Ladéfinition conjointe de ces attributs peut améliorer considérablement les performances d'un chargementCDC à l'aide d'ASM. Les paramètres ci-dessous fournissent de bons résultats pour la plupart desconfigurations ASM.

useLogMinerReader=N;useBfile=Y;parallelASMReadThreads=6;readAheadBlocks=150000;

Pour de plus amples informations sur les valeurs prises en charge par les attributs de connexionsupplémentaires, veuillez consulter Attributs de connexion supplémentaires lors de l'utilisation d'Oraclecomme source pour AWS DMS (p. 140).

En outre, les performances d'un chargement CDC à l'aide d'ASM dépendent d'autres paramètres quevous choisissez. Ces paramètres incluent vos attributs de connexion supplémentaires AWS DMS etles paramètres SQL pour configurer la source Oracle. Si vous utilisez les versions AWS DMS 2.4.x, lesparamètres de performance ci-dessus ne s'appliquent pas. Pour ces versions AWS DMS, veuillez consulterla publication Comment migrer d'Oracle ASM vers AWS en utilisant AWS DMS sur le blog AWS Databasepour plus d'informations sur l'utilisation d'ASM avec votre point de terminaison source Oracle.

Utilisation d'une base de données Oracle autogérée commesource pour AWS DMSUne base de données autogérée est une base de données que vous configurez et contrôlez, uneinstance de base de données locale sur site ou une base de données sur Amazon EC2. Ci-dessous, vousdécouvrirez les privilèges et les configurations que vous devez configurer lors de l'utilisation d'une base dedonnées Oracle autogérée avec AWS DMS.

Privilèges de compte d'utilisateur requis sur une source Oracle autogérée pourAWS DMS

Pour utiliser une base de données Oracle comme source dans AWS DMS, accordez les privilèges suivantsà l'utilisateur Oracle spécifié dans les paramètres de connexion au point de terminaison Oracle.

Note

Lorsque vous accordez des privilèges, utilisez le nom réel des objets, et non leur synonyme. Parexemple, utilisez V_$OBJECT en intégrant le trait de soulignement, et non V$OBJECT sans le traitde soulignement.

• SELECT ANY TRANSACTION

• SELECT on V_$ARCHIVED_LOG

• SELECT on V_$LOG

• SELECT on V_$LOGFILE

• SELECT on V_$DATABASE

• SELECT on V_$THREAD

• SELECT on V_$PARAMETER

• SELECT on V_$NLS_PARAMETERS

• SELECT on V_$TIMEZONE_NAMES

• SELECT on V_$TRANSACTION

• SELECT on ALL_INDEXES

Version de l'API API Version 2016-01-01126

Page 134: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• SELECT on ALL_OBJECTS

• SELECT on DBA_OBJECTS – Obligatoire si la version d'Oracle est antérieure à 11.2.0.3.

Accordez le privilège supplémentaire suivant pour chaque table répliquée lorsque vous utilisez une liste detables spécifique.

SELECT on any-replicated-table;

Accordez le privilège supplémentaire suivant lors de l'utilisation d'un modèle pour la liste de tables.

SELECT ANY TABLE;

Accordez le privilège supplémentaire suivant pour chaque table répliquée lorsque AWS DMS ajouteautomatiquement la journalisation supplémentaire (comportement par défaut) et que vous utilisez uneliste de tables spécifique. Pour de plus amples informations sur la désactivation de la journalisationsupplémentaire, veuillez consulter Attributs de connexion supplémentaires lors de l'utilisation d'Oraclecomme source pour AWS DMS (p. 140).

ALTER on any-replicated-table;;

Accordez le privilège supplémentaire suivant lorsque AWS DMS ajoute automatiquement une journalisationsupplémentaire (comportement par défaut). Pour de plus amples informations sur la désactivation de lajournalisation supplémentaire, veuillez consulter Attributs de connexion supplémentaires lors de l'utilisationd'Oracle comme source pour AWS DMS (p. 140).

ALTER ANY TABLE;

Lorsque vous accédez à une base de données de secours Oracle, accordez le privilège suivant.

SELECT on V$STANDBY_LOG;

Privilèges de compte requis lors de l'utilisation d'Oracle LogMiner pour accéderaux journaux redo

Pour accéder aux journaux redo à l'aide d'Oracle LogMiner, accordez les privilèges suivants à l'utilisateurOracle spécifié dans les paramètres de connexion au point de terminaison Oracle :

• CREATE SESSION

• EXECUTE on DBMS_LOGMNR

• SELECT on V_$LOGMNR_LOGS

• SELECT on V_$LOGMNR_CONTENTS

• GRANT LOGMINING – Obligatoire uniquement si la version d'Oracle est 12c ou ultérieure.

Privilèges de compte requis lors de l'utilisation d'AWS DMS Binary Reader pouraccéder aux journaux redo

Pour accéder aux journaux redo à l'aide d'AWS DMS Binary Reader, accordez les privilèges suivants àl'utilisateur Oracle spécifié dans les paramètres de connexion au point de terminaison Oracle :

• CREATE SESSION

Version de l'API API Version 2016-01-01127

Page 135: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• SELECT on v_$transportable_platform – Accordez ce privilège si les fichiers de journalisationsont stockés dans Oracle Automatic Storage Management (ASM) et que AWS DMSy accède depuisASM.

• CREATE ANY DIRECTORY – Accordez ce privilège pour autoriser AWS DMS à utiliser l'accès auxfichiers en lecture Oracle BFILE dans certains cas. Cet accès est requis lorsque l'instance de réplicationne dispose pas d'un accès au niveau du fichier aux fichiers de journalisation et que les fichiers dejournalisation se trouvent sur un stockage non ASM.

• EXECUTE on DBMS_FILE_TRANSFER package – Accordez ce privilège pour copier les journaux redodans un dossier temporaire à l'aide de la méthode CopyToTempFolder.

• EXECUTE on DBMS_FILE_GROUP

Binary Reader fonctionne avec les fonctions de fichier Oracle qui incluent des répertoires Oracle. Chaqueobjet répertoire Oracle inclut le nom du dossier contenant les journaux redo à traiter. Ces répertoires Oraclene sont pas représentés au niveau du système de fichiers. Il s'agit plutôt de répertoires logiques créés auniveau de la base de données Oracle. Vous pouvez les afficher dans la vue Oracle ALL_DIRECTORIES.

Si vous souhaitez que AWS DMS crée ces répertoires Oracle, accordez le privilège CREATE ANYDIRECTORY spécifié précédemment. AWS DMS crée les noms de répertoire avec le préfixe DMS_.Si vous n'accordez pas le privilège CREATE ANY DIRECTORY, créez manuellement les répertoirescorrespondants. Dans certains cas, lorsque vous créez manuellement les répertoires Oracle, l'utilisateurOracle spécifié dans le point de terminaison source Oracle n'est pas l'utilisateur qui a créé ces répertoires.Dans ces cas, accordez également le privilège READ on DIRECTORY.

Si le point de terminaison source Oracle se trouve dans Active Dataguard Standby (ADG), consultez lapublication Comment utiliser Binary Reader avec ADG sur le blog AWS Database.

Dans certains cas, vous pouvez utiliser Oracle Managed Files (OMF) pour stocker les journaux. Ouvotre point de terminaison source est dans ADG et le privilège CREATE any DIRECTORY ne peut pasêtre accordé. Dans ce cas, créez manuellement les répertoires avec tous les emplacements de journalpossibles avant de démarrer la tâche de réplication AWS DMS. Si AWS DMS ne trouve pas le répertoireprécréé qu'il attend, la tâche s'arrête. En outre, AWS DMS ne supprime pas les entrées qu'il a créées dansla vue ALL_DIRECTORIES, donc supprimez-les manuellement.

Privilèges de compte requis lors de l'utilisation de Binary Reader avec OracleAutomatic Storage Management (ASM)

Pour accéder aux fichiers de journalisation dans Automatic Storage Management (ASM) à l'aide de BinaryReader, accordez les privilèges suivants à l'utilisateur Oracle spécifié dans les paramètres de connexionaux points de terminaison Oracle :

• SELECT ON v_$transportable_platform

• SYSASM – Pour accéder au compte ASM avec Oracle 11g Release 2 (version 11.2.0.2) et versionsultérieures, accordez le privilège SYSASM à l'utilisateur de point de terminaison Oracle. Pour lesanciennes versions d'Oracle prises en charge, il suffit généralement d'accorder le privilège SYSDBA àl'utilisateur du point de terminaison Oracle.

Vous pouvez valider l'accès au compte ASM en ouvrant une invite de commandes et en appelant l'une desinstructions suivantes, en fonction de votre version Oracle spécifiée précédemment.

Si vous avez besoin du privilège SYSDBA, utilisez ce qui suit.

sqlplus asmuser/asmpassword@+asmserver as sysdba

Si vous avez besoin du privilège SYSASM, utilisez ce qui suit.

Version de l'API API Version 2016-01-01128

Page 136: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

sqlplus asmuser/asmpassword@+asmserver as sysasm

Configuration d'une source Oracle autogérée pour la réplication avec AWS DMSVoici les conditions de configuration requises pour l'utilisation d'une base de données Oracle autogérée entant que source dans AWS DMS :

• Fournissez l'accès au compte Oracle à l'utilisateur AWS DMS. Pour de plus amples informations, veuillezconsulter Fournir l'accès au compte Oracle (p. 129)

• Définissez les journaux sur le mode ARCHIVELOG. Pour de plus amples informations, veuillez consulterDéfinition des journaux en mode ARCHIVELOG (p. 129)

Vous pouvez exécuter Oracle en deux modes différents : le mode ARCHIVELOG et le modeNOARCHIVELOG. Pour utiliser les journaux Oracle avec AWS DMS, exécutez la base de données enmode ARCHIVELOG.

• Configurez et vérifiez la journalisation supplémentaire.

Vous pouvez configurer automatiquement la journalisation supplémentaire à l'aide d'attributs deconnexion supplémentaires pour le point de terminaison source Oracle. Pour plus d'informations,consultez Attributs de connexion supplémentaires lors de l'utilisation d'Oracle comme source pour AWSDMS (p. 140). Si vous ne définissez pas ces attributs de connexion supplémentaires, vous pouvezconfigurer la journalisation supplémentaire à l'aide d'une approche plus fine. Pour de plus amplesinformations, veuillez consulter Vérification et configuration de la journalisation supplémentaire (p. 129)

Fournir l'accès au compte Oracle

Pour fournir un accès au compte Oracle à l'utilisateur AWS DMS

• Assurez-vous que l'utilisateur AWS DMS dispose de privilèges de lecture/écriture pour la base dedonnées Oracle. Pour de plus amples informations sur la configuration de l'accès au compte Oracle,veuillez consulter Privilèges de compte d'utilisateur requis sur une source Oracle autogérée pour AWSDMS (p. 126).

Définition des journaux en mode ARCHIVELOG

Pour définir les journaux en mode ARCHIVELOG

• Exécutez la commande suivante.

ALTER database ARCHIVELOG;

Note

Si votre instance de base de données Oracle est sur Amazon RDS, exécutez une autrecommande. Pour plus d'informations, consultezUtilisation d'une base de données Oraclegérée par Amazon comme source pour AWS DMS (p. 131).

Vous pouvez également configurer et vérifier la journalisation supplémentaire, comme décrit ci-dessous.

Vérification et configuration de la journalisation supplémentaire

Pour configurer la journalisation supplémentaire, suivez les étapes suivantes, décrites plus en détail plusloin dans cette section :

1. Vérifiez si la journalisation supplémentaire est activée pour la base de données :

Version de l'API API Version 2016-01-01129

Page 137: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

2. Vérifiez que la journalisation supplémentaire requise est activée pour chaque table :3. Si un filtre ou une transformation est défini pour une table, activez la journalisation supplémentaire si

nécessaire.

Pour vérifier et, si nécessaire, activer la journalisation supplémentaire pour la base de données

1. Exécutez l'exemple de requête suivant pour vérifier que la version actuelle de la base de donnéesOracle est prise en charge par AWS DMS. Si la requête s'exécute sans erreur, la version de la base dedonnées renvoyée est prise en charge.

SELECT name, value, description FROM v$parameter WHERE name = 'compatible';

Ici, name, value et description sont des colonnes quelque part dans la base de données qui sontinterrogées en fonction de la valeur de name. Dans le cadre de la requête, une tâche AWS DMS vérifiela valeur de v$parameterpar rapport à la version renvoyée de la base de données Oracle. S'il y aune correspondance, la requête s'exécute sans erreur et AWS DMS prend en charge cette version dela base de données. S'il n'y a pas de correspondance, la requête génère une erreur et AWS DMS neprend pas en charge cette version de la base de données. Dans ce cas, pour procéder à la migration,convertissez d'abord la base de données Oracle en version prise en charge par AWS DMS. Ensuite,recommencez avec la configuration de la base de données comme décrit dans Configuration d'unesource Oracle autogérée pour la réplication avec AWS DMS (p. 129).

2. Exécutez la requête suivante pour vérifier que la journalisation supplémentaire est activée pour la basede données. Si le résultat renvoyé est YES ou IMPLICIT, la journalisation supplémentaire est activéepour la base de données.

SELECT supplemental_log_data_min FROM v$database;

3. Si nécessaire, activez la journalisation supplémentaire pour la base de données en exécutant lacommande suivante.

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Note

Si votre instance de base de données Oracle est sur Amazon RDS, exécutez une autrecommande. Pour plus d'informations, consultezUtilisation d'une base de données Oraclegérée par Amazon comme source pour AWS DMS (p. 131).

Pour vérifier si la journalisation supplémentaire requise est activée pour chaque table de base dedonnées

• Effectuez l'une des actions suivantes :

• Si une clé primaire existe, ajoutez une journalisation supplémentaire pour la clé primaire. Vouspouvez le faire en utilisant le format pour ajouter une journalisation supplémentaire sur la cléprimaire, ou en ajoutant une journalisation supplémentaire sur les colonnes de clé primaire.

• Si aucune clé primaire n'existe, effectuez l'une des opérations suivantes :• Si aucune clé primaire n'existe et que la table possède un seul index unique, toutes les colonnes

de l'index unique doivent être ajoutées au journal supplémentaire.

L'utilisation de la commande SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS n'ajoutepas les colonnes d'index uniques dans le journal.

• Si aucune clé primaire n'existe et que la table comporte plusieurs index uniques, ajouteztoutes les colonnes de l'index unique AWS DMS sélectionné au journal supplémentaire. AWS

Version de l'API API Version 2016-01-01130

Page 138: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

DMS sélectionne le premier index unique à partir d'une liste ascendante ordonnée par ordrealphabétique.

• Si aucune clé primaire n'existe et qu'il n'y a pas d'index unique, ajoutez une journalisationsupplémentaire sur toutes les colonnes.

L'utilisation de la commande SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS n'ajoutepas les colonnes d'index uniques sélectionnées dans le journal.

Note

Dans certains cas, l'index unique et la clé primaire de la table cible sont différents de ceux dela table source. Dans ce cas, ajoutez manuellement une journalisation supplémentaire sur lescolonnes de la table source qui constituent l'index unique et la clé primaire de la table cible.De plus, si vous modifiez la clé primaire de la table cible, vous devez ajouter la journalisationsupplémentaire dans les colonnes de l'index cible, au lieu des colonnes de la clé primaire ou del'index unique source.

Si un filtre ou une transformation est défini pour une table, vous devrez peut-être activer la journalisationsupplémentaire. Tenez compte des points suivants :

• Si la journalisation supplémentaire ALL COLUMNS a été ajoutée à la table, il n'est pas nécessaired'ajouter de journalisation supplémentaire.

• Si la table a un index unique ou une clé primaire, ajoutez une journalisation supplémentaire sur chaquecolonne impliquée dans un filtre ou une transformation, mais uniquement si ces colonnes sont différentesde celles de la clé primaire ou de l'index unique.

• Si une transformation utilise une seule colonne, n'ajoutez pas cette colonne à un groupe de journalisationsupplémentaire. Par exemple, pour une transformation A+B, ajoutez une journalisation supplémentairesur les deux colonnes A et B. Cependant, pour une transformation substring(A,10), n'ajoutez pas dejournalisation supplémentaire sur la colonne A.

• L'une des méthodes de configuration de la journalisation supplémentaire sur les colonnes de clé primaireou d'index uniques et d'autres colonnes spécifiques qui sont filtrées ou transformées consiste à ajouterune journalisation USER_LOG_GROUP supplémentaire. Ajoutez cette journalisation USER_LOG_GROUPsupplémentaire à la fois sur les colonnes de clé primaire/index unique et sur les autres colonnesspécifiques qui sont filtrées ou transformées.

Par exemple, pour répliquer une table nommée TEST.LOGGING avec une clé primaire ID et un filtrepar la colonne NAME, vous pouvez exécuter une commande similaire à celle qui suit pour créer lajournalisation supplémentaire du groupe de journaux.

ALTER TABLE TEST.LOGGING ADD SUPPLEMENTAL LOG GROUP TEST_LOG_GROUP (KEY, ADDRESS) ALWAYS;

Dans cet exemple, la colonne NAME est un composant de ADDRESS.

Utilisation d'une base de données Oracle gérée par Amazoncomme source pour AWS DMSUne base de données gérée par Amazon est une base de données qui se trouve sur un service Amazoncomme Amazon RDS, Amazon Aurora ou Amazon S3. Vous découvrez ensuite les privilèges et lesconfigurations à configurer lors de l'utilisation d'une base de données Oracle gérée par Amazon avec AWSDMS.

Version de l'API API Version 2016-01-01131

Page 139: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Privilèges de compte d'utilisateur requis sur une source Oracle gérée par Amazonpour AWS DMSPour accorder les privilèges sur les bases de données Oracle dans Amazon RDS, utilisez la procédurestockée rdsadmin.rdsadmin_util.grant_sys_object. Pour plus d'informations, consultez la pageAttribution des privilèges SELECT ou EXECUTE aux objets SYS.

Accordez les privilèges suivants au compte utilisateur AWS DMS utilisé pour accéder au point determinaison Oracle source :

GRANT SELECT ANY TABLE to dms_user;GRANT SELECT on ALL_VIEWS to dms_user;GRANT SELECT ANY TRANSACTION to dms_user;GRANT SELECT on DBA_TABLESPACES to dms_user;GRANT SELECT on ALL_TAB_PARTITIONS to dms_user;GRANT SELECT on ALL_INDEXES to dms_user;GRANT SELECT on ALL_OBJECTS to dms_user;GRANT SELECT on ALL_TABLES to dms_user;GRANT SELECT on ALL_USERS to dms_user;GRANT SELECT on ALL_CATALOG to dms_user;GRANT SELECT on ALL_CONSTRAINTS to dms_user;GRANT SELECT on ALL_CONS_COLUMNS to dms_user;GRANT SELECT on ALL_TAB_COLS to dms_user;GRANT SELECT on ALL_IND_COLUMNS to dms_user;GRANT SELECT on ALL_LOG_GROUPS to dms_user;GRANT LOGMINING TO dms_user;GRANT READ ON DIRECTORY ONLINELOG_DIR TO dms_user; (for Binary Reader)GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO dms_user; (for Binary Reader)

En outre, effectuez les opérations suivantes :

exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','dms_user','SELECT');exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','dms_user','EXECUTE');exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'MKTEST', 'SELECT'); (as of AWS DMS versions 3.3.1 and later)exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'MKTEST', 'SELECT'); (for RDS Active Dataguard Standby (ADG))

Configuration d'une source Oracle gérée par Amazon pour AWS DMSAvant d'utiliser une base de données Oracle gérée par Amazon comme source pour AWS DMS, effectuezles tâches suivantes pour la base de données Oracle :

• Configurez la journalisation supplémentaire.• Activez les sauvegardes automatiques.• Configurez l'archivage. L'archivage des fichiers de journalisation de votre instance DB Amazon RDS pour

Oracle permet à AWS DMS d'extraire les informations du journal à l'aide d'Oracle LogMiner ou de BinaryReader.

Version de l'API API Version 2016-01-01132

Page 140: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Chacune des étapes précédentes est décrite plus en détail ci-dessous.

Pour configurer la journalisation supplémentaire

1. Exécutez la commande suivante.

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

2. (Facultatif) Modifiez les attributs de journalisation supplémentaires si nécessaire à l'aide descommandes suivantes.

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');exec rdsadmin.rdsadmin_util.alter_supplemental_logging('DROP','PRIMARY KEY');

Pour activer les sauvegardes automatiques.

1. Connectez-vous au AWS Management Console et ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

2. Dans la section Paramètres de gestion de votre instance de base de données Amazon RDS Oracle,définissez l'option Sauvegardes automatiques activées sur Oui.

Pour configurer l'archivage

1. Exécutez la commande rdsadmin.rdsadmin_util.set_configuration pour configurerl'archivage.

Par exemple, pour conserver les fichiers de journalisation archivés pendant 24 heures, exécutez lacommande suivante.

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

2. Vérifiez que votre espace de stockage est suffisant pour les journaux redo archivés pendant la périodespécifiée.

Configuration de la capture des changements de données (CDC) pour une sourceAmazon RDS Oracle pour AWS DMSVous pouvez configurer AWS DMS pour utiliser une instance Amazon RDS pour Oracle comme source deCDC.

Pour utiliser Oracle LogMiner, les privilèges de compte utilisateur minimum requis sont suffisants. Pour plusd'informations, consultez Privilèges de compte d'utilisateur requis sur une source Oracle gérée par Amazonpour AWS DMS (p. 132).

Pour utiliser AWS DMS Binary Reader, spécifiez des paramètres supplémentaires et des attributs deconnexion supplémentaires pour le point de terminaison source Oracle, en fonction de votre version AWSDMS. Pour les versions 11g et 12.1 d'Amazon RDS Oracle, consultez la publication AWS DMS prenddésormais en charge Binary Reader pour Amazon RDS pour Oracle et Oracle Standby en tant que sourcesur le blog AWS Database.

Pour les versions AWS DMS 3.3.1 et ultérieures, la prise en charge de Binary Reader est disponible dansles versions 12.2 et 18c d'Amazon RDS Oracle.

Pour configurer CDC à l'aide d'AWS DMS Binary Reader

1. Connectez-vous à votre base de données source Amazon RDS Oracle en tant qu'utilisateur maître.

Version de l'API API Version 2016-01-01133

Page 141: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

2. Exécutez les procédures stockées suivantes pour créer les répertoires au niveau du serveur. Pour deplus amples informations, veuillez consulter Accès aux journaux de transactions dans Amazon RDSGuide de l'utilisateur.

exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;

3. Définissez les attributs de connexion supplémentaires suivants sur le point de terminaison sourceAmazon RDS Oracle. Il ne doit pas y avoir d'espace après le point-virgule (;) si vous avez plusieursparamètres d'attribut.

useLogminerReader=N;useBfile=Y

Note

Il ne doit pas y avoir d'espace après le point-virgule (;) si vous avez plusieurs paramètres d'attribut(par exemple, oneSetting;thenAnother).

Limites lors de l'utilisation d'Oracle comme source pour AWSDMSLes limites suivantes s'appliquent lors de l'utilisation d'une base de données Oracle comme source pourAWS DMS:

• AWS DMS ne prend pas en charge les noms d'objets longs (plus de 30 octets).• AWS DMS ne prend pas en charge les index basés sur les fonctions.• Si vous utilisez la journalisation supplémentaire et que vous effectuez des transformations sur l'une

des colonnes, assurez-vous que la journalisation supplémentaire est activée pour tous les champs etcolonnes.

• AWS DMS ne prend pas en charge les bases de données de conteneur multi-locataires (CDB).• AWS DMS ne prend pas en charge les contraintes différées.• AWS DMS prend en charge la syntaxe rename table table-name to new-table-name des

versions 11 et ultérieures d'Oracle.• AWS DMS ne réplique pas les modifications de données résultant d'opérations de partition ou de

sous-partition (ADD, DROP, EXCHANGE et TRUNCATE). Ces mises à jour peuvent provoquer les erreurssuivantes lors de la réplication :• Pour les opérations ADD, les mises à jour et les suppressions des données ajoutées peuvent

déclencher un avertissement « 0 lignes affectées ».• Pour les opérations DROP et TRUNCATE, les nouvelles insertions peuvent générer des erreurs de

« doublons ».• Les opérations EXCHANGE peuvent déclencher à la fois un avertissement « 0 lignes affectées » et des

erreurs « doublons ».

Pour répliquer les modifications résultant d'opérations de partition ou de sous-partition, rechargez lestables en question. Après l'ajout d'une nouvelle partition vide, les opérations sur les tables nouvellementajoutées sont répliquées vers la cible comme d'habitude.

• AWS DMS prend en charge les modifications de données sur la cible résultant de l'exécution del'instruction CREATE TABLE AS sur la source, à l'exception des types de données fournis par Oracle telsque XMLType.

• Lorsque vous activez le mode LOB de taille limitée, AWS DMS réplique les LOB de la source Oraclesous forme de valeurs NULL sur la cible.

Version de l'API API Version 2016-01-01134

Page 142: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• AWS DMS ne capture pas les modifications apportées par le package DBMS_REDEFINITION Oracle, parexemple les métadonnées de la table et le champ OBJECT_ID.

• AWS DMS mappe les colonnes BLOB et CLOB vides à NULL sur la cible.• Lors de la capture de modifications avec Oracle 11 LogMiner, une mise à jour sur une colonne CLOB

dont la longueur de chaîne est supérieure à 1982 est perdue et la cible n'est pas mise à jour.• Lors de la capture de données de modification (CDC), AWS DMS ne prend pas en charge les mises à

jour par lots des colonnes numériques définies comme une clé primaire.• AWS DMS ne prend pas en charge certaines commandes UPDATE. L'exemple suivant est une

commande UPDATE non prise en charge.

UPDATE TEST_TABLE SET KEY=KEY+1;

Ici, TEST_TABLE est le nom de la table et KEY est une colonne numérique définie comme une cléprimaire.

• AWS DMS tronque toutes les données dans les colonnes LONG ou LONG RAW de plus de 64 Ko pour lesréduire à 64 Ko.

• AWS DMS ne réplique pas les tables dont les noms contiennent des apostrophes.• AWS DMS ne prend pas en charge les CDC à partir des vues dynamiques.• Lorsque vous utilisez AWS DMS Binary Reader pour accéder aux fichiers de journalisation, AWS DMS

ne prend pas en charge CDC pour les tables organisées par index avec un segment de débordement.• Lorsque vous utilisez Oracle LogMiner pour accéder aux fichiers de journalisation, AWS DMS présente

les limitations suivantes :• Pour Oracle 12 uniquement, AWS DMS ne réplique pas les modifications apportées aux colonnes

LOB.• Pour toutes les versions d'Oracle, AWS DMS ne réplique pas le résultat des opérations UPDATE surXMLTYPE et les colonnes LOB.

• AWS DMS ne réplique pas les résultats de l'instruction DDL ALTER TABLE ADD columndata_type DEFAULT <default_value>. Au lieu de répliquer <default_value> vers la cible, ildéfinit la nouvelle colonne sur NULL. Un tel résultat peut également se produire même si l'instructionDDL qui a ajouté la nouvelle colonne a été exécutée dans une tâche précédente.

Si la nouvelle colonne à la valeur nullable, Oracle met à jour toutes les lignes de la table avantjournaliser la DDL même. Par conséquent, AWS DMS capture les modifications, mais ne met pas àjour la cible. Lorsque la nouvelle colonne est définie sur NULL, si la table cible n'a pas de clé primaireou d'index unique, les mises à jour suivantes affichent un message « zéro lignes affectées ».

• AWS DMS ne prend pas en charge les connexions à une base de données enfichable (PDB) à l'aided'Oracle LogMiner. Pour vous connecter à un PDB, accédez aux fichiers de journalisation à l'aide deBinary Reader.

• Lorsque vous utilisez Binary Reader, AWS DMS présente les limitations suivantes :• Il ne prend pas en charge les clusters de tables.• Il ne prend en charge que les opérations SHRINK SPACE au niveau de la table. Ce niveau inclut la

table complète, les partitions et les sous-partitions.• Il ne prend pas en charge les modifications apportées aux tables organisées par index avec

compression de clé.• AWS DMS ne prend pas en charge le chiffrement transparent des données (TDE) lors de l'utilisation de

Binary Reader avec une source Amazon RDS Oracle.• AWS DMS ne prend pas en charge les connexions à une source Amazon RDS Oracle à l'aide d'un proxy

Oracle Automatic Storage Management (ASM).• AWS DMS ne prend pas en charge les colonnes virtuelles.• AWS DMS ne prend pas en charge le type de données ROWID ou les vues matérialisées basées sur une

colonne ROWID.

Version de l'API API Version 2016-01-01135

Page 143: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• AWS DMS ne charge pas et ne capture pas les tables temporaires globales.

Méthodes de chiffrement prises en charge pour l'utilisationd'Oracle comme source pour AWS DMSDans le tableau suivant, vous trouverez les méthodes de chiffrement transparent des données (TDE) prisesen charge par AWS DMS lors de l'utilisation d'une base de données source Oracle.

Méthode d'accès aux journaux dejournalisation

Espace disque logique TDE Colonne TDE

Oracle LogMiner Oui Oui

Binary Reader Oui Oui (versions AWS DMS 3.x etultérieures)

Depuis la version 3.x, AWS DMS prend en charge Oracle TDE (sur la colonne et sur l'espace disquelogique) lors de l'utilisation de Binary Reader. Partagez les clés de chiffrement pertinentes avec AWS DMSdans le cadre de la valeur du champ Mot de passe spécifiée pour le point de terminaison source Oracle.Pour de plus amples informations, veuillez consulter les paragraphes suivants.

Pour spécifier la ou les clés de chiffrement correctes utilisées pour le chiffrement des espaces de table TDEou le chiffrement des colonnes TDE, recherchez les entrées pertinentes dans Oracle Wallet qui contient laou les clés de chiffrement. Après avoir trouvé la ou les entrées pertinentes, copiez chaque entrée et sesvaleurs, puis collez chaque entrée dans le champ Noms et chaque valeur dans le champ Valeurs. Séparezplusieurs noms et valeurs d'entrée dans les champs respectifs par des virgules.

Pour copier et coller plusieurs valeurs, copiez chaque entrée dans un éditeur de texte tel que Notepad++en veillant à séparer les valeurs par une virgule. Copiez la chaîne contenant les valeurs séparées par desvirgules de l'éditeur de texte et collez-la dans le champ Valeurs. Pour copier et coller plusieurs entrées,vous n'avez pas besoin d'utiliser un éditeur de texte intermédiaire. Au lieu de cela, vous pouvez coller lesentrées directement dans le champ Noms, puis séparer chaque entrée par une virgule.

Pour obtenir des entrées Oracle Wallet, procédez comme suit :

• Si le paramètre ENCRYPTION_WALLET_LOCATION est défini dans le fichier sqlnet.ora, utilisez leportefeuille du répertoire défini par ce paramètre.

• Si le paramètre WALLET_LOCATION est défini dans le fichier sqlnet.ora, utilisez le portefeuille durépertoire défini par ce paramètre.

• Dans d'autres cas, utilisez le portefeuille dans l'emplacement de base de données par défaut.

Note

Dans tous les cas, le nom du portefeuille doit être ewallet.p12.• Utilisez l'option -list de l'utilitaire Oracle mkstore pour déterminer le ou les noms d'entréeORACLE.SECURITY.DB/TS.ENCRYPTION.SUFFIX, comme suit.

mkstore –wrl full-wallet-name -list

• Si vous savez quelles entrées sont utilisées pour chiffrer les fichiers de journalisation, sélectionnezd'abord le ou les noms de l'entrée. Utilisez ensuite l'option -viewEntry de l'utilitaire mkstore Oraclepour déterminer chaque valeur d'entrée, comme suit.

mkstore –wrl full-wallet-name -viewEntry entry-name

Version de l'API API Version 2016-01-01136

Page 144: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

• Si vous ne savez pas quelle entrée est utilisée pour chiffrer les fichiers de journalisation, vous pouvezsélectionner plusieurs entrées DB ou TS et déterminer leurs valeurs comme décrit précédemment.Ensuite, copiez et collez les noms et les valeurs d'entrée dans les champs Noms et Valeurs commedécrit précédemment. Si les entrées spécifiées ne sont pas correctes, la tâche échoue et le messaged'erreur contient le nom d'entrée correct.

• Si l'administrateur de base de données modifie l'entrée pendant l'exécution de la tâche, la tâche échoueet le message d'erreur contient le nouveau nom de l'entrée. Ajoutez la nouvelle entrée (nom et valeur)aux entrées déjà spécifiées, puis reprenez la tâche. Pour de plus amples informations sur l'ajout d'unenouvelle entrée pour reprendre la tâche, reportez-vous à la procédure suivante.

Pour ajouter une nouvelle entrée pour reprendre une tâche

1. Obtenez le nom d'utilisateur et le mot de passe d'Oracle Wallet pour TDE utilisés pour la table en coursde migration :

a. Dans la base de données Oracle, exécutez la requête suivante pour renvoyer le OBJECT_ID pourun propriétaire et un nom de table donnés.

SELECT OBJECT_ID FROM ALL_OBJECTS WHERE OWNER='table-owner' ANDOBJECT_NAME='table-name' AND OBJECT_TYPE='TABLE';

b. Utilisez la valeur OBJECT_ID récupérée dans la requête suivante pour renvoyer la clé principaleappropriée.

SELECT MKEYID FROM SYS.ENC$ WHERE OBJ#=OBJECT_ID;

c. Sélectionnez la valeur de clé dans Oracle Wallet comme suit.

mkstore –wrl full-wallet-name -viewEntry entry-name

2. Copiez l'entrée de clé maître dans le champ Noms et sa valeur dans le champ Valeurs.3. Après avoir récupéré ces détails, spécifiez le nom de la clé principale sur le point de terminaison

source Oracle à l'aide de l'attribut de connexion securityDbEncryptionName supplémentaire. Parexemple, vous pouvez définir le nom de la clé principale sur la valeur suivante.

securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.Adg8m2dhkU/0v/m5QUaaNJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Indiquez le mot de passe associé à cette clé principale dans le champ Mot de passe du pointde terminaison source Oracle. Utilisez l'ordre suivant pour formater les valeurs de mot de passerespectives séparées par des virgules. Ici, TDE_Password est le mot de passe associé à la cléprincipale.

Oracle_db_password,ASM_Password,TDE_Password

Spécifiez les valeurs de mot de passe dans cet ordre quelle que soit la configuration de votre base dedonnées Oracle. Par exemple, si vous utilisez TDE mais que votre base de données Oracle n'utilisepas ASM, spécifiez les valeurs de mot de passe pertinentes dans l'ordre suivant séparé par desvirgules.

Oracle_db_password,,TDE_Password

Version de l'API API Version 2016-01-01137

Page 145: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Méthodes de compression prises en charge pour utiliser Oraclecomme source pour AWS DMSDans le tableau suivant, vous pouvez trouver les méthodes de compression prises en charge par AWSDMS lors de l'utilisation d'une base de données source Oracle. Comme le montre le tableau, la priseen charge de la compression dépend à la fois de la version de votre base de données Oracle et de laconfiguration de DMS pour utiliser Oracle LogMiner afin d'accéder aux journaux redo.

Version Base OLTP HCC (à partird'Oracle 11g R2)

Autres

Oracle 10 Non S/O S/O Non

Oracle 11 – OracleLogMiner

Oui Oui Oui Oui – Touteméthode decompression priseen charge parOracle LogMiner.

Oracle 11 – BinaryReader

Oui Oui Oui – Voir la noteci-dessous.

Oui

Note

Lorsque le point de terminaison source Oracle est configuré pour utiliser Binary Reader, le niveauQuery Low de la méthode de compression HCC est pris en charge uniquement pour les tâches àpleine charge.

Réplication de tables imbriquées à l'aide d'Oracle en tant quesource pour AWS DMSÀ partir de la version 3.3.1, AWS DMS prend en charge la réplication des tables Oracle contenant descolonnes imbriquées ou des types définis. Pour activer cette fonctionnalité, ajoutez le paramètre d'attributde connexion supplémentaire suivant au point de terminaison source Oracle.

allowSelectNestedTables=true;

AWS DMS crée les tables cibles à partir de tables imbriquées Oracle en tant que tables parent et enfantnormales sur la cible sans contrainte unique. Pour accéder aux données correctes sur la cible, joignezles tables parent et enfant. Pour ce faire, créez d'abord manuellement un index non unique sur la colonneNESTED_TABLE_ID de la table enfant cible. Vous pouvez ensuite utiliser la colonne NESTED_TABLE_IDdans la clause de jointure ON avec la colonne parent qui correspond au nom de la table enfant. En outre, lacréation d'un tel index améliore les performances lorsque les données de la table enfant cible sont mises àjour ou supprimées par AWS DMS. Pour obtenir un exemple, consultez Exemple de jointure pour les tablesparent et enfant sur la cible (p. 139).

Nous vous recommandons de configurer la tâche pour qu'elle s'arrête une fois la charge complèteterminée. Ensuite, créez ces index non uniques pour toutes les tables enfants répliquées sur la cible etreprenez la tâche.

Si une table imbriquée capturée est ajoutée à une table parent existante (capturée ou non capturée), AWSDMS la gère correctement. Toutefois, l'index non unique de la table cible correspondante n'est pas créé.Dans ce cas, si la table enfant cible devient extrêmement volumineuse, les performances peuvent êtreaffectées. Dans ce cas, nous vous recommandons d'arrêter la tâche, de créer l'index, puis de reprendre latâche.

Version de l'API API Version 2016-01-01138

Page 146: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Une fois les tables imbriquées répliquées vers la cible, faites en sorte que l'administrateur de base dedonnées exécute une jointure sur les tables parent et enfant correspondantes pour aplatir les données.

Conditions préalables à la réplication des tables imbriquées Oracle en tant quesourceAssurez-vous de répliquer les tables parentes pour toutes les tables imbriquées répliquées. Incluez lestables parentes (les tables contenant la colonne de table imbriquée) et les tables enfant (c'est-à-direimbriquées) dans les mappages de table AWS DMS.

Types de tables imbriquées Oracle pris en charge en tant que sourceAWS DMS prend en charge les types de tables imbriquées Oracle suivants en tant que source :

• Type de données• Objet défini par l'utilisateur

Limitations de la prise en charge par AWS DMS des tables imbriquées Oracle entant que sourceAWS DMS présente les limitations suivantes dans sa prise en charge des tables imbriquées Oracle en tantque source :

• AWS DMS prend en charge un seul niveau d'imbrication de table.• Le mappage des tables de AWS DMS ne vérifie pas que les tables parent et enfant ou les tables sont

sélectionnées pour la réplication. Autrement dit, il est possible de sélectionner une table parent sansenfant ou une table enfant sans parent.

Comment AWS DMS réplique les tables imbriquées Oracle en tant que sourceAWS DMS réplique les tables parent et imbriquées vers la cible comme suit :

• AWS DMS crée la table parent identique à la source. Il définit ensuite la colonne imbriquée dans leparent comme RAW(16) et inclut une référence aux tables imbriquées du parent dans sa colonneNESTED_TABLE_ID.

• AWS DMS crée la table enfant identique à la source imbriquée, mais avec une colonne supplémentairenommée NESTED_TABLE_ID. Cette colonne a le même type et la même valeur que la colonneimbriquée parent correspondante et a la même signification.

Exemple de jointure pour les tables parent et enfant sur la ciblePour aplatir la table parent, exécutez une jointure entre les tables parent et enfant, comme illustré dansl'exemple suivant :

1. Créez la table Type.

CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);

2. Créez la table parent avec une colonne de type NESTED_TEST_T, tel que défini précédemment.

CREATE TABLE NESTED_PARENT_TEST (ID NUMBER(10,0) PRIMARY KEY, NAME NESTED_TEST_T) NESTED TABLE NAME STORE AS NAME_KEY;

3. Aplatissez la table NESTED_PARENT_TEST à l'aide d'une jointure avec la table NAME_KEY enfant oùCHILD.NESTED_TABLE_ID correspond à PARENT.NAME.

Version de l'API API Version 2016-01-01139

Page 147: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

SELECT … FROM NESTED_PARENT_TEST PARENT, NAME_KEY CHILD WHERE CHILD.NESTED_TABLE_ID = PARENT.NAME;

Attributs de connexion supplémentaires lors de l'utilisationd'Oracle comme source pour AWS DMSVous pouvez utiliser des attributs de connexion supplémentaires pour configurer votre source Oracle.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison source. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire (par exemple, oneSetting;thenAnother).

Le tableau suivant montre les attributs de connexion supplémentaires que vous pouvez utiliser pourconfigurer une base de données Oracle comme source pour AWS DMS.

Nom Description

addSupplementalLogging Définissez cet attribut pour configurer la journalisationsupplémentaire au niveau de la table pour la base de donnéesOracle. Cet attribut active la journalisation supplémentairePRIMARY KEY sur toutes les tables sélectionnées pour unetâche de migration.

Valeur par défaut : N

Valeurs valides : Y/N

Exemple: addSupplementalLogging=Y;

Note

Si vous utilisez cette option, vous devez encoreactiver la journalisation supplémentaire au niveau dela base de données, comme indiqué précédemment.

additionalArchivedLogDestId Définissez cet attribut avec archivedLogDestId dans uneconfiguration principale/de secours. Cet attribut est utile encas de basculement. Dans ce cas, AWS DMS a besoin desavoir à partir de quelle destination il peut obtenir les journauxredo d'archivage pour lire les modifications. Ce besoin sejustifie par le fait que l'instance primaire précédente estdésormais une instance de secours après le basculement.

allowSelectNestedTables Définissez cet attribut sur true pour activer la réplication destables Oracle contenant des colonnes imbriquées ou destypes définis. Pour plus d'informations, consultez Réplicationde tables imbriquées à l'aide d'Oracle en tant que source pourAWS DMS (p. 138).

Valeur par défaut : false

Valeurs valides : true/false

Exemple: allowSelectNestedTables=true;

useLogminerReader Définissez cet attribut sur Y pour capturer les donnéesmodifiées à l'aide de l'utilitaire LogMiner (par défaut).

Version de l'API API Version 2016-01-01140

Page 148: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom DescriptionDéfinissez cette option sur N si vous voulez qu'AWS DMSaccède aux journaux redo en tant que fichier binaire. Lorsquevous définissez cette option sur N, vous devez égalementajouter le paramètre useBfile=Y. Pour plus d'informationssur ce paramètre et l'utilisation d'Oracle Automatic StorageManagement (ASM), consultez Utilisation d'Oracle LogMinerou d'AWS DMS Binary Reader pour la capture des donnéesmodifiées (CDC) (p. 123).

Valeur par défaut : Y

Valeurs valides : Y/N

Exemple: useLogminerReader=N;useBfile=Y;

useBfile Définissez cet attribut sur Y pour capturer les donnéesmodifiées à l'aide de l'utilitaire Binary Reader. DéfinissezuseLogminerReader sur N pour définir cet attribut sur Y.Pour utiliser Binary Reader avec un Amazon RDS pour Oracleen tant que source, définissez des attributs supplémentaires.Pour plus d'informations sur ce paramètre et l'utilisationd'Oracle Automatic Storage Management (ASM), consultezUtilisation d'Oracle LogMiner ou d'AWS DMS Binary Readerpour la capture des données modifiées (CDC) (p. 123).

Valeur par défaut : N

Valeurs valides : Y/N

Exemple: useLogminerReader=N;useBfile=Y;

parallelASMReadThreads Définissez cet attribut pour modifier le nombre de threadsconfigurés par DMS pour effectuer un chargement de capturede données modifiées (CDC) à l'aide d'Oracle AutomaticStorage Management (ASM). Vous pouvez spécifier unnombre entier compris entre 2 (par défaut) et 8 (maximum).Utilisez cet attribut avec l'attribut readAheadBlocks. Pourplus d'informations, consultez Configuration de la capture deschangements de données (CDC) pour une source AmazonRDS Oracle pour AWS DMS (p. 133).

Valeur par défaut : 2

Valeurs valides : un nombre entier compris entre 2 à 8

Exemple:parallelASMReadThreads=6;readAheadBlocks=150000;

Version de l'API API Version 2016-01-01141

Page 149: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom Description

readAheadBlocks Définissez cet attribut pour modifier le nombre de blocsde lecture anticipée configurés par DMS pour effectuerun chargement de capture de données modifiées (CDC)à l'aide d'Oracle Automatic Storage Management (ASM).Vous pouvez spécifier un nombre entier compris entre 1000(valeur par défaut) et 200 000 (maximum). Utilisez cet attributavec l'attribut readAheadBlocks. Pour plus d'informations,consultez Configuration de la capture des changements dedonnées (CDC) pour une source Amazon RDS Oracle pourAWS DMS (p. 133).

Valeur par défaut : 1000

Valeurs valides : Un nombre entier compris entre 1000 à200 000

Exemple:parallelASMReadThreads=6;readAheadBlocks=150000;

accessAlternateDirectly Définissez cet attribut sur false pour utiliser Binary Readerafin de capturer les données modifiées pour un AmazonRDS pour Oracle en tant que source. Cette opération indiqueà l'instance DMS qu'elle ne doit pas accéder aux journauxredo via un remplacement de préfixe de chemin spécifié enutilisant un accès direct aux fichiers. Pour plus d'informations,consultez Configuration de la capture des changements dedonnées (CDC) pour une source Amazon RDS Oracle pourAWS DMS (p. 133).

Valeur par défaut : true

Valeurs valides : true/false

Exemple:useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;

useAlternateFolderForOnline Définissez cet attribut sur true pour utiliser Binary Readerafin de capturer les données modifiées pour un Amazon RDSpour Oracle en tant que source. Cette opération indique àl'instance DMS qu'elle doit utiliser un remplacement de préfixespécifié pour accéder à tous les journaux redo en ligne. Pourplus d'informations, consultez Configuration de la capture deschangements de données (CDC) pour une source AmazonRDS Oracle pour AWS DMS (p. 133).

Valeur par défaut : false

Valeurs valides : true/false

Exemple:useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true;

Version de l'API API Version 2016-01-01142

Page 150: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom Description

oraclePathPrefix Définissez cet attribut de chaîne sur la valeur requise pourutiliser Binary Reader pour capturer les données modifiéespour un Amazon RDS pour Oracle en tant que source.Cette valeur spécifie la racine Oracle utilisée par défautpour accéder aux journaux redo. Pour plus d'informations,consultez Configuration de la capture des changements dedonnées (CDC) pour une source Amazon RDS Oracle pourAWS DMS (p. 133).

Valeur par défaut : None

Valeur valide : /rdsdbdata/db/ORCL_A/

Exemple:useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true;oraclePathPrefix=/rdsdbdata/db/ORCL_A/;

usePathPrefix Définissez cet attribut de chaîne sur la valeur requise pourutiliser Binary Reader pour capturer les données modifiéespour un Amazon RDS pour Oracle en tant que source. Cettevaleur spécifie le préfixe de chemin utilisé pour remplacer laracine Oracle utilisée par défaut pour accéder aux journauxredo. Pour plus d'informations, consultez Configuration de lacapture des changements de données (CDC) pour une sourceAmazon RDS Oracle pour AWS DMS (p. 133).

Valeur par défaut : None

Valeur valide : /rdsdbdata/log/

Exemple:useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true;oraclePathPrefix=/rdsdbdata/db/ORCL_A/; usePathPrefix=/rdsdbdata/log/;

replacePathPrefix Définissez cet attribut sur true pour utiliser Binary Reader afinde capturer les données modifiées pour un Amazon RDS pourOracle en tant que source. Ce paramètre indique à l'instanceDMS qu'elle doit remplacer la racine Oracle par défaut parle paramètre usePathPrefix pour accéder aux journauxredo. Pour plus d'informations, consultez Configuration de lacapture des changements de données (CDC) pour une sourceAmazon RDS Oracle pour AWS DMS (p. 133).

Valeur par défaut : false

Valeurs valides : true/false

Exemple:useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true;oraclePathPrefix=/rdsdbdata/db/ORCL_A/; usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;

Version de l'API API Version 2016-01-01143

Page 151: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom Description

retryInterval Spécifie le nombre de secondes que le système attend avantde renvoyer une requête.

Valeur par défaut : 5

Valeurs valides : nombres à partir de 1

Exemple: retryInterval=6;

archivedLogDestId Spécifie la destination des journaux redo archivés. La valeurdoit être la même que le nombre DEST_ID dans le tableau$archived_log. Lorsque vous utilisez plusieurs destinations dejournaux (DEST_ID), nous vous recommandons de spécifierun identifiant d'emplacement de journaux redo archivés.Cela améliore les performances en garantissant l'accès auxjournaux appropriés dès le départ.

Valeur par défaut : 0

Valeurs valides : nombre

Exemple: archivedLogDestId=1;

archivedLogsOnly Lorsque ce champ est défini sur Y, AWS DMS accèdeuniquement aux journaux redo archivés. Si les journaux redoarchivés sont stockés uniquement sur Oracle ASM, le compted'utilisateur AWS DMS doit disposer des privilèges ASM.

Valeur par défaut : N

Valeurs valides : Y/N

Exemple: archivedLogsOnly=Y;

numberDataTypeScale Spécifie l'échelle de nombres. Vous pouvez sélectionnerune échelle jusqu'à 38 ou vous pouvez sélectionner FLOAT.Par défaut, le type de données NUMBER est converti enprécision 38, échelle 10.

Valeur par défaut : 10

Valeurs valides : -1 à 38 (-1 pour FLOAT)

Exemple: numberDataTypeScale=12

afterConnectScript Spécifie un script à exécuter immédiatement après laconnexion de AWS DMS au point de terminaison.

Valeurs valides : une instruction SQL séparée par un point-virgule. Toutes les instructions SQL ne sont pas prises encharge.

Exemple: afterConnectScript=ALTER SESSION SETCURRENT_SCHEMA = system;

Version de l'API API Version 2016-01-01144

Page 152: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom Description

failTasksOnLobTruncation Lorsque la valeur true est définie, cet attribut provoquel'échec d'une tâche si la taille réelle d'une colonne LOB estsupérieure à la valeur LobMaxSize spécifiée.

Si une tâche est définie sur le mode LOB limité et quecette option a pour valeur true, la tâche échoue au lieu detronquer les données LOB.

Valeur par défaut : false

Valeurs valides : booléen

Exemple: failTasksOnLobTruncation=true;

readTableSpaceName Lorsque la valeur true est définie, cet attribut prend encharge la réplication d'espace de table.

Valeur par défaut : false

Valeurs valides : booléen

Exemple: readTableSpaceName=true;

standbyDelayTime Utilisez cet attribut pour spécifier une durée en minutes pourle retard de synchronisation de l'instance de secours.

Avec AWS DMS version 2.3.0 et ultérieures, vous pouvezcréer une tâche CDC Oracle qui utilise une instance desecours Active Data Guard en tant que source pour laréplication des modifications en cours. Cela vous permetde ne plus avoir besoin de vous connecter à une base dedonnées active pouvant être en production.

Valeur par défaut : 0

Valeurs valides : nombre

Exemple: standbyDelayTime=1;

securityDbEncryptionName Spécifie le nom d'une clé utilisée pour le chiffrementtransparent des données (TDE) des colonnes et de l'espacedisque logique dans la base de données source Oracle. Pourde plus amples informations sur la définition de cet attributet de son mot de passe associé sur le point de terminaisonsource Oracle, veuillez consulter Méthodes de chiffrementprises en charge pour l'utilisation d'Oracle comme source pourAWS DMS (p. 136).

Valeur par défaut : ""

Valeurs valides : String

securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.Adg8m2dhkU/0v/m5QUaaNJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Version de l'API API Version 2016-01-01145

Page 153: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Nom Description

spatialSdo2GeoJsonFunctionName Pour les sources Oracle version 12.1 ou antérieures migrantvers des cibles PostgreSQL, utilisez cet attribut pour convertirSDO_GEOMETRY au format GEOJSON.

Par défaut, AWS DMS appelle la fonction SDO2GEOJSONpersonnalisée qui doit être présente et accessibleà l'utilisateur AWS DMS. Vous pouvez égalementcréer votre propre fonction personnalisée quiimite le fonctionnement de SDOGEOJSON et définirspatialSdo2GeoJsonFunctionName pour l'appeler à laplace.

Valeur par défaut : SDO2GEOJSON

Valeurs valides : String

Exemple:spatialSdo2GeoJsonFunctionName=myCustomSDO2GEOJSONFunction;

Types de données sources pour OracleLe point de terminaison Oracle pour AWS DMS prend en charge la plupart des types de données Oracle.Le tableau suivant présente les types de données sources Oracle qui sont pris en charge lorsque vousutilisez AWS DMS et le mappage par défaut des types de données AWS DMS.

Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection concernant le point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Type de données Oracle Type de données AWS DMS

BINARY_FLOAT REAL4

BINARY_DOUBLE REAL8

BINARY BYTES

FLOAT (P) Si la précision est inférieur ou égale à 24, utilisez REAL4.

Si la précision est supérieure à 24, utilisez REAL8.

NUMBER (P,S) Lorsque l'échelle est inférieur à 0, utilisez REAL8

NUMBER selon la propriétéde « Expose number as »dans les paramètres de basede données source d'Oracle.

Lorsque l'échelle est 0 :

• Et que la précision est 0, utilisez REAL8.• Et que la précision est supérieure ou égale à 2, utilisez INT1.• Et que la précision est supérieure à 2 et inférieure ou égale à 4,

utilisez INT2.• Et que la précision est supérieure à 4 et inférieure ou égale à 9,

utilisez INT4.• Et que la précision est supérieure à 9, utilisez NUMERIC.

Version de l'API API Version 2016-01-01146

Page 154: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Type de données Oracle Type de données AWS DMS• Et que la précision est supérieure ou égale à l'échelle, utilisez

NUMERIC.

Dans tous les autres cas, utilisez REAL8.

DATE DATETIME

INTERVAL_YEAR TOMONTH

STRING (avec indication d'intervalle year_to_month)

INTERVAL_DAY TOSECOND

STRING (avec indication d'intervalle day_to_second)

TIME DATETIME

TIMESTAMP DATETIME

TIMESTAMP WITH TIMEZONE

STRING (avec indication timestamp_with_timezone)

TIMESTAMP WITH LOCALTIME ZONE

STRING (avec indication timestamp_with_local_timezone)

CHAR STRING

VARCHAR2 STRING

NCHAR WSTRING

NVARCHAR2 WSTRING

RAW BYTES

REAL REAL8

BLOB BLOB

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devezactiver l'utilisation des types de données LOB pour une tâche spécifique.AWS DMS prend en charge les types de données BLOB uniquementdans les tables qui contiennent une clé primaire.

CLOB CLOB

Pour pouvoir utiliser ce type de données avec AWS DMS, vousdevez activer l'utilisation des types de données CLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), AWSDMS prend en charge les types de données CLOB uniquement dans lestables qui comprennent une clé primaire.

NCLOB NCLOB

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devezactiver l'utilisation des types de données NCLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), AWSDMS prend en charge les types de données NCLOB uniquement dansles tables qui contiennent une clé primaire.

Version de l'API API Version 2016-01-01147

Page 155: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme source

Type de données Oracle Type de données AWS DMS

LONG CLOB

Le type de données LONG n'est pas pris en charge en moded'application par lots optimisée (mode CDC TurboStream). Pourpouvoir utiliser ce type de données avec AWS DMS, vous devez activerl'utilisation des types de données LOB pour une tâche spécifique. Aucours de la capture des données modifiées (CDC), AWS DMS prenden charge les types de données LOB uniquement dans les tables quicontiennent une clé primaire.

LONG RAW BLOB

Le type de données LONG RAW n'est pas pris en charge en moded'application par lots optimisée (mode CDC TurboStream). Pourpouvoir utiliser ce type de données avec AWS DMS, vous devez activerl'utilisation des types de données LOB pour une tâche spécifique. Aucours de la capture des données modifiées (CDC), AWS DMS prenden charge les types de données LOB uniquement dans les tables quicontiennent une clé primaire.

XMLTYPE CLOB

La prise en charge du type de données XMLTYPE nécessite le clientOracle complet (et non Oracle Instant Client). Lorsque la colonne cibleest un type de données CLOB, le mode LOB complet et le mode LOBlimité sont pris en charge (en fonction de la cible).

SDO_GEOMETRY BLOB (pour une migration Oracle vers Oracle)

CLOB (pour une migration Oracle vers PostgreSQL)

Les tables Oracle utilisées comme source avec des colonnes des types de données suivants ne sont pasprises en charge et ne peuvent pas être répliquées. La réplication des colonnes avec ces types de donnéesa pour conséquence une colonne nulle.

• BFILE• ROWID• REF• UROWID• Types de données définis par l'utilisateur• ANYDATA

Note

Les colonnes virtuelles ne sont pas prises en charge.

Migration de types de données spatiales Oracle

Les données spatiales identifient les informations de géométrie d'un objet ou d'un emplacement dansl'espace. Dans une base de données Oracle, la description géométrique d'un objet spatial est stockée dansun objet de type SDO_GEOMETRY. Dans cet objet, la description géométrique est stockée dans une seuleligne dans une seule colonne d'une table définie par l'utilisateur.

Version de l'API API Version 2016-01-01148

Page 156: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

AWS DMS prend en charge la migration du type Oracle SDO_GEOMETRY d'une source Oracle vers unecible Oracle ou PostgreSQL.

Lorsque vous migrez des types de données spatiales Oracle à l'aide de AWS DMS, tenez compte desconsidérations suivantes :

• Lors de la migration vers une cible Oracle, assurez-vous de transférer manuellement les entréesUSER_SDO_GEOM_METADATA qui incluent des informations de type.

• Lors de la migration d'un point de terminaison source Oracle vers un point de terminaison ciblePostgreSQL, AWS DMS crée des colonnes cibles. Ces colonnes contiennent des informations sur lagéométrie et le type de géographie par défaut avec une dimension 2D et un identificateur de référencespatiale (SRID) égal à zéro (0). Par exemple : <GEOMETRY, 2, 0>.

• Pour les sources Oracle version 12.1 ou antérieures qui migrent vers des cibles PostgreSQL,convertissez les objets SDO_GEOMETRY au format GEOJSON à l'aide de la fonction SDO2GEOJSON oude l'attribut de connexion spatialSdo2GeoJsonFunctionName supplémentaire. Pour de plus amplesinformations, veuillez consulter Attributs de connexion supplémentaires lors de l'utilisation d'Oraclecomme source pour AWS DMS (p. 140).

Utilisation d'une base de données Microsoft SQLServer comme source pour AWS DMSMigrez les données d'une ou de plusieurs bases de données Microsoft SQL Server à l'aide de AWS DMS.Avec une base de données SQL Server comme source, vous pouvez migrer les données vers une autrebase de données SQL Server, ou une des autres bases de données prises en charge par AWS DMS.

AWS DMS prend en charge, comme source, les bases de données sur site Microsoft SQL Server 2005,2008, 2008R2, 2012, 2014, 2016, 2017 et 2019, ainsi que les bases de données d'instance Amazon EC2.Les éditions Enterprise, Standard, Workgroup, Developer et Web sont prises en charge. La réplicationcontinue (CDC) est prise en charge pour toutes les versions d'Enterprise Edition et Standard Editionversion 2016 SP1 et versions ultérieures.

AWS DMS prend en charge, comme source, les bases de données d'instance de base de donnéesAmazon RDS pour SQL Server 2008R2, 2012, 2014, 2016, 2017 et 2019. Les éditions Enterprise etStandard sont prises en charge. La réplication continue (CDC) est prise en charge pour toutes les versionsd'Enterprise Edition et Standard Edition version 2016 SP1 et versions ultérieures.

Note

La prise en charge de Microsoft SQL Server version 2019 comme source est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

La base de données source SQL Server peut être installée sur n'importe quel ordinateur dans votre réseau.Un compte SQL Server avec les privilèges d'accès appropriés à la base de données source pour le type detâche que vous avez choisi est également nécessaire pour une utilisation avec AWS DMS.

AWS DMS prend en charge la migration de données depuis des instances nommées de SQL Server. Vouspouvez utiliser la notation suivante dans le nom du serveur lorsque vous créez le point de terminaisonsource.

IPAddress\InstanceName

Par exemple, voici un nom de serveur correct de point de terminaison source. Ici, la première partie du nomest l'adresse IP du serveur et la seconde partie est le nom de l'instance SQL Server (dans cet exemple,SQLTest).

Version de l'API API Version 2016-01-01149

Page 157: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

10.0.0.25\SQLTest

En outre, obtenez le numéro de port que votre instance nommée de SQL Server écoute et utilisez-le pourconfigurer votre point de terminaison source AWS DMS.

Note

Le port 1433 est le port par défaut pour Microsoft SQL Server. Mais, les ports dynamiques quichangent chaque fois que SQL Server est démarré, et les numéros de port statiques spécifiquesutilisés pour se connecter à SQL Server via un pare-feu sont également souvent utilisés. Ainsi,connaître le numéro de port réel de votre instance nommée de SQL Server lorsque vous créez lepoint de terminaison source AWS DMS.

Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison SQL Server etl'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaison SQLServer, consultez Utilisation du protocole SSL avec AWS Database Migration Service (p. 81).

Pour que les modifications provenant d'une base de données SQL Server source soient capturées, la basede données doit être configurée pour des sauvegardes complètes et faire partie d'une édition Enterprise,Developer ou Standard.

Pour plus de détails sur l'utilisation de bases de données SQL Server sources et d'AWS DMS, consultezles ressources suivantes.

Rubriques• Limites sur l'utilisation de SQL Server comme source pour AWS DMS (p. 150)• Utilisation de la réplication continue (CDC) à partir d'une source SQL Server (p. 151)• Méthodes de compression prises en charge (p. 156)• Utilisation des groupes de disponibilité de SQL Server AlwaysOn (p. 156)• Configuration d'une base de données SQL Server comme source de réplication pour AWS

DMS (p. 157)• Attributs de connexion supplémentaires lors de l'utilisation de SQL Server comme source pour AWS

DMS (p. 157)• Types de données sources pour SQL Server (p. 158)

Limites sur l'utilisation de SQL Server comme source pour AWSDMSLes limites suivantes s'appliquent lors de l'utilisation d'une base de données SQL Server comme sourcepour AWS DMS :

• Vous ne pouvez pas utiliser une base de données SQL Server comme source AWS DMS si le suivi desmodifications SQL Server est activé sur la base de données.

Note

Cette limitation ne s'applique plus dans les versions AWS DMS 3.3.1 et ultérieures.• La propriété d'identité d'une colonne n'est pas migrée vers une colonne de base de données cible.• Dans les versions du moteur AWS DMS antérieures à la version 2.4.x, les modifications apportées aux

lignes comptant plus de 8 000 octets d'informations, y compris les informations d'en-tête et de mappage,ne sont pas traitées correctement. Ce problème est lié aux limitations de taille du tampon TLOG de SQLServer. Pour éviter ce problème, utilisez la version la plus récente d'AWS DMS.

• Le point de terminaison SQL Server ne prend pas en charge l'utilisation de tables partiellement remplies.

Version de l'API API Version 2016-01-01150

Page 158: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

• L'authentification Windows n'est pas prise en charge.• Les modifications apportées aux champs calculés dans un serveur SQL Server ne sont pas répliquées.• Les tables temporelles ne sont pas prises en charge.• L'échange de partition SQL Server n'est pas pris en charge.• Un index organisé en cluster sur la source est créé en tant qu'index non organisé en cluster sur la cible.• Lorsque vous utilisez les utilitaires WRITETEXT et UPDATETEXT, AWS DMS ne capture pas les

événements appliqués sur la base de données source.• Le modèle de langage de manipulation de données (DML) suivant n'est pas pris en charge :

SELECT * INTO new_table FROM existing_table

• Lorsque vous utilisez SQL Server comme source, le chiffrement au niveau des colonnes n'est pas pris encharge.

• En raison d'un problème connu avec SQL Server 2008 et 2008 R2, AWS DMS ne prend pas en chargeles audits au niveau du serveur sur SQL Server 2008 ou SQL Server 2008 R2 en tant que source. Parexemple, l'exécution de la commande suivante entraîne l'échec d'AWS DMS.

USE [master]GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on)GO

• Les colonnes de géométrie ne sont pas prises en charge en mode lob complet si l’on utilise SQLServer en tant que source. Utilisez plutôt le mode lob limité ou définissez le paramètre de tâcheInlineLobMaxSize pour utiliser le mode lob en ligne.

Utilisation de la réplication continue (CDC) à partir d'une sourceSQL ServerVous pouvez utiliser la réplication continue (capture des données modifiées ou CDC) pour une base dedonnées SQL Server autogérée sur site ou sur Amazon EC2, ou une base de données gérée par Amazonsur Amazon RDS.

AWS DMS prend en charge la réplication en cours pour ces configurations SQL Server :

• Pour les instances SQL Server source qui sont sur site ou sur Amazon EC2, AWS DMS prend en chargela réplication continue pour SQL Server Enterprise Edition, Standard Edition version 2016 SP1 et versionultérieure, et Developer Edition.

• Pour les instances SQL Server sources qui s'exécutent sur Amazon RDS, AWS DMS prend en chargela réplication en cours pour SQL Server Enterprise via SQL Server 2016 SP1. Au-delà de cette version,AWS DMS prend en charge CDC pour les éditions SQL Server Enterprise et Standard.

Si vous voulez qu'AWS DMS configure automatiquement la réplication continue, le compte utilisateur AWSDMS que vous utilisez pour vous connecter à la base de données source doit posséder le rôle de serveurfixe sysadmin. Si vous ne souhaitez pas affecter le rôle sysadmin au compte utilisateur que vous utilisez,vous pouvez toujours utiliser la réplication continue. Pour ce faire, suivez la série d'étapes manuellesdécrites ci-après.

Les conditions suivantes s'appliquent précisément lorsque la réplication continue est utilisée avec une basede données SQL Server comme source pour AWS DMS :

Version de l'API API Version 2016-01-01151

Page 159: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

• SQL Server doit être configuré pour des sauvegardes complètes et vous devez effectuer une sauvegardeavant de commencer la réplication des données.

• Le modèle de récupération doit être défini sur Bulk logged ou Full.• La sauvegarde SQL Server sur plusieurs disques n'est pas prise en charge. Si la sauvegarde de la base

de données est définie pour être écrite dans plusieurs fichiers sur différents disques, AWS DMS ne peutpas lire les données et la tâche AWS DMS échoue.

• Pour les sources SQL Server autogérées, soyez conscient que les définitions de publication deréplication SQL Server pour la base de données source utilisée dans une tâche CDC DMS ne sont passupprimées lorsque vous supprimez une tâche. Un administrateur système SQL Server doit supprimerces définitions de SQL Server pour les sources autogérées.

• Lors de la capture des données modifiées (CDC), , AWS DMS doit rechercher des sauvegardes dujournal des transactions SQL Server pour lire les modifications. AWS DMS ne prend pas en chargel'utilisation des sauvegardes du journal des transactions SQL Server qui ont été créées à l'aide delogiciels de sauvegarde tiers.

• Pour les sources SQL Server autogérées, sachez que SQL Server ne capture pas les modifications surles tables nouvellement créées tant qu'elles n'ont pas été publiées. Lorsque des tables sont ajoutéesà une source SQL Server, AWS DMS gère la création de la publication. Toutefois, ce processus peutprendre plusieurs minutes. Les opérations réalisées sur les tables nouvellement créées pendant ce délaine sont pas capturées ni répliquées sur la cible.

• La capture de données modifiées AWS DMS requiert l'activation de la journalisation complète dansSQL Server. Pour activer la journalisation complète dans SQL Server, activez MS-REPLICATION ouCHANGE DATA CAPTURE (CDC).

• Vous ne pouvez pas réutiliser le journal des transactions (TLOG) SQL Server tant que les modificationsn'ont pas été traitées.

• Les opérations CDC ne sont pas prises en charge sur les tables de mémoire optimisée. Cette limites'applique à SQL Server 2014 (lorsque la fonction a été introduite pour la première fois) et aux versionsultérieures.

Capture de modifications de données pour SQL Server

Pour une source SQL Server autogéré, AWS DMS utilise ce qui suit :

• MS-Replication, pour capturer les modifications pour des tables avec clés primaires. Vous pouvezconfigurer automatiquement cette fonction en attribuant à l'utilisateur du point de terminaison AWS DMSdes privilèges sysadmin sur l'instance SQL Server source. Vous pouvez également suivre les étapesdécrites dans cette section pour préparer la source et utiliser un utilisateur non sysadmin pour le point determinaison AWS DMS.

• MS-CDC, pour capturer les modifications pour des tables sans clés primaires. MS-CDC doit être activéau niveau de la base de données et individuellement pour toutes les tables.

Pour une source SQL Server s'exécutant sur Amazon RDS, AWS DMS utilise MS-CDC pour capturer lesmodifications pour des tables, avec ou sans clés primaires. MS CDC doit être activé au niveau de la basede données et individuellement pour toutes les tables, en utilisant les procédures stockées spécifiques deAmazon RDS décrites dans cette section.

Il existe plusieurs manières d'utiliser une base de données SQL Server pour la réplication continue (CDC):

• Configurez la réplication continue en utilisant le rôle sysadmin. (Ceci s'applique uniquement aux sourcesSQL Server autogérées.)

• Configurez la réplication continue pour qu'elle n'utilise pas le rôle sysadmin. (Ceci s'applique uniquementaux sources SQL Server autogérées.)

• Configurez la réplication continue pour une instance de base de données Amazon RDS pour SQLServer.

Version de l'API API Version 2016-01-01152

Page 160: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Configuration de la réplication continue à l'aide du rôle sysadmin

Pour les tables avec clés primaires, AWS DMS peut configurer les artefacts nécessaires au niveau de lasource. Pour les tables sans clés primaires, vous devez configurer MS-CDC.

D'abord, activez MS-CDC pour la base de données en exécutant la commande suivante. Utilisez uncompte auquel le rôle sysadmin est affecté.

use [DBname]EXEC sys.sp_cdc_enable_db

Ensuite, activez MS-CDC pour chacune des tables sources en exécutant la commande suivante.

EXECUTE sys.sp_cdc_enable_table @source_schema = N'MySchema', @source_name =N'MyTable', @role_name = NULL;

Pour plus d'informations sur la configuration de MS-CDC pour des tables spécifiques, consultez ladocumentation SQL Server.

Configuration de la réplication continue sans affecter le rôle sysadmin

Vous pouvez configurer la réplication continue pour une source de base de données SQL Server quin'exige pas que le compte d'utilisateur dispose de privilèges sysadmin.

Note

Vous pouvez effectuer cette procédure pendant que la tâche DMS est en cours d'exécution. Si latâche DMS est arrêtée, vous pouvez effectuer cette procédure uniquement s'il n'y a pas de journalde transactions ou les sauvegardes de base de données en cours. Cela est dû au fait que SQLServer requiert le privilège SYSADMIN pour interroger les sauvegardes pour la position LSN.

Pour configurer une source de base de données SQL Server pour la réplication continue sansutiliser le rôle sysadmin

1. Créez un compte SQL Server avec une authentification par mot de passe en utilisant SQL ServerManagement Studio (SSMS). Dans cet exemple, nous utilisons un compte appelé dmstest.

2. Dans la section Mappages d'utilisateur de SSMS, choisissez les bases de données MSDB et MASTER(ce qui confère une autorisation publique) et affectez le rôle DB_OWNER pour la base de données quidoit utiliser la réplication continue.

3. Ouvrez le menu contextuel (clic droit) pour le nouveau compte, choisissez Sécurité et accordezexplicitement le privilège Connecter SQL.

4. Exécutez les commandes GRANT suivantes.

GRANT SELECT ON FN_DBLOG TO dmstest;GRANT VIEW SERVER STATE TO dmstest;use msdb;GRANT EXECUTE ON MSDB.DBO.SP_STOP_JOB TO dmstest;GRANT EXECUTE ON MSDB.DBO.SP_START_JOB TO dmstest;GRANT SELECT ON MSDB.DBO.BACKUPSET TO dmstest;GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO dmstest;GRANT SELECT ON MSDB.DBO.BACKUPFILE TO dmstest;

5. Dans SSMS, ouvrez le menu contextuel (clic droit) pour le dossier Replication, puis choisissezConfigurer la distribution. Suivez toutes les étapes par défaut et configurez cette instance SQL Serverpour la distribution. Une base de données de distribution est créée sous les bases de données.

6. Utilisez la procédure suivante pour créer une publication.

Version de l'API API Version 2016-01-01153

Page 161: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

7. Créez une nouvelle tâche AWS DMS avec SQL Server comme point de terminaison source en utilisantle compte d'utilisateur que vous avez créé.

Note

Les étapes de cette procédure s'appliquent uniquement aux tables avec clés primaires. Vousdevez quand même activer MS-CDC pour les tables sans clés primaires.

Création d'une publication SQL Server pour bénéficier de la réplication continue

Pour utiliser CDC avec SQL Server, vous devez créer une publication pour chaque table qui participe à laréplication en cours.

Pour créer une publication pour la réplication continue SQL Server

1. Connectez-vous à SSMS à l'aide du compte utilisateur SYSADMIN.2. Développez Réplication.3. Ouvrez le menu contextuel (clic droit) correspondant à Local Publications (Publications locales).4. Dans New Publication Wizard (Assistant Nouvelle publication), choisissez Suivant.5. Choisissez la base de données dans laquelle vous souhaitez créer la publication.6. Choisissez Transactional publication (Publication transactionnelle), puis sélectionnez Next (Suivant).7. Développez Tables et sélectionnez les tables avec PK (ainsi que les tables que vous voulez publier).

Choisissez Suivant.8. Choisissez Next (Suivant), puis Next (Suivant), car vous n'avez pas besoin de créer de filtre

d'instantané ou d'agent d'instantané.9. Choisissez Paramètres de sécurité et choisissez Run under the SQL Server Agent service account

(Exécuter sous le compte de service SQL Server Agent). Veillez à choisir By impersonating theprocess account (En empruntant l'identité du compte de processus) pour la connexion à l'éditeur.Choisissez OK.

10. Choisissez Suivant.11. Choisissez Create the publication (Créer la publication).12. Indiquez un nom de publication au format AR_PUBLICATION_000DBID.

Par exemple, vous pouvez nommer la publication AR_PUBLICATION_00018. Vous pouvez égalementutiliser la fonction DB_ID dans SQL Server. Pour plus d'informations sur la fonction DB_ID, consultez ladocumentation SQL Server.

Configuration de la réplication continue sur une instance de base de donnéesAmazon RDS pour SQL Server

Amazon RDS pour CDC Server prend en charge MS-CDC pour toutes les versions des éditions Enterprised'Amazon RDS pour SQL Server jusqu'à SQL Server 2016 SP1. Les éditions standard de SQL Server 2016SP1 et les versions ultérieures prennent en charge MS-CDC pour Amazon RDS pour SQL Server.

À la différence des sources SQL Server autogérées, Amazon RDS pour SQL Server ne prend pas encharge MS-Replication. Par conséquent, AWS DMS doit utiliser MS-CDC pour les tables avec ou sans clésprimaires.

Amazon RDS n'accorde pas de privilèges sysadmin pour la définition des artefacts de réplication qu'utiliseAWS DMS pour les modifications en cours dans une instance SQL Server source. Vous devez activerMS-CDC sur l'instance Amazon RDS en utilisant des privilèges d'utilisateur principal dans la procéduresuivante.

Version de l'API API Version 2016-01-01154

Page 162: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Pour activer MS-CDC sur une instance de base de données RDS pour SQL Server

1. Exécutez la requête suivante au niveau de la base de données.

exec msdb.dbo.rds_cdc_enable_db 'DB_name'

2. Pour chaque table disposant d'une clé primaire, exécutez la requête suivante afin d'activer MS-CDC.

exec sys.sp_cdc_enable_table@source_schema = N'schema_name',@source_name = N'table_name',@role_name = NULL,@supports_net_changes = 1GO

Pour chaque table disposant de clés uniques mais ne disposant pas de clé primaire, exécutez larequête suivante afin d'activer MS-CDC.

exec sys.sp_cdc_enable_table@source_schema = N'schema_name',@source_name = N'table_name',@index_name = N'unique_index_name'@role_name = NULL,@supports_net_changes = 1GO

Pour chaque table ne disposant pas de clé unique ni de clé primaire, exécutez la requête suivante afind'activer MS-CDC.

exec sys.sp_cdc_enable_table@source_schema = N'schema_name',@source_name = N'table_name',@role_name = NULLGO

3. Définissez la période de rétention pour rendre les modifications disponibles au niveau de la source enutilisant les commandes suivantes.

use dbnameEXEC sys.sp_cdc_change_job @job_type = 'capture' ,@pollinginterval = 3599exec sp_cdc_start_job 'capture'

Le paramètre @pollinginterval est mesuré en secondes avec une longueur maximale de 3599.Cela signifie que le journal des transactions conserve les modifications pendant 3599 secondes (prèsd'une heure) lorsque @pollinginterval = 3599. La procédure exec sp_cdc_start_job'capture' lance les paramètres.

Maintien de la période de rétention au cours d'une tâche de réplication AWS DMS

Si une tâche de réplication AWS DMS qui capture les modifications en cours sir votre source SQL Servers'arrête pendant plus d'une heure, procédez comme suit :

1. Arrêtez la tâche tronquant les journaux de transactions (TLogs) à l'aide de cette commande :

exec sp_cdc_stop_job 'capture'

Version de l'API API Version 2016-01-01155

Page 163: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

2. Accédez à votre tâche sur la console AWS DMS et reprenez-la.3. Ouvrez l'onglet Surveillance à partir de la console AWS DMS et vérifiez la métrique

CDCLatencySource.4. Une fois que la métrique CDCLatencySource est égale à 0 (zéro) et ne change plus, redémarrez le

travail tronquant les TLogs à l'aide de la commande suivante :

exec sp_cdc_start_job 'capture'

Note

N'oubliez pas de démarrer la tâche qui tronque les TLogs SQL Server, sinon le stockage surl'instance SQL Server risque de se remplir.

Méthodes de compression prises en chargeLe tableau suivant présente les méthodes de compression qu'AWS DMS prend en charge pour chaqueversion de SQL Server.

SQL Server Version Compression de ligne/page (auniveau de la partition)

Format de stockage vardecimal

2005 Non Non

2008 Oui Non

2012 Oui Non

2014 Oui Non

Note

La compression des colonnes peu remplies et de structure en colonnes n'est pas prise en charge.

Utilisation des groupes de disponibilité de SQL Server AlwaysOnLa fonction de groupes de disponibilité SQL Server est une solution haute disponibilité et de reprise aprèssinistre qui fournit une alternative de niveau d'entreprise à la mise en miroir de base de données.

Pour utiliser les groupes de disponibilité AlwaysOn comme source dans AWS DMS, procédez comme suit :

• Activer l'option de distribution sur toutes les instances de SQL Server dans vos réplicas de disponibilité.• Dans la console AWS DMS, ouvrez les paramètres de la base de données source SQL Server. Dans

Nom du serveur, spécifiez le nom DNS (Domain Name Service) ou l'adresse IP qui a été configuré(e)pour l'écouteur du groupe de disponibilité.

Lorsque vous démarrez une tâche AWS DMS pour la première fois, le démarrage peut prendre plus detemps que d'habitude. Cette lenteur est due au fait que la création des articles de la table est dupliqué parle serveur du groupe de disponibilité.

Note

Dans les versions AWS DMS 3.3.1 et ultérieures, vous pouvez migrer des modifications à partird'un seul réplica AlwaysOn.

Version de l'API API Version 2016-01-01156

Page 164: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Configuration d'une base de données SQL Server comme sourcede réplication pour AWS DMSVous pouvez configurer une base de données SQL Server comme source de réplication pour AWS DMS.Pour bénéficier d'une réplication la plus complète possible des modifications, nous vous conseillonsd'utiliser l'édition Enterprise, Standard ou Developer de SQL Server. L'une de ces versions est requise, carseules ces versions incluent MS-Replication (EE,SE) et MS-CDC (EE,DEV). La source SQL Server doitégalement être configurée pour les sauvegardes complètes. En outre, AWS DMS doit se connecter avecun utilisateur (une connexion à une instance SQL Server) disposant du rôle de serveur fixe sysadmin sur labase de données SQL Server à laquelle vous vous connectez.

Attributs de connexion supplémentaires lors de l'utilisation deSQL Server comme source pour AWS DMSVous pouvez utiliser des attributs de connexion supplémentaires pour configurer votre source SQL Server.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison source. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire (par exemple, oneSetting;thenAnother).

Le tableau suivant indique les attributs de connexion supplémentaires que vous pouvez utiliser avec SQLServer comme source :

Nom Description

safeguardPolicy Pour des performances optimales, AWS DMS tente decapturer toutes les modifications non lues dans le journal destransactions (TLOG) actif. Toutefois, il arrive parfois qu'enraison d'une troncature le TLOG actif ne contienne pas toutesles modifications non lues. Dans ce cas, AWS DMS accèdeau journal de sauvegarde afin de capturer les modificationsmanquantes. Afin de réduire la nécessité d'accéder au journalde sauvegarde, AWS DMS empêche la troncature en utilisantl'une des méthodes suivantes :

1. Démarrer des transactions dans la base de données : c'estla méthode par défaut. Lorsque cette méthode est utilisée,AWS DMS empêche la troncature de TLOG en imitant unetransaction dans la base de données. Tant qu'une transactionde ce type est ouverte, les modifications qui apparaissentaprès le démarrage de la transaction ne sont pas tronquées.Si vous avez besoin d'activer la réplication Microsoft dansvotre base de données, vous devez choisir cette méthode.

2. Utiliser exclusivement sp_repldone au sein d'uneseule tâche : Lorsque cette méthode est utilisée, AWSDMS lit les modifications, puis utilise sp_repldone pourmarquer les transactions TLOG comme étant prêtes pour latroncature. Bien que cette méthode n'implique aucune activitétransactionnelle, il est possible de l'utiliser uniquement lorsquela réplication Microsoft n'est pas en cours d'exécution. Enoutre, lorsque vous utilisez cette méthode, une seule tâcheAWS DMS peut accéder à la base de données à un momentdonné. Par conséquent, si vous avez besoin d'exécuter destâches AWS DMS en parallèle par rapport à la même base dedonnées, utilisez la méthode par défaut.

Version de l'API API Version 2016-01-01157

Page 165: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Nom DescriptionValeur par défaut :RELY_ON_SQL_SERVER_REPLICATION_AGENT

Valeurs valides : {EXCLUSIVE_AUTOMATIC_TRUNCATION,RELY_ON_SQL_SERVER_REPLICATION_AGENT}

Exemple:safeguardPolicy=RELY_ON_SQL_SERVER_REPLICATION_AGENT;

readBackupOnly Lorsque ce paramètre est défini sur Y, AWS DMS lituniquement les modifications à partir de sauvegardes dujournal des transactions et ne lit pas à partir du fichier journalde transactions actif pendant la réplication en cours. Définirce paramètre sur Y vous permet de contrôler la croissancedu fichier journal de transactions actives durant les tâches dechargement complet et de réplication continue. Toutefois, celapeut ajouter une latence source pour la réplication en cours.

Valeurs valides : N ou Y. La valeur par défaut est N.

Exemple: readBackupOnly=Y;

Types de données sources pour SQL ServerLa migration des données qui utilise SQL Server comme source pour AWS DMS prend en charge la plupartdes types de données SQL Server. Le tableau suivant présente les types de données sources SQL Serverqui sont pris en charge lorsque vous utilisez AWS DMS et le mappage par défaut des types de donnéesAWS DMS.

Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection concernant le point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Types de données SQL Server Types de données AWS DMS

BIGINT INT8

BIT BOOLEAN

DECIMAL NUMERIC

INT INT4

MONEY NUMERIC

NUMERIC (p,s) NUMERIC

SMALLINT INT2

SMALLMONEY NUMERIC

TINYINT UINT1

REAL REAL4

Version de l'API API Version 2016-01-01158

Page 166: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Types de données SQL Server Types de données AWS DMS

FLOAT REAL8

DATETIME DATETIME

DATETIME2 (SQL Server 2008 et versionsultérieures)

DATETIME

SMALLDATETIME DATETIME

DATE DATE

TIME TIME

DATETIMEOFFSET WSTRING

CHAR STRING

VARCHAR STRING

VARCHAR (max) CLOB

TEXT

Pour pouvoir utiliser ce type de données avecAWS DMS, vous devez activer l'utilisationdes types de données CLOB pour une tâchespécifique.

Pour les tables SQL Server, AWS DMS met à jourles colonnes LOB dans la cible, même pour lesinstructions UPDATE qui ne changent pas la valeurde la colonne LOB dans SQL Server.

Au cours de la capture des données modifiées(CDC), AWS DMS prend en charge les types dedonnées CLOB uniquement dans les tables quicontiennent une clé primaire.

NCHAR WSTRING

NVARCHAR (length) WSTRING

Version de l'API API Version 2016-01-01159

Page 167: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme source

Types de données SQL Server Types de données AWS DMS

NVARCHAR (max) NCLOB

NTEXT

Pour pouvoir utiliser ce type de données avecAWS DMS, vous devez activer l'utilisation destypes de données NCLOB pour une tâchespécifique.

Pour les tables SQL Server, AWS DMS met à jourles colonnes LOB dans la cible, même pour lesinstructions UPDATE qui ne changent pas la valeurde la colonne LOB dans SQL Server.

Au cours de la capture des données modifiées(CDC), AWS DMS prend en charge les types dedonnées CLOB uniquement dans les tables quicontiennent une clé primaire.

BINARY BYTES

VARBINARY BYTES

VARBINARY (max) BLOB

IMAGE

Pour les tables SQL Server, AWS DMS met à jourles colonnes LOB dans la cible, même pour lesinstructions UPDATE qui ne changent pas la valeurde la colonne LOB dans SQL Server.

Pour pouvoir utiliser ce type de données avecAWS DMS, vous devez activer l'utilisationdes types de données BLOB pour une tâchespécifique.

AWS DMS prend en charge les types de donnéesBLOB uniquement dans les tables qui contiennentune clé primaire.

TIMESTAMP BYTES

UNIQUEIDENTIFIER STRING

HIERARCHYID Utilisez HIERARCHYID lors de la réplication sur unpoint de terminaison cible SQL Server.

Utilisez WSTRING (250) lors de la réplication surtous les autres points de terminaison cibles.

Version de l'API API Version 2016-01-01160

Page 168: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Azure SQL Database comme source

Types de données SQL Server Types de données AWS DMS

XML NCLOB

Pour les tables SQL Server, AWS DMS met à jourles colonnes LOB dans la cible, même pour lesinstructions UPDATE qui ne changent pas la valeurde la colonne LOB dans SQL Server.

Pour pouvoir utiliser ce type de données avecAWS DMS, vous devez activer l'utilisation destypes de données NCLOB pour une tâchespécifique.

Au cours de la capture des données modifiées(CDC), AWS DMS prend en charge les types dedonnées NCLOB uniquement dans les tables quicontiennent une clé primaire.

GEOMETRY Utilisez GEOMETRY lors de la réplication de pointsde terminaison cibles qui prennent en charge cetype de données.

Utilisez CLOB lors de la réplication de points determinaison cibles qui ne prennent pas en chargece type de données.

GEOGRAPHY Utilisez GEOGRAPHY lors de la réplication depoints de terminaison cibles qui prennent encharge ce type de données.

Utilisez CLOB lors de la réplication de points determinaison cibles qui ne prennent pas en chargece type de données.

AWS DMS ne prend pas en charge les tables qui contiennent des champs comportant les types dedonnées suivants :

• CURSOR• SQL_VARIANT• TABLE

Note

Les types de données définis par l'utilisateur sont pris en charge selon leur type de base. Parexemple, un type de données défini par l'utilisateur basé sur DATETIME est traité en tant que typede données DATETIME.

Utilisation de Microsoft Azure SQL Database commesource pour AWS DMSAvec AWS DMS, vous pouvez utiliser Azure SQL Database comme source de la même façon que vousle faites avec Microsoft SQL Server. SQL Server AWS DMS prend en charge, comme source, la mêmeliste de versions de base de données prises en charge pour SQL Server qui s'exécute sur site ou sur uneinstance Amazon EC2.

Version de l'API API Version 2016-01-01161

Page 169: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Pour plus d'informations, consultez Utilisation d'une base de données Microsoft SQL Server comme sourcepour AWS DMS (p. 149).

Note

AWS DMS ne prend pas en charge les opérations de capture des données modifiées (CDC) avecAzure SQL Database.

Utilisation d'une base de données PostgreSQL commesource pour AWS DMSVous pouvez migrer des données d'une ou plusieurs bases de données PostgreSQL à l'aide d'AWS DMS.Avec une base de données PostgreSQL comme source, vous pouvez migrer les données vers une autrebase de données PostgreSQL, ou d'autres bases de données prises en charge. AWS DMS prend encharge une base de données PostgreSQL version 9.4 ou ultérieure (pour les versions 9.x), 10.x et 11.xcomme source pour ces types de base de données.

• Bases de données sur site• Bases de données sur une instance EC2• Bases de données sur une instance de base de données Amazon RDS• Bases de données sur une instance de base de données Amazon Aurora avec compatibilité PostgreSQL

Note

• AWS DMS ne fonctionne pas avec Amazon RDS for PostgreSQL 10.4 ou Amazon Aurora(PostgreSQL 10.4) comme source ou cible.

• Les versions PostgreSQL 11.x sont prises en charge en tant que source uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL versions 9.4 etultérieures (versions 9.x) et 10.x comme source dans n'importe quelle version DMS.

• PostgreSQL versions 10.x présente de nombreuses modifications des noms de fonction et dedossier par rapport aux versions précédentes.

Dans certains cas, vous pouvez utiliser une base de données PostgreSQL version 10.x commesource et une version AWS DMS antérieure à la version 3.3.1. Dans ces cas, consultezUtilisation de PostgreSQL version 10.x comme source pour AWS DMS (p. 174) pour plusd'informations sur la préparation de votre base de données en tant que source pour AWS DMS.

Note

Si vous utilisez une base de données PostgreSQL 10.x comme source avec lesversions AWS DMS 3.3.1 ou ultérieures, n'effectuez pas ces préparatifs pour les basesde données source 10.x requises pour les versions AWS DMS antérieures.

Pour obtenir un résumé des exigences liées à la version de AWS DMS pour utiliser les versions source dePostgreSQL prises en charge, veuillez consulter le tableau suivant.

Version source de PostgreSQL Version AWS DMS à utiliser

9.x Utilisez n'importe quelle version AWS DMSdisponible.

10.x Si vous utilisez une version de AWS DMSantérieure à la version 3.3.1, préparez la sourcePostgreSQL à l'aide des fonctions wrapper décrites

Version de l'API API Version 2016-01-01162

Page 170: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Version source de PostgreSQL Version AWS DMS à utiliserdans Utilisation de PostgreSQL version 10.xcomme source pour AWS DMS (p. 174).

Si vous utilisez une version AWS DMS 3.3.1 ouultérieure, ne créez pas ces fonctions wrapper.Vous pouvez utiliser la source PostgreSQL sansaucune préparation supplémentaire.

11.x Utilisez la version AWS DMS 3.3.1.

Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison PostgreSQL etl'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaisonPostgreSQL, consultez Utilisation du protocole SSL avec AWS Database Migration Service (p. 81).

Pour une migration homogène à partir d'une base de données PostgreSQL vers une base de donnéesPostgreSQL sur AWS, les conditions suivantes sont remplies :

• Les colonnes JSONB sur la source sont migrées vers les colonnes JSONB sur la cible.• Les colonnes JSON sont migrées en tant que colonnes JSON sur la cible.• Les colonnes HSTORE sont migrées en tant que colonnes HSTORE sur la cible.

Pour une migration hétérogène avec PostgreSQL comme source et un autre moteur de base de donnéescomme cible, la situation est différente. Dans ce cas, les colonnes JSONB, JSON et HSTORE sontconverties vers le type intermédiaire AWS DMS NCLOB, puis converties vers le type de colonne NCLOBcorrespondant sur la cible. Dans ce cas, AWS DMS traite les données JSONB comme s'il s'agissait d'unecolonne LOB. Au cours de la phase de chargement complet d'une migration, la colonne cible doit être detype nullable.

AWS DMS prend en charge la capture des données modifiées (CDC) pour les tables PostgreSQL avec desclés primaires. Si une table n'a pas de clé primaire, les journaux WAL n'incluent pas d'image antérieure dela ligne de base de données et AWS DMS ne peut pas mettre à jour la table.

AWS DMS prend en charge la capture des données modifiées (CDC) sur les bases de données AmazonRDS PostgreSQL lorsque l'instance de base de données est configurée pour utiliser la réplication logique.Amazon RDS prend en charge la réplication logique pour une instance de base de données PostgreSQLversions 9.4.9 et ultérieures et 9.5.4 et ultérieures. Amazon RDS prend également en charge la réplicationlogique pour une instance de base de données Amazon Aurora utilisant les versions 2.2.0 et 2.2.1, aveccompatibilité PostgreSQL 10.6.

Pour plus de détails sur l'utilisation des bases de données PostgreSQL et d'AWS DMS, consultez lessections suivantes.

Rubriques• Migration de PostgreSQL vers PostgreSQL à l'aide d'AWS DMS (p. 164)• Conditions préalables à l'utilisation d'une base de données PostgreSQL comme source pour AWS

DMS (p. 167)• Exigences en matière de sécurité lors de l'utilisation d'une base de données PostgreSQL comme

source pour AWS DMS (p. 168)• Limites lors de l'utilisation d'une base de données PostgreSQL comme source pour AWS

DMS (p. 168)• Configuration d'une instance de base de données Amazon RDS PostgreSQL comme source (p. 169)• Suppression des artefacts AWS DMS d'une base de données source PostgreSQL (p. 173)

Version de l'API API Version 2016-01-01163

Page 171: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

• Paramètres de configuration supplémentaires lors de l'utilisation d'une base de données PostgreSQLcomme source pour AWS DMS (p. 174)

• Utilisation de PostgreSQL version 10.x comme source pour AWS DMS (p. 174)• Attributs de connexion supplémentaires lors de l'utilisation de PostgreSQL comme source pour AWS

DMS (p. 176)• Types de données sources pour PostgreSQL (p. 177)

Migration de PostgreSQL vers PostgreSQL à l'aide d'AWS DMSPour obtenir une migration hétérogène, dans laquelle vous effectuez une migration à partir d'un moteurde base de données autre que PostgreSQL vers une base de données PostgreSQL, AWS DMS est, trèssouvent, le meilleur outil de migration à utiliser. En revanche, dans le cas d'une migration homogène danslaquelle vous effectuez une migration d'une base de données PostgreSQL vers une base de donnéesPostgreSQL, les outils natifs peut être plus efficaces.

Nous vous recommandons d'utiliser les outils de migration de base de données PostgreSQL natifs, parexemple pg_dump, dans les conditions suivantes :

• Vous avez une migration homogène, dans laquelle vous effectuez une migration d'une base de donnéesPostgreSQL source vers une base de données PostgreSQL cible.

• Vous migrez une base de données entière.• Les outils natifs vous permettent de migrer vos données avec une interruption minimale.

L'utilitaire pg_dump utilise la commande COPY pour créer un schéma et un vidage des données d'unebase de données PostgreSQL. Le script de vidage généré par pg_dump charge les données dans unebase de données dotée du même nom et recrée les tables, les index et les clés étrangères. Vous pouvezutiliser la commande pg_restore et le paramètre -d pour restaurer les données dans une base dedonnées dotée d'un nom différent.

Pour de plus amples informations sur l'importation d'une base de données PostgreSQL dans AmazonRDS pour PostgreSQL ou Amazon Aurora avec compatibilité PostgreSQL, veuillez consulter https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html.

Utilisation de DMS pour migrer des données de PostgreSQL vers PostgreSQLAWS DMS peut migrer des données à partir, par exemple, d'une base de données PostgreSQL sourcesituée sur site vers une cible Amazon RDS pour PostgreSQL ou une instance Aurora PostgreSQL. Lamigration des types de données PostgreSQL principaux ou de base réussit souvent.

Les types de données pris en charge sur la base de données source mais pas sur la cible peuvent ne pasmigrer avec succès. AWS DMS diffuse certains types de données sous forme de chaînes si le type dedonnées est inconnu. La migration de certains types de données, tels que JSON et XML, peut réussir s'ils'agit de fichiers peu volumineux, mais peut échouer s'il s'agit de documents volumineux.

Le tableau suivant montre les types de données PostgreSQL source et indique si leur migration peutréussir :

Type de données Réussite de lamigration

Migrepartiellement

Ne migre pas Commentaires

INTEGER X      

SMALLINT X      

BIGINT X      

Version de l'API API Version 2016-01-01164

Page 172: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Type de données Réussite de lamigration

Migrepartiellement

Ne migre pas Commentaires

NUMERIC/DECIMAL(p,s)   X   Où 0<p<39 et0<s

NUMERIC/DECIMAL   X   Où p>38 oup=s=0

REAL X      

DOUBLE X      

SMALLSERIAL X      

SERIAL X      

BIGSERIAL X      

MONEY X      

CHAR   X   Sans précisionspécifiée

CHAR(n) X      

VARCHAR   X   Sans précisionspécifiée

VARCHAR(n) X      

TEXT X      

BYTEA X      

TIMESTAMP X      

TIMESTAMP(Z)   X    

DATE X      

TIME X      

TIME (z)   X    

INTERVAL   X    

BOOLEAN X      

ENUM     X  

CIDR     X  

INET     X  

MACADDR     X  

TSVECTOR     X  

TSQUERY     X  

xml   X    

Version de l'API API Version 2016-01-01165

Page 173: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Type de données Réussite de lamigration

Migrepartiellement

Ne migre pas Commentaires

POINT X     Type dedonnéesspatialesPostGIS

LINE     X  

LSEG     X  

BOX     X  

PATH     X  

POLYGON X     Type dedonnéesspatialesPostGIS

CIRCLE     X  

JSON   X    

ARRAY     X  

COMPOSITE     X  

RANGE     X  

LINESTRING X     Type dedonnéesspatialesPostGIS

MULTIPOINT X     Type dedonnéesspatialesPostGIS

MULTILINESTRING X     Type dedonnéesspatialesPostGIS

MULTIPOLYGON X     Type dedonnéesspatialesPostGIS

GEOMETRYCOLLECTION X     Type dedonnéesspatialesPostGIS

Version de l'API API Version 2016-01-01166

Page 174: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Note

Si le type de données NUMERIC(p,s) de PostgreSQL ne spécifie aucune précision et échelle,AWS DMS utilise une précision de 28 et une échelle de 6 par défaut, NUMERIC(28,6). Parexemple, la valeur 0,611111104488373 de la source est convertie en 0,611111 sur la ciblePostgreSQL.

Migration de types de données spatiales PostGIS

Les données spatiales identifient les informations géométriques d'un objet ou d'un emplacement dansl'espace. Les bases de données relationnelles objet PostgreSQL prennent en charge les types de donnéesspatiales PostGIS.

Avant de migrer des objets de données spatiales PostgreSQL, assurez-vous que le plug-in PostGIS estactivé au niveau global. Cela garantit la création par AWS DMS des colonnes de données spatiales sourceexactes pour l'instance de base de données cible PostgreSQL.

Pour les migrations homogènes PostgreSQL vers PostgreSQL, AWS DMS prend en charge la migrationdes types et sous-types d'objets de données géométriques et géographiques PostGIS (coordonnéesgéodésiques) géométriques et géographiques (coordonnées géodésiques) tels que les suivants :

• POINT• LINESTRING• POLYGON• MULTIPOINT• MULTILINESTRING• MULTIPOLYGON• GEOMETRYCOLLECTION

Conditions préalables à l'utilisation d'une base de donnéesPostgreSQL comme source pour AWS DMSPour qu'une base de données PostgreSQL soit une source pour AWS DMS, effectuez les opérationssuivantes :

• Utiliser une base de données PostgreSQL de version 9.4.x ou ultérieure.• Pour les tâches de chargement complet plus CDC (capture de données modifiées) ou pour les tâches

CDC uniquement, accordez des autorisations de super-utilisateur pour le compte utilisateur spécifié pourla base de données source PostgreSQL. Des autorisations de super-utilisateur sont nécessaires pouraccéder aux fonctions spécifiques à la réplication dans la source. Pour les tâches à chargement completuniquement, les autorisations SELECT sont nécessaires sur les tables afin de les migrer.

• Ajouter l'adresse IP du serveur de réplication AWS DMS dans le fichier de configuration pg_hba.conf.Le fichier de configuration pg_hba.conf de PostgreSQL contrôle l'authentification du client. (HBAsignifie authentification basée sur l'hôte.) Le fichier est traditionnellement stocké dans le répertoire dedonnées du cluster de base de données.

• Définir les paramètres et valeurs suivants dans le fichier de configuration postgresql.conf :• Définir wal_level = logical• Définissez une valeur supérieure à 1 pour max_replication_slots.

La valeur max_replication_slots doit être définie selon le nombre de tâches que vous souhaitezexécuter. Par exemple, pour exécuter cinq tâches, vous devez définir au moins cinq emplacements.Les emplacements s'ouvrent automatiquement dès qu'une tâche commence et restent ouvert

Version de l'API API Version 2016-01-01167

Page 175: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

même lorsque la tâche n'est plus en cours d'exécution. Vous devez supprimer manuellement lesemplacements ouverts.

• Définissez une valeur supérieure à 1 pour max_wal_senders.

Le paramètre max_wal_sendersdéfinit le nombre de tâches simultanées qui peuvent s'exécuter.• Définir wal_sender_timeout =0

Le paramètre wal_sender_timeout met fin aux connexions de réplication qui sont inactives pluslongtemps que le nombre de millisecondes spécifié. Bien que la valeur par défaut soit 60 secondes,nous vous recommandons de définir ce paramètre à zéro, ce qui désactive le mécanisme d'expiration.

Note

Certains paramètres ne peuvent être définis qu'au démarrage du serveur. Toutes lesmodifications apportées à leurs entrées dans le fichier de configuration sont ignorées jusqu'à ceque le serveur soit redémarré. Pour plus d'informations, reportez-vous à la documentation de labase de données PostgreSQL.

• Le paramètre idle_in_transaction_session_timeout dans PostgreSQL versions 9.6 etultérieures vous permet de provoquer l'expiration et l'échec des transactions inactives. Certainestransactions AWS DMS sont inactives un certain temps avant que le moteur AWS DMS ne les utilise ànouveau. Ne mettez pas fin aux transactions inactives lorsque vous utilisez AWS DMS.

Exigences en matière de sécurité lors de l'utilisation d'une basede données PostgreSQL comme source pour AWS DMSLa seule exigence de sécurité seulement lorsque vous utilisez PostgreSQL comme source est que lecompte d'utilisateur spécifié doit être un utilisateur enregistré dans la base de données PostgreSQL.

Limites lors de l'utilisation d'une base de données PostgreSQLcomme source pour AWS DMSLes limites suivantes s'appliquent lorsque vous utilisez PostgreSQL comme source pour AWS DMS :

• AWS DMS ne fonctionne pas avec Amazon RDS PostgreSQL 10.4 ou Amazon Aurora PostgreSQL 10.4en tant que source ou cible.

• Une table capturée doit posséder une clé primaire. Si une table est dépourvue de clé primaire, AWSDMS ignore les opérations d'enregistrements DELETE et UPDATE pour cette table.

• L'horodatage avec une colonne de type de fuseau horaire n'est pas pris en charge.• AWS DMS ignore une tentative de mettre à jour un segment de clé primaire. Dans ces cas, la cible

identifie la mise à jour comme une mise à jour n'ayant mis à jour aucune ligne. Toutefois, comme lesrésultats de la mise à jour d'une clé primaire dans PostgreSQL sont imprévisibles, aucun enregistrementn'est écrit dans la table d'exceptions.

• AWS DMS ne prend pas en charge l'option d'exécution Start Process Changes from Timestamp.• AWS DMS prend en charge le chargement complet et le traitement des modifications sur Amazon RDS

pour PostgreSQL. Pour plus d'informations sur la façon préparer une instance DB PostgreSQL et dela configurer pour l'utilisation de la CDC, consultez Configuration d'une instance de base de donnéesAmazon RDS PostgreSQL comme source (p. 169).

• La réplication de plusieurs tables portant le même nom mais avec une casse différente (par exemple,table1, TABLE1 et Table1) peut entraîner un comportement imprévisible. En raison de ce problème,AWS DMS ne prend pas en charge ce type de la réplication.

• Dans la plupart des cas, AWS DMS prend en charge le traitement des modifications apportées auxinstructions DDL CREATE, ALTER et DROP pour les tables. AWS DMS ne prend pas en charge ce

Version de l'API API Version 2016-01-01168

Page 176: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

traitement des modifications si les tables sont contenues dans un bloc de fonction ou de procédureinterne ou dans d'autres constructions imbriquées.

Par exemple, la modification suivante n'est pas capturée :

CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS voidLANGUAGE plpgsqlAS $$BEGINcreate table attu.distributors1(did serial PRIMARY KEY,namevarchar(40) NOT NULL);END;$$;

• AWS DMS ne prend pas en charge le traitement des opérations TRUNCATE.• Le type de données LOB OID n'est pas migré vers la cible.• Si votre source est une base de données PostgreSQL sur site ou sur une instance Amazon EC2,

assurez-vous que le plug-in de sortie test_decoding est installé sur votre point de terminaison source.Vous trouverez ce plug-in dans le package contrib Postgres. Pour plus d'informations sur le plug-intest_decoding, consultez la documentation PostgreSQL.

• AWS DMS ne prend pas en charge le traitement des modifications pour définir et annuler la définitiondes valeurs par défaut des colonnes (à l'aide de la clause ALTER COLUMN SET DEFAULT dans desinstructions ALTER TABLE).

• AWS DMS ne prend pas en charge le traitement des modifications pour définir la possibilité devaleur NULL des colonnes (à l'aide de la clause ALTER COLUMN [SET|DROP] NOT NULL dans desinstructions ALTER TABLE).

• AWS DMS ne prend pas en charge la réplication des tables partitionnées. Lorsqu'une table partitionnéeest détectée, voici ce qui se produit :• Le point de terminaison indique la liste des tables parent et enfant.• AWS DMS crée la table sur la cible en tant que table standard avec les mêmes propriétés que les

tables sélectionnées.• Si la table parent dans la base de données source a la même valeur de clé primaire que ses tables

enfants, une erreur « clé dupliquée » est générée.

Note

Afin de répliquer les tables partitionnés d'une source PostgreSQL vers une cible PostgreSQL,vous devez d'abord créer manuellement les tables parent et enfant sur la cible. Vous définissezensuite une tâche distincte pour effectuer la réplication sur ces tables. Dans ce cas, vousdéfinissez la configuration de la tâche sur Truncate before loading.

Note

Le type de données PostgreSQL NUMERIC n'est pas fixe. Lors du transfert de données de typeNUMERIC sans précision ni échelle, DMS utilise NUMERIC(28,6) (une précision de 28 et uneéchelle de 6) par défaut. Par exemple, la valeur 0,611111104488373 de la source est convertieen 0,611111 sur la cible PostgreSQL.

Configuration d'une instance de base de données Amazon RDSPostgreSQL comme sourceVous pouvez utiliser un réplica en lecture ou une instance de base de données Amazon RDS pourPostgreSQL comme source pour AWS DMS. Vous pouvez utiliser une instance de base de donnéespour les tâches à pleine charge et pour la capture de données de modification (CDC) pour la réplication

Version de l'API API Version 2016-01-01169

Page 177: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

continue. Vous pouvez utiliser un réplica en lecture uniquement pour les tâches à pleine charge et non pourle CDC.

Vous utilisez le compte utilisateur principal AWS pour l'instance de base de données PostgreSQL entant que compte utilisateur pour le point de terminaison source PostgreSQL pour AWS DMS. Le compted'utilisateur principal a les rôles nécessaires qui lui permettent de configurer la capture des donnéesmodifiées. Si vous utilisez un compte autre que le compte utilisateur principal, ce compte doit avoir le rôlede rds_superuser et le rôle de rds_replication. Le rôle de rds_replication accorde les autorisations requisespour gérer les emplacements logiques et diffuser les données à l'aide des emplacements logiques.

Si vous n'utilisez pas le compte utilisateur principal pour l'instance DB, vous devez créer plusieurs objetsà partir du compte utilisateur principal pour le compte que vous utilisez. Pour plus d'informations surla création des objets nécessaires, consultez Migration d'une base de données Amazon RDS pourPostgreSQL sans utiliser le compte d'utilisateur principal (p. 172).

Utilisation de la CDC avec une instance DB RDS pour PostgreSQL

Vous pouvez utiliser la fonctionnalité de réplication logique native de PostgreSQL pour activer la CDClors d'une migration de base de données d'une instance DB Amazon RDS PostgreSQL. Cette approcheréduit le temps d'arrêt et garantit que la base de données cible est synchronisée avec la base de donnéesPostgreSQL source. Amazon RDS prend en charge la réplication logique pour une instance de base dedonnées PostgreSQL versions 9.4.9 et ultérieures et 9.5.4 et ultérieures.

Note

Vous ne pouvez pas utiliser Amazon RDS pour les réplicas en lecture PostgreSQL pour CDC(réplication continue).

Pour activer la réplication logique pour une instance DB RDS PostgreSQL

1. Utilisez le compte utilisateur principal AWS pour l'instance de base de données PostgreSQL entant que compte utilisateur pour le point de terminaison source PostgreSQL. Le compte d'utilisateurprincipal a les rôles nécessaires qui lui permettent de configurer la capture des données modifiées.

Si vous utilisez un compte autre que le compte utilisateur principal, vous devez créer plusieurs objetsdepuis le compte principal pour le compte que vous utilisez. Pour plus d'informations, consultezMigration d'une base de données Amazon RDS pour PostgreSQL sans utiliser le compte d'utilisateurprincipal (p. 172).

2. Définissez le paramètre rds.logical_replication de votre groupe de paramètres DB sur1. Ce paramètre statique nécessite un redémarrage de l'instance DB pour son application. Pourl'application de ce paramètre, AWS DMS définit les paramètres wal_level, max_wal_senders,max_replication_slots et max_connections. Ces modifications de paramètres peuventaugmenter la génération WAL (Write ahead log) ; de sorte qu’il faut uniquement définirrds.logical_replication lorsque vous utilisez des emplacements de réplication logique.

3. Une bonne pratique consiste à définir le paramètre wal_sender_timeout sur 0. Le réglage dece paramètre sur zéro empêche PostgreSQL de mettre fin aux connexions de réplication qui sontinactives plus longtemps que le délai spécifié. Lorsqu'AWS DMS migre des données, les connexionsde réplication doivent pouvoir durer plus longtemps que le délai spécifié.

4. Activez les points de départ CDC natifs avec PostgreSQL comme source en définissant l'attribut deconnexion supplémentaire slotName sur le nom d'un emplacement de réplication logique existantlorsque vous créez le point de terminaison. Cet emplacement de réplication logique contient lesmodifications en cours à partir du moment de la création du point de terminaison, il prend donc encharge la réplication à partir d'un point précédent dans le temps.

PostgreSQL écrit les modifications de base de données dans des fichiers WAL qui sont uniquementignorés après qu'AWS DMS a réussi à lire les modifications à partir de l'emplacement de réplicationlogique. L'utilisation d'emplacements de réplication logique permet de protéger les modifications

Version de l'API API Version 2016-01-01170

Page 178: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

consignées, pour qu’elles ne soient pas supprimées avant d’être consommées par le moteur deréplication.

Toutefois, selon le taux de changement et de consommation, les modifications conservées dansun emplacement de réplication logique peuvent entraîner une utilisation élevée du disque. Nousvous recommandons de définir des alarmes d'utilisation de l'espace dans l'instance PostgreSQLsource lorsque des emplacements de réplication logiques sont utilisés. Pour de plus amplesinformations sur l'utilisation de l'attribut de connexion supplémentaire slotName, veuillez consulterAttributs de connexion supplémentaires lors de l'utilisation de PostgreSQL comme source pour AWSDMS (p. 176).

Note

L'utilisation de points de départ CDC natifs avec PostgreSQL comme source est disponibledans AWS DMS, versions 3.1.0 et ultérieures.

La procédure suivante décrit cette approche plus en détail.

Pour utiliser un point de départ CDC natif afin de configurer une charge CDC d'un point determinaison source PostgreSQL

1. Identifiez l'emplacement de réplication logique utilisé par une tâche de réplication antérieure(tâche parent) que vous souhaitez utiliser comme point de départ. Ensuite, recherchez la vuepg_replication_slots de votre base de données source pour vous assurer que cet emplacementne présente aucune connexion active. S'il en a, résolvez-les et arrêtez-les avant de poursuivre.

Pour les étapes suivantes, il faut supposer que votre emplacement de réplication logique estabc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef.

2. Créez un nouveau point de terminaison source qui inclut le paramètre d'attribut de connexionsupplémentaire suivant.

slotName=abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef;

3. Créez une nouvelle tâche CDC uniquement à l'aide de l'API AWS DMS ou de l’interface de ligne decommande (CLI). Par exemple, à l'aide de l'interface de ligne de commande, vous pouvez exécuter lacommande create-replication-task suivante.

AWS DMS ne prend pas actuellement en charge la création d'une tâche CDC avec un point de départnatif à l'aide de la console.

aws dms create-replication-task --replication-task-identifier postgresql-slot-name-test --source-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ABCD1EFGHIJK2LMNOPQRST3UV4 --target-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ZYX9WVUTSRQONM8LKJIHGF7ED6 --replication-instance-arn arn:aws:dms:us-west-2:012345678901:rep:AAAAAAAAAAA5BB4CCC3DDDD2EE --migration-type cdc --table-mappings "file://mappings.json" --cdc-start-position "4AF/B00000D0" --replication-task-settings "file://task-pg.json"

Dans la commande précédente, les options suivantes sont définies :

• source-endpoint-arn est définie sur la nouvelle valeur que vous avez créée à l'étape 2.• replication-instance-arn est définie sur la même valeur que pour la tâche parent à l'étape 1.• table-mappings et replication-task-settings sont définies sur les mêmes valeurs que

pour la tâche parent à l'étape 1.

Version de l'API API Version 2016-01-01171

Page 179: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

• cdc-start-position est définie sur une valeur de position de départ. Pour trouver cette positionde départ, recherchez la vue pg_replication_slots de votre base de données source ouaffichez les détails de la console pour la tâche parent à l'étape 1. Pour de plus amples informations,veuillez consulter Définition d'un point de départ natif CDC (p. 355).

Lorsque cette tâche CDC s'exécute, AWS DMS déclenche une erreur si l'emplacement de réplicationlogique spécifié n'existe pas ou si la tâche n'est pas créée avec un paramètre valide pour cdc-start-position.

Migration d'une base de données Amazon RDS pour PostgreSQL sans utiliser lecompte d'utilisateur principal

Dans certains cas, vous risquez de ne pas utiliser le compte utilisateur principal pour l'instance de base dedonnées PostgreSQL Amazon RDS que vous utilisez en tant que source. Dans ce cas, vous devez créerplusieurs objets afin de capturer des événements DDL (data definition language). Vous créez ces objetsdans le compte autre que le compte principal, puis vous créez un déclencheur dans le compte utilisateurprincipal.

Note

Si vous définissez l'attribut de connexion supplémentaire captureDDLs sur N sur le point determinaison source, vous n'avez pas besoin de créer la table et le déclencheur suivants sur labase de données source.

Utilisez la procédure suivante pour créer ces objets. Le compte utilisateur autre que le compte principal estdésigné en tant que compte NoPriv dans cette procédure.

Pour créer des objets

1. Choisissez le schéma où les objets doivent être créés. Le schéma par défaut est public. Assurez-vous que le schéma existe et qu'il est accessible par le compte NoPriv.

2. Connectez-vous à l'instance de base de données PostgreSQL à l'aide du compte NoPriv.3. Créez la table awsdms_ddl_audit en exécutant la commande suivante, en remplaçant

objects_schema dans le code suivant par le nom du schéma à utiliser.

create table objects_schema.awsdms_ddl_audit( c_key bigserial primary key, c_time timestamp, -- Informational c_user varchar(64), -- Informational: current_user c_txn varchar(16), -- Informational: current transaction c_tag varchar(24), -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE' c_oid integer, -- For future use - TG_OBJECTID c_name varchar(64), -- For future use - TG_OBJECTNAME c_schema varchar(64), -- For future use - TG_SCHEMANAME. For now - holds current_schema c_ddlqry text -- The DDL query associated with the current DDL event)

4. Créez la fonction awsdms_intercept_ddl en exécutant la commande suivante, en remplaçantobjects_schema dans le code suivant par le nom du schéma à utiliser.

Version de l'API API Version 2016-01-01172

Page 180: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

CREATE OR REPLACE FUNCTION objects_schema.awsdms_intercept_ddl() RETURNS event_triggerLANGUAGE plpgsqlSECURITY DEFINER AS $$ declare _qry text;BEGIN if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then SELECT current_query() into _qry; insert into objects_schema.awsdms_ddl_audit values ( default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry ); delete from objects_schema.awsdms_ddl_audit;end if;END;$$;

5. Déconnectez-vous du compte NoPriv et connectez-vous avec un compte auquel le rôlerds_superuser a été attribué.

6. Créez le déclencheur d’événements awsdms_intercept_ddl en exécutant la commande suivante.

CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE objects_schema.awsdms_intercept_ddl();

Une fois que vous avez terminé la procédure précédente, vous pouvez créer le point de terminaison sourceAWS DMS à l'aide du compte NoPriv.

Suppression des artefacts AWS DMS d'une base de donnéessource PostgreSQLPour capturer les événements DDL, AWS DMS crée divers artefacts dans la base de données PostgreSQLlorsqu'une tâche de migration démarre. Lorsque la tâche se termine, vous pouvez supprimer cesobjets. Pour supprimer les objets, émettez les instructions suivantes (dans leur ordre d'apparition), où{AmazonRDSMigration} est le schéma dans lequel les objets ont été créés :

drop event trigger awsdms_intercept_ddl;

Le déclencheur d'événements n'appartient pas à un schéma spécifique.

drop function {AmazonRDSMigration}.awsdms_intercept_ddl()drop table {AmazonRDSMigration}.awsdms_ddl_auditdrop schema {AmazonRDSMigration}

Note

Procédez avec prudence lors de la suppression d'un schéma. Ne supprimez jamais un schémaopérationnel, surtout s'il est public.

Version de l'API API Version 2016-01-01173

Page 181: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Paramètres de configuration supplémentaires lors de l'utilisationd'une base de données PostgreSQL comme source pour AWSDMSVous pouvez ajouter des paramètres de configuration supplémentaires lors de la migration des donnéesd'une base de données PostgreSQL de deux façons :

• Vous pouvez ajouter des valeurs à l'attribut de connexion supplémentaire pour capturer les événementsDDL et pour spécifier le schéma dans lequel les objets de base de données DDL opérationnelle sontcréés. Pour plus d'informations, consultez Attributs de connexion supplémentaires lors de l'utilisation dePostgreSQL comme source pour AWS DMS (p. 176).

• Vous pouvez remplacer les paramètres de chaîne de connexion. Sélectionnez cette option si vous avezbesoin d'effectuer l'une ou l'autre des opérations suivantes :• Spécifiez les paramètres AWS DMS internes. Ces paramètres sont rarement nécessaires et ne sont

donc pas présentés dans l'interface utilisateur.• Spécifiez des valeurs de transmission (passthru) pour le client de base de données spécifique. AWS

DMS comprend des paramètres de transmission dans la chaîne de connexion transmise au client debase de données.

Utilisation de PostgreSQL version 10.x comme source pour AWSDMSLes bases de données PostgreSQL version 10.x présentent de nombreuses modifications des noms defonction et de dossier par rapport aux versions précédentes de PostgreSQL. Ces modifications rendent nonrétrocompatibles certaines actions de migration lors de l'utilisation de versions de AWS DMS antérieures àla version 3.3.1..

Note

Si vous utilisez une base de données PostgreSQL 10.x en tant que source pour AWS DMS 3.3.1ou une version ultérieure, n'effectuez pas les préparations décrites ci-après. Vous pouvez utiliserla source PostgreSQL sans aucune préparation supplémentaire.

Comme la plupart des modifications de noms sont superficielles, AWS DMS a créé des fonctions wrapperqui permettent à AWS DMS de fonctionner avec PostgreSQL version 10.x. Les fonctions de wrapperont une priorité plus élevée que les fonctions dans pg_catalog. En outre, nous garantissons que lavisibilité des schémas existants n'est pas modifiée afin de ne pas remplacer d'autres fonctions de cataloguesystème, telles que les fonctions définies par l'utilisateur.

Pour utiliser ces fonctions de wrapper avant d'effectuer des tâches de migration, utilisez le même compteutilisateur AWS DMS (nom_utilisateur) que celui utilisé pour créer le point de terminaison source. Pourdéfinir et associer ces fonctions de wrapper à ce compte, exécutez le code SQL suivant sur la base dedonnées PostgreSQL source.

BEGIN;CREATE SCHEMA IF NOT EXISTS fnRenames;CREATE OR REPLACE FUNCTION fnRenames.pg_switch_xlog() RETURNS pg_lsn AS $$ SELECT pg_switch_wal(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_xlog_replay_pause() RETURNS VOID AS $$ SELECT pg_wal_replay_pause(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_xlog_replay_resume() RETURNS VOID AS $$ SELECT pg_wal_replay_resume(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_current_xlog_location() RETURNS pg_lsn AS $$ SELECT pg_current_wal_lsn(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_is_xlog_replay_paused() RETURNS boolean AS $$ SELECT pg_is_wal_replay_paused(); $$ LANGUAGE SQL;

Version de l'API API Version 2016-01-01174

Page 182: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

CREATE OR REPLACE FUNCTION fnRenames.pg_xlogfile_name(lsn pg_lsn) RETURNS TEXT AS $$ SELECT pg_walfile_name(lsn); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_last_xlog_replay_location() RETURNS pg_lsn AS $$ SELECT pg_last_wal_replay_lsn(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_last_xlog_receive_location() RETURNS pg_lsn AS $$ SELECT pg_last_wal_receive_lsn(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_current_xlog_flush_location() RETURNS pg_lsn AS $$ SELECT pg_current_wal_flush_lsn(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_current_xlog_insert_location() RETURNS pg_lsn AS $$ SELECT pg_current_wal_insert_lsn(); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_xlog_location_diff(lsn1 pg_lsn, lsn2 pg_lsn) RETURNS NUMERIC AS $$ SELECT pg_wal_lsn_diff(lsn1, lsn2); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_xlogfile_name_offset(lsn pg_lsn, OUT TEXT, OUT INTEGER) AS $$ SELECT pg_walfile_name_offset(lsn); $$ LANGUAGE SQL;CREATE OR REPLACE FUNCTION fnRenames.pg_create_logical_replication_slot(slot_name name, plugin name, temporary BOOLEAN DEFAULT FALSE, OUT slot_name name, OUT xlog_position pg_lsn) RETURNS RECORD AS $$ SELECT slot_name::NAME, lsn::pg_lsn FROM pg_catalog.pg_create_logical_replication_slot(slot_name, plugin, temporary); $$ LANGUAGE SQL;ALTER USER user_name SET search_path = fnRenames, pg_catalog, "$user", public;

-- DROP SCHEMA fnRenames CASCADE;-- ALTER USER PG_User SET search_path TO DEFAULT;COMMIT;

Note

Si vous n'exécutez pas ce code préparatoire sur une base de données PostgreSQL 10.x sourcepour les versions de AWS DMS antérieures à la version 3.3.1, une erreur similaire à l'erreursuivante s'affiche.

2018-10-29T02:57:50 [SOURCE_CAPTURE ]E: RetCode: SQL_ERROR SqlState: 42703 NativeError: 1 Message: ERROR: column "xlog_position" does not exist;, No query has been executed with that handle [1022502] (ar_odbc_stmt.c:3647)

Une fois que vous avez mis à niveau votre version de AWS DMS vers la version 3.3.1 ou ultérieure,procédez comme suit :

1. Supprimez la référence fnRenames de l'instruction ALTER USER que vous utilisez pour définir votrechemin de recherche de configuration PostgreSQL 10.x source.

2. Supprimez le schéma fnRenames de votre base de données PostgreSQL.

Si vous ne suivez pas ces étapes après la mise à niveau, vous voyez l'erreur suivante dans le journal lorsde l'accès au schéma fnRenames.

RetCode: SQL_ERROR SqlState: 42703 NativeError: 1 Message: ERROR: column "lsn" does not exist;

Si AWS DMS utilise un compte utilisateur qui n'est pas un compte principal pour la base de données, vousdevez également définir certaines autorisations pour accéder à ces fonctions de wrapper avec les bases dedonnées PostgreSQL 10.x source. Pour définir ces autorisations, exécutez les autorisations suivantes.

Version de l'API API Version 2016-01-01175

Page 183: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

GRANT USAGE ON SCHEMA fnRenames TO dms_superuser;GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA fnRenames TO dms_superuser;

Pour de plus amples informations sur l'utilisation de comptes utilisateurs qui ne sont pas des comptesprincipaux avec une base de données PostgreSQL 10.x source, reportez-vous à Migration d'une base dedonnées Amazon RDS pour PostgreSQL sans utiliser le compte d'utilisateur principal (p. 172).

Attributs de connexion supplémentaires lors de l'utilisation dePostgreSQL comme source pour AWS DMSVous pouvez utiliser des attributs de connexion supplémentaires pour configurer votre source PostgreSQL.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison source. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire (par exemple, oneSetting;thenAnother).

Le tableau suivant indique les attributs de connexion supplémentaires que vous pouvez utiliser lors de laconfiguration de PostgreSQL comme source pour AWS DMS.

Nom d'attribut Description

captureDDLs Pour capturer les événements DDL, AWS DMS crée diversobjets dans la base de données PostgreSQL lorsque la tâchedémarre. Vous pouvez ensuite supprimer ces objets commedécrit dans Suppression des artefacts AWS DMS d'une basede données source PostgreSQL (p. 173).

Si cette valeur est définie sur N, vous n'avez pas besoin decréer de tables ni de déclencheurs dans la base de donnéessource. Pour plus d'informations, consultez Migration d'unebase de données Amazon RDS pour PostgreSQL sans utiliserle compte d'utilisateur principal (p. 172).

Heure à laquelle les événements DDL sont enregistrés.

Valeur par défaut : Y

Valeurs valides : Y/N

Exemple: captureDDLs=Y;

ddlArtifactsSchema Schéma dans lequel les objets de base de données DDLopérationnelles sont créés.

Valeur par défaut : public

Valeurs valides : String

Exemple: ddlArtifactsSchema=xyzddlschema;

failTasksOnLobTruncation Lorsque la valeur est définie sur true, elle provoque l'échecd'une tâche si la taille réelle d'une colonne LOB est supérieureà la valeur LobMaxSize spécifiée.

Si une tâche est définie sur le mode LOB limité et que cetteoption a pour valeur true, la tâche échoue au lieu de tronquerles données LOB.

Valeur par défaut : false

Version de l'API API Version 2016-01-01176

Page 184: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Nom d'attribut DescriptionValeurs valides : booléen

Exemple: failTasksOnLobTruncation=true;

executeTimeout Définit le délai d'attente de déclaration client pour l'instancePostgreSQL, en secondes. La valeur par défaut est de60 secondes.

Exemple: executeTimeout=100;

slotName Définit le nom d'un emplacement de réplication logiqueprécédemment créé pour une charge CDC de l'instancePostgreSQL source.

Lorsqu'il est utilisé avec le paramètre de demande d’APIAWS DMS CdcStartPosition, cet attribut permetégalement d'utiliser des points de départ CDC natifs. Avant dedémarrer la tâche de chargement du CDC, DMS vérifie quel'emplacement de réplication logique spécifié existe. Il vérifieégalement que la tâche a été créée avec un paramètre validede CdcStartPosition. Si l'emplacement spécifié n'existepas ou si la tâche n'a pas de paramètre CdcStartPositionvalide, DMS déclenche une erreur.

Pour de plus amples informations sur la façondont DMS utilise les emplacements de réplicationlogique pour démarrer les chargements CDC pourPostgreSQL, consultez Utilisation de la CDC avec uneinstance DB RDS pour PostgreSQL (p. 170). Pourde plus amples informations sur la configuration duparamètre de demande CdcStartPosition, consultezDéfinition d'un point de départ natif CDC (p. 355).Pour de plus amples informations sur l'utilisationCdcStartPosition, consultez la documentation relativeaux opérations d’API ModifyReplicationTask,CreateReplicationTask et StartReplicationTaskdans le AWS Database Migration Service API Reference.

Valeurs valides : String

Exemple:slotName=abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef;

Types de données sources pour PostgreSQLLe tableau suivant présente les types de données sources PostgreSQL qui sont pris en charge lorsquevous utilisez AWS DMS et le mappage par défaut des types de données AWS DMS.

Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection concernant le point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Version de l'API API Version 2016-01-01177

Page 185: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Types de données PostgreSQL Types de données AWS DMS

INTEGER INT4

SMALLINT INT2

BIGINT INT8

NUMERIC (p,s) Si la précision se situe entre 0 et 38, utilisezNUMERIC.

Si la précision est 39 ou supérieure, utilisezSTRING.

DECIMAL(P,S) Si la précision se situe entre 0 et 38, utilisezNUMERIC.

Si la précision est 39 ou supérieure, utilisezSTRING.

REAL REAL4

DOUBLE REAL8

SMALLSERIAL INT2

SERIAL INT4

BIGSERIAL INT8

MONEY NUMERIC(38,4)

Le type de données MONEY est mappé sur FLOATdans SQL Server.

CHAR WSTRING (1)

CHAR(N) WSTRING (n)

VARCHAR(N) WSTRING (n)

TEXT NCLOB

BYTEA BLOB

TIMESTAMP TIMESTAMP

TIMESTAMP (z) TIMESTAMP

TIMESTAMP with time zone Non pris en charge

DATE DATE

TIME TIME

TIME (z) TIME

INTERVAL STRING (128)—1 YEAR, 2 MONTHS, 3 DAYS, 4HOURS, 5 MINUTES, 6 SECONDS

BOOLEAN CHAR (5) Vrai ou faux ?

Version de l'API API Version 2016-01-01178

Page 186: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme source

Types de données PostgreSQL Types de données AWS DMS

ENUM STRING (64)

CIDR STRING (50)

INET STRING (50)

MACADDR STRING (18)

BIT (n) STRING (n)

BIT VARYING (n) STRING (n)

UUID STRING

TSVECTOR CLOB

TSQUERY CLOB

XML CLOB

POINT STRING (255) "(x,y)"

LINE STRING (255) "(x,y,z)"

LSEG STRING (255) "((x1,y1),(x2,y2))"

BOX STRING (255) "((x1,y1),(x2,y2))"

PATH CLOB "((x1,y1),(xn,yn))"

POLYGON CLOB "((x1,y1),(xn,yn))"

CIRCLE STRING (255) "(x,y),r"

JSON NCLOB

JSONB NCLOB

ARRAY NCLOB

COMPOSITE NCLOB

HSTORE NCLOB

INT4RANGE STRING (255)

INT8RANGE STRING (255)

NUMRANGE STRING (255)

STRRANGE STRING (255)

Les tailles de colonne PostgreSQL affectent la conversion des types de données LOB PostgreSQL entypes de données AWS DMS. Pour utiliser cela, procédez comme suit pour les types de données AWSDMS :

• BLOB – Définissez Limit LOB size to (Limiter la taille LOB à) sur la valeur Max LOB Size (Taille LOBmaximale) lors de la création de la tâche.

Version de l'API API Version 2016-01-01179

Page 187: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

• CLOB – La réplication gère chaque caractère en tant que caractère UTF8. Par conséquent, recherchezla chaîne de caractères la plus longue dans la colonne (max_num_chars_text) et utilisez-la pourspécifier la valeur de Limit LOB size to (Limiter la taille LOB à). Si les données comprennent descaractères à 4 octets, multipliez par 2 pour spécifier la valeur, en octets, de Limit LOB size to (Limiterla taille LOB à) Dans ce cas, la valeur de Limit LOB size to (Limiter la taille LOB à) est égale àmax_num_chars_text multiplié par 2.

• NCLOB – La réplication gère chaque caractère en tant que caractère à deux octets. Par conséquent,recherchez la chaîne de caractères la plus longue dans la colonne (max_num_chars_text) etmultipliez-la par 2 pour spécifier la valeur de Limit LOB size to (Limiter la taille LOB à). Dans ce cas, lavaleur de Limit LOB size to (Limiter la taille LOB à) est égale à max_num_chars_text multiplié par 2.Si les données comprennent des caractères à 4 octets, multipliez encore par 2. Dans ce cas, la valeur deLimit LOB size to (Limiter la taille LOB à) est égale à max_num_chars_text multiplié par 4.

Utilisation d'une base de données compatible MySQLcomme source pour AWS DMSVous pouvez migrer les données d'une base de données compatible MySQL (MySQL, MariaDB ouAmazon Aurora MySQL) à l'aide d'AWS Database Migration Service. MySQL versions 5.5, 5.6 et 5.7. Lesversions MariaDB 10.0.24 à 10.0.28, 10.1 et 10.2, et Amazon Aurora MySQL sont également prises encharge sur site.

Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison compatible MySQLet l'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaisoncompatible MySQL, consultez Utilisation du protocole SSL avec AWS Database Migration Service (p. 81).

Dans les sections suivantes, le terme « autogéré » s'applique à toute base de données installée sur site ousur Amazon EC2. Le terme « géré par Amazon » s'applique à toute base de données sur Amazon RDS,Amazon Aurora ou Amazon S3.

Pour plus de détails sur l'utilisation de bases de données compatibles MySQL et d'AWS DMS, consultez lessections suivantes.

Rubriques• Migration de MySQL vers MySQL à l'aide d'AWS DMS (p. 180)• Utilisation de toute base de données compatible MySQL comme source pour AWS DMS (p. 182)• Utilisation d'une base de données compatible MySQL autogérée comme source pour AWS

DMS (p. 183)• Utilisation d'une base de données compatible avec MySQL et gérée par Amazon en tant que source

pour AWS DMS (p. 184)• Limites lors de l'utilisation d'une base de données MySQL comme source pour AWS DMS (p. 185)• Attributs de connexion supplémentaires lors de l'utilisation de MySQL comme source pour AWS

DMS (p. 185)• Types de données sources pour MySQL (p. 186)

Migration de MySQL vers MySQL à l'aide d'AWS DMSPour obtenir une migration hétérogène, dans laquelle vous effectuez une migration à partir d'un moteurde base de données autre que MySQL vers une base de données MySQL, AWS DMS est, très souvent,le meilleur outil de migration à utiliser. En revanche, dans le cas d'une migration homogène dans laquellevous effectuez une migration d'une base de données MySQL vers une base de données MySQL, les outilsnatifs peut être plus efficaces.

Version de l'API API Version 2016-01-01180

Page 188: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Nous vous recommandons d'utiliser les outils de migration de base de données MySQL natifs, par exemplemysqldump, dans les conditions suivantes :

• Vous avez une migration homogène, dans laquelle vous effectuez une migration d'une base de donnéesMySQL source vers une base de données MySQL cible.

• Vous migrez une base de données entière.• Les outils natifs vous permettent de migrer vos données avec une interruption minimale.

Vous pouvez importer des données à partir d'une base de données MySQL ou MariaDB existante vers uneinstance de base de données MySQL ou MariaDB Amazon RDS. Pour cela, vous devez copier la base dedonnées avec mysqldump et la transférer directement dans l'instance de base de données Amazon RDSMySQL ou MariaDB. L'utilitaire de ligne de commande mysqldump est généralement utilisé pour effectuerdes sauvegardes et des transferts de données d'un serveur MySQL ou MariaDB vers un autre. Il est fourniavec les logiciels clients MySQL et MariaDB.

Pour de plus amples informations sur l'importation d'une base de données MySQL vers Amazon RDS pourMySQL ou Amazon Aurora avec compatibilité MySQL, veuillez consulter Importation de données dans uneinstance de base de données MySQL et Importation de données à partir d'une base de données MySQL ouMariaDB vers une instance de base de données Amazon RDS MySQL ou MariaDB.

Utilisation d'AWS DMS pour migrer de MySQL vers MySQLAWS DMS peut migrer des données à partir, par exemple, d'une base de données MySQL source situéesur site vers une cible Amazon RDS pour MySQL ou une instance Aurora MySQL. La migration des typesde données MySQL principaux ou de base réussit souvent.

Les types de données pris en charge sur la base de données source mais pas sur la cible peuvent nepas migrer avec succès. AWS DMS diffuse certains types de données sous forme de chaînes si le typede données est inconnu. La migration de certains types de données, comme XML, peut réussir pour desfichiers peu volumineux, mais échouer pour des documents volumineux.

Le tableau suivant montre les types de données MySQL source et indique si leur migration peut réussir :

Type de données Réussite de lamigration

Migrationpartielle

Échec de lamigration

Commentaires

INT X      

BIGINT X      

MEDIUMINT X      

TINYINT X      

DECIMAL(p,s) X      

BINARY X      

BIT (M) X      

BLOB X      

LONGBLOB X      

MEDIUMBLOB X      

TINYBLOB X      

DATE X      

Version de l'API API Version 2016-01-01181

Page 189: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Type de données Réussite de lamigration

Migrationpartielle

Échec de lamigration

Commentaires

DATETIME X      

TIME   X    

TIMESTAMP X      

YEAR X      

DOUBLE X      

FLOAT   X    

VARCHAR(N) X      

VARBINARY(N) X      

CHAR(N) X      

TEXT X      

LONGTEXT X      

MEDIUMTEXT X      

TINYTEXT X      

JSON X     Prise en chargedans lesversions AWSDMS 3.3.1 etultérieures

GEOMETRY     X  

POINT     X  

LINESTRING     X  

POLYGON     X  

MULTILINESTRING     X  

MULTIPOLYGON     X  

GEOMETRYCOLLECTION     X  

ENUM   X    

SET   X    

Utilisation de toute base de données compatible MySQL commesource pour AWS DMSAvant de commencer à utiliser une base de données MySQL comme source pour AWS DMS, veillezà ce que les conditions préalables suivantes soient remplies. Ces prérequis s'appliquent aux sourcesautogérées et gérées par Amazon.

Version de l'API API Version 2016-01-01182

Page 190: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Vous devez avoir un compte pour AWS DMS doté du rôle d'administrateur de réplication. Ce rôle nécessiteles privilèges suivants :

• REPLICATION CLIENT – Ce privilège est obligatoire uniquement pour les tâches de capture de donnéesmodifiées (CDC). En d'autres termes, les tâches de chargement complet uniquement ne requièrent pasce privilège.

• REPLICATION SLAVE – Ce privilège est obligatoire uniquement pour les tâches de capture de donnéesmodifiées (CDC). En d'autres termes, les tâches de chargement complet uniquement ne requièrent pasce privilège.

• SUPER – Ce privilège est nécessaire uniquement dans les versions de MySQL antérieures à 5.6.6.

L'utilisateur AWS DMS doit également disposer des privilèges SELECT pour les tables sources désignéespour la réplication.

Utilisation d'une base de données compatible MySQL autogéréecomme source pour AWS DMSVous pouvez utiliser les bases de données compatibles MySQL autogérées suivantes comme sources pourAWS DMS :

• MySQL Community Edition• MySQL Standard Edition• MySQL Enterprise Edition• MySQL Cluster Carrier Grade Edition• MariaDB Community Edition• MariaDB Enterprise Edition• MariaDB Column Store

Vous devez activer la journalisation binaire si vous envisagez d'utiliser la capture des données modifiées(CDC). Pour activer la journalisation binaire, les paramètres suivants doivent être configurés dans le fichiermy.ini (Windows) ou my.cnf (UNIX) de MySQL.

Paramètre Value

server_id Définissez ce paramètre à une valeur 1 ou supérieure.

log-bin Définissez le chemin d'accès au fichier journal binaire, par exemple log-bin=E:\MySql_Logs\BinLog. N'ajoutez pas d'extension de fichier.

binlog_format Définissez ce paramètre à ROW.

expire_logs_days Définissez ce paramètre à une valeur 1 ou supérieure. Pour éviter l'utilisationexcessive d'espace disque, nous recommandons de ne pas utiliser la valeurpar défaut de 0.

binlog_checksum Définissez ce paramètre à NONE.

binlog_row_image Définissez ce paramètre à FULL.

log_slave_updates Définissez ce paramètre sur TRUE si vous utilisez un réplica en lecture MySQLou MariaDB comme source.

Version de l'API API Version 2016-01-01183

Page 191: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Si votre source utilise le moteur de base de données NDB (en cluster), les paramètres suivants doiventêtre configurés pour permettre la capture des données modifiées sur les tables qui utilisent ce moteur destockage. Ajoutez ces modifications dans le fichier my.ini (Windows) ou my.cnf (UNIX) de MySQL.

Paramètre Value

ndb_log_bin Définissez ce paramètre à ON. Cette valeur garantit que les modifications dansles tables en cluster sont journalisées dans le journal binaire.

ndb_log_update_as_writeDéfinissez ce paramètre à OFF. Cette valeur empêche d'écrire des instructionsUPDATE en tant qu'instructions INSERT dans le journal binaire.

ndb_log_updated_onlyDéfinissez ce paramètre à OFF. Cette valeur permet de s'assurer que lejournal binaire contient l'ensemble de la ligne, pas seulement les colonnesmodifiées.

Utilisation d'une base de données compatible avec MySQL etgérée par Amazon en tant que source pour AWS DMSVous pouvez utiliser les bases de données compatibles MySQL gérées par Amazon suivantes commesources pour AWS DMS :

• MySQL Community Edition• MariaDB Community Edition• Amazon Aurora avec compatibilité MySQL

Lorsque vous utilisez une base de données compatible MySQL gérée par Amazon comme source pourAWS DMS, veillez à ce que les prérequis suivants soient respectés :

• Activez les sauvegardes automatiques. Pour plus d'informations sur la configuration des sauvegardesautomatiques, consultez Utilisation des sauvegardes automatiques dans le guide Amazon RDS Guide del'utilisateur.

• Activez la journalisation binaire si vous envisagez d'utiliser la capture des données modifiées (CDC).Pour plus d'informations sur la configuration de la journalisation binaire pour une base de donnéesAmazon RDS MySQL, consultez Utilisation des sauvegardes automatiques dans le guide Amazon RDSGuide de l'utilisateur.

• Assurez-vous que les journaux binaires sont disponibles pour AWS DMS. Comme les bases de donnéescompatibles MySQL gérées par Amazon purgent les journaux binaires dès que possible, vous devezaugmenter la durée pendant laquelle les journaux demeurent disponibles. Par exemple, pour accroître larétention des journaux à 24 heures, exécutez la commande suivante.

call mysql.rds_set_configuration('binlog retention hours', 24);

• Définissez le paramètre binlog_format sur "ROW".• Définissez le paramètre binlog_checksum sur "NONE". Pour plus d'informations sur la configuration

des paramètres dans Amazon RDS MySQL, consultez Utilisation des sauvegardes automatiques dans leguide Amazon RDS Guide de l'utilisateur.

• Si vous utilisez un réplica en lecture Amazon RDS MySQL ou Amazon RDS MariaDB comme source,activez les sauvegardes sur le réplica en lecture.

Version de l'API API Version 2016-01-01184

Page 192: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Limites lors de l'utilisation d'une base de données MySQL commesource pour AWS DMSLorsque vous utilisez une base de données MySQL comme source, tenez compte des éléments suivants :

• La capture des données modifiées (CDC) n'est pas prise en charge pour Amazon RDS MySQL 5.5 et lesversions antérieures. Pour Amazon RDS MySQL, vous devez utiliser la version 5.6 ou 5.7 pour activerCDC.

• Les instructions en langage de définition de données (DDL) DROP TABLE et RENAME TABLE ne sontpas prises en charge. En outre, les instructions DDL pour les tables partitionnées ne sont pas pris encharge.

• Pour les tables partitionnées sur la source, lorsque vous définissez Target table preparation mode (Modede préparation des tables cibles) sur Drop tables on target (Supprimer les tables sur la cible), AWS DMScrée une table simple sans partition sur la cible MySQL. Pour migrer des tables partitionnées vers unetable partitionnée sur la cible, créez à l'avance les tables partitionnées sur la base de données MySQLcible.

• L'utilisation d'une instruction ALTER TABLEtable_name ADD COLUMN column_name pour ajouter descolonnes au début (FIRST) ou au milieu d'une table (AFTER) n'est pas prise en charge. Les colonnessont toujours ajoutées à la fin de la table.

• La capture des données modifiées (CDC) n'est pas prise en charge quand un nom de table contient descaractères minuscules et majuscules, et le moteur source est hébergé sur un système d'exploitation avecdes noms de fichier sensibles à la casse. Un exemple est Windows ou OS X utilisant HFS+.

• L'attribut AUTO_INCREMENT sur une colonne n'est pas migré vers une colonne de base de donnéescible.

• La capture des modifications n'est pas prise en charge lorsque les journaux binaires ne sont pas stockéssur un stockage en bloc standard. Par exemple, la capture des données modifiées (CDC) ne fonctionnepas lorsque les journaux binaires sont stockés sur Amazon S3.

• AWS DMS crée des tables cibles avec le moteur de stockage InnoDB par défaut. Si vous avez besoind'utiliser un moteur de stockage autre qu'InnoDB, vous devez créer manuellement la table et y migrer lesdonnées à l'aide du mode « Ne rien faire ».

• Vous ne pouvez pas utiliser les réplicas en lecture Aurora MySQL en tant que source pour AWS DMS.• Si la source compatible MySQL est arrêtée lors du chargement complet, la tâche AWS DMS ne s'arrête

pas avec une erreur. La tâche se termine avec succès, mais la cible peut ne pas être synchronisée avecla source. Si cela se produit, redémarrez la tâche ou rechargez les tables affectées.

• Les index créés sur une partie d'une valeur de colonne ne sont pas migrés. Par exemple, l'indexCREATE INDEX first_ten_chars ON customer (name(10)) n'est pas créé sur la cible.

• Dans certains cas, la tâche est configurée pour ne pas répliquer les objets LOB (« SupportLobs » apour valeur false dans les paramètres de tâche ou l'option « Ne pas inclure les colonnes LOB » estcochée dans la console de tâche). Dans ces cas, AWS DMS ne migre aucune colonne MEDIUMBLOB,LONGBLOB, MEDIUMTEXT ni LONGTEXT vers la cible.

Les colonnes BLOB, TINYBLOB, TEXT et TINYTEXT ne sont pas affectées et sont migrées vers la cible.

Attributs de connexion supplémentaires lors de l'utilisation deMySQL comme source pour AWS DMSVous pouvez utiliser des attributs de connexion supplémentaires pour configurer une source MySQL.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison source. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire (par exemple, oneSetting;thenAnother).

Version de l'API API Version 2016-01-01185

Page 193: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Le tableau suivant indique les attributs de connexion supplémentaires disponibles lorsque vous utilisezAmazon RDS MySQL comme source pour AWS DMS.

Nom Description

eventsPollInterval Spécifie la fréquence de vérification du journal binaire denouvelles modifications/événements lorsque la base dedonnées est inactif.

Valeur par défaut : 5

Valeurs valides : 1–60

Exemple: eventsPollInterval=5;

Dans cet exemple, AWS DMS recherche des modificationsdans les journaux binaires toutes les cinq secondes.

serverTimezone Spécifie le fuseau horaire de la base de données sourceMySQL.

Exemple: serverTimezone=US/Pacific;

Remarque : Ne placez pas les fuseaux horaires entreguillemets simples.

afterConnectScript Spécifie un script à exécuter immédiatement après laconnexion de AWS DMS au point de terminaison. La tâchede migration continue à s'exécuter, que l'instruction SQLréussisse ou échoue.

Valeurs valides : une ou plusieurs instructions SQL valides,séparées par un point-virgule.

Exemple: afterConnectScript=ALTER SESSION SETCURRENT_SCHEMA = system;

CleanSrcMetadataOnMismatch Nettoie et recrée les informations de métadonnées de tablesur l'instance de réplication lorsqu'une non-correspondancesurvient. Par exemple, dans le cas où l'exécution d'uneinstruction alter DDL sur la table pourrait générer desinformations différentes sur la table mise en cache dansl'instance de réplication. Booléen.

Valeur par défaut : false

Exemple: CleanSrcMetadataOnMismatch=false;

Types de données sources pour MySQLLe tableau suivant présente les types de données sources de bases de données MySQL qui sont pris encharge lorsque vous utilisez AWS DMS et le mappage par défaut des types de données AWS DMS.

Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection concernant le point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Version de l'API API Version 2016-01-01186

Page 194: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL comme source

Types de données MySQL Types de données AWS DMS

INT INT4

MEDIUMINT INT4

BIGINT INT8

TINYINT INT1

DECIMAL(10) NUMERIC (10,0)

BINARY BYTES(1)

BIT BOOLEAN

BIT(64) BYTES(8)

BLOB BYTES(66535)

LONGBLOB BLOB

MEDIUMBLOB BLOB

TINYBLOB BYTES(255)

DATE DATE

DATETIME DATETIME

TIME STRING

TIMESTAMP DATETIME

YEAR INT2

DOUBLE REAL8

FLOAT REAL(DOUBLE)

La plage de valeurs FLOAT est -1.79E+308 à-2.23E-308, 0 et 2.23E-308 à 1.79E+308

Si aucune valeur FLOAT ne figure dans cetteplage, mappez le type de données FLOAT sur letype de données STRING.

VARCHAR (45) WSTRING (45)

VARCHAR (2000) WSTRING (2000)

VARCHAR (4000) WSTRING (4000)

VARBINARY (4000) BYTES (4000)

VARBINARY (2000) BYTES (2000)

CHAR WSTRING

TEXT WSTRING (65535)

JSON NCLOB

Version de l'API API Version 2016-01-01187

Page 195: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme source

Types de données MySQL Types de données AWS DMS

LONGTEXT NCLOB

MEDIUMTEXT NCLOB

TINYTEXT WSTRING (255)

GEOMETRY BLOB

POINT BLOB

LINESTRING BLOB

POLYGON BLOB

MULTIPOINT BLOB

MULTILINESTRING BLOB

MULTIPOLYGON BLOB

GEOMETRYCOLLECTION BLOB

Note

• Si les types de données DATETIME et TIMESTAMP sont spécifiés avec une valeur« zéro » (c'est-à-dire, 0000-00-00), veillez à ce que la base de données cible dans la tâchede réplication prenne en charge les valeurs « zéro » pour les types de données DATETIME etTIMESTAMP. Dans le cas contraire, ces valeurs sont enregistrées en tant que valeurs NULLdans la cible.

• AWS DMS prend en charge le type de données JSON dans les versions 3.3.1 et ultérieures.

Les types de données MySQL suivants sont pris en charge en chargement complet uniquement.

Types de données MySQL Types de données AWS DMS

ENUM STRING

SET STRING

Utilisation d'une base de données SAP ASE commesource pour AWS DMSVous pouvez migrer les données à partir d'une base de données SAP Adaptative Server Enterprise (ASE)(anciennement Sybase) à l'aide d'——AWS DMS. Avec une base de données SAP ASE comme source,vous pouvez migrer des données vers toute autre base de données cible AWS DMS. AWS DMS prend encharge SAP ASE versions 12.5.3 et supérieures, 15, 15.5, 15.7, 16 et ultérieures comme sources.

Pour plus de détails sur l'utilisation des bases de données SAP ASE et d'AWS DMS, consultez les sectionssuivantes.

Rubriques• Conditions préalables à l'utilisation d'une base de données SAP ASE comme source pour AWS

DMS (p. 189)

Version de l'API API Version 2016-01-01188

Page 196: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme source

• Limites lors de l'utilisation de SAP ASE comme source pour AWS DMS (p. 191)• Autorisations requises pour l'utilisation de SAP ASE comme source pour AWS DMS (p. 191)• Suppression du point de troncature (p. 192)• Types de données sources pour SAP ASE (p. 192)

Conditions préalables à l'utilisation d'une base de données SAPASE comme source pour AWS DMSPour qu'une base de données SAP ASE soit une source pour AWS DMS, effectuez les opérationssuivantes :

• Activez la réplication SAP ASE pour les tables en utilisant la commande sp_setreptable.• Désactivez RepAgent sur la base de données SAP ASE.• Pour répliquer vers SAP ASE version 15.7 sur une instance Amazon EC2 sur Microsoft Windows

configuré pour les caractères non latins (par exemple, chinois), installez SAP ASE 15.7 SP121 surl'ordinateur cible.

• Spécifiez le jeu de caractères SAP ASE à l'aide de l'attribut de connexion supplémentaire charset.Définissez cet attribut sur le nom SAP ASE correspondant au jeu de caractères international,comme indiqué dans le tableau suivant. Par exemple, pour spécifier UTF-8, utilisez ce paramètre :charset=utf8;

Character Set Nom SAP ASE

ASCII 8 acsii_8

Big 5HK big5hk

CP 437 cp437

CP 850 cp850

CP 852 cp852

CP 855 cp852

CP 855 cp855

CP 857 cp857

CP 858 cp858

CP 860 cp860

CP 864 cp864

CP 866 cp866

CP 869 cp869

CP 874 cp874

CP 932 cp932

CP 936 cp936

CP 950 cp950

Version de l'API API Version 2016-01-01189

Page 197: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme source

Character Set Nom SAP ASE

CP 1250 cp1250

CP 1251 cp1251

CP 1252 cp1252

CP 1253 cp1253

CP 1254 cp1254

CP 1255 cp1255

CP 1256 cp1256

CP 1257 cp1257

CP 1258 cp1258

DEC Kanji deckanji

EUC-CNS euccns

EUC-GB eucgb

EUC-JIS eucjis

EUC-KSC eucksc

GB 18030 gb18030

GREEK8 greek8

ISO 8859-1 iso_1

ISO 8859-2 iso88592

ISO 8859-5 iso88595

ISO 8859-6 iso88596

ISO 8859-7 iso88597

ISO 8859-8 iso88598

ISO 8859-9 iso88599

ISO 8859-15 iso15

Kazakhstan Cyrillic kz1048

Koi8 koi8

ROMAN8 roman8

ROMAN9 iso88599

Shift-JIS sjis

TIS 620 tis620

TURKISH8 turkish8

Version de l'API API Version 2016-01-01190

Page 198: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme source

Character Set Nom SAP ASE

UTF-8 utf8

Pour toute question supplémentaire sur les jeux de caractères pris en charge dans une base de donnéesSAP ASE, veuillez consulter la page relative aux caractères pris en charge par Adaptive Server

Limites lors de l'utilisation de SAP ASE comme source pour AWSDMSLes limites suivantes s'appliquent lors de l'utilisation d'une base de données SAP ASE comme source pourAWS DMS :

• Une seule tâche AWS DMS peut être exécutée pour chaque base de données SAP ASE.• Vous ne pouvez pas renommer une table. Par exemple, la commande suivante échoue :

sp_rename 'Sales.SalesRegion', 'SalesReg;

• Vous ne pouvez pas renommer une colonne. Par exemple, la commande suivante échoue :

sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';

• Les valeurs zéro situées à la fin des chaînes de type de données binaires sonttronqués lors de la réplication vers la base de données cible. Par exemple,0x0000000000000000000000000100000100000000 dans la table source devient0x00000000000000000000000001000001 dans la table cible.

• Si la base de données est configurée par défaut pour ne pas autoriser les valeurs NULL, AWS DMS créela table cible avec des colonnes qui n'autorisent pas les valeurs NULL. Par conséquent, si une tâchede réplication de chargement complet ou de capture des changements de données (CDC) contient desvaleurs vides, AWS DMS émet une erreur. Vous pouvez éviter ces erreurs en autorisant les valeursNULL dans la base de données source à l'aide des commandes suivantes.

sp_dboption database_name, 'allow nulls by default', 'true'gouse database_nameCHECKPOINTgo

• La commande d'index reorg rebuild n'est pas prise en charge.• Les clusters ne sont pas pris en charge.

Autorisations requises pour l'utilisation de SAP ASE commesource pour AWS DMSPour utiliser une base de données SAP ASE comme source dans une tâche AWS DMS, accordez aucompte utilisateur spécifié dans les définitions de base de données AWS DMS les autorisations suivantesdans la base de données SAP ASE.

• sa_role• replication_role• sybase_ts_role

Version de l'API API Version 2016-01-01191

Page 199: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme source

• Si vous activez l'option Automatically enable Sybase replication (Activer automatiquement la réplicationSybase) dans l'onglet Advanced (Avancé) lorsque vous créez le point de terminaison source SAP ASE,accordez également à AWS DMS l'autorisation d'exécuter la procédure stockée sp_setreptable.

Suppression du point de troncatureLorsqu'une tâche démarre, AWS DMS crée une entrée $replication_truncation_point dans lavue du système syslogshold, ce qui indique qu'un processus de réplication est en cours. Pendant queAWS DMS fonctionne, il avance le point de troncature de réplication à intervalles réguliers, en fonction dela quantité de données qui a déjà été copiée dans la cible.

Une fois l'entrée $replication_truncation_point établie, maintenez la tâche AWS DMS en coursd'exécution pour empêcher le journal de base de données de devenir trop volumineux. Si vous souhaitezarrêter définitivement la tâche AWS DMS, supprimez le point de troncature de réplication en exécutant lacommande suivante :

dbcc settrunc('ltm','ignore')

Une fois le point de troncature supprimé, vous ne pouvez pas reprendre la tâche AWS DMS. Le journalcontinue d'être tronqué automatiquement aux points de contrôle (si la troncature est configurée).

Types de données sources pour SAP ASEPour obtenir la liste des types de données sources SAP ASE pris en charge lorsque vous utilisez AWSDMS et le mappage par défaut des types de données AWS DMS, veuillez consulter le tableau suivant.AWS DMS ne prend pas en charge les tables sources SAP ASE ayant des colonnes de type UDT (typedéfini par l'utilisateur). Les colonnes répliquées avec ce type de données sont créées en tant que NULL.

Pour plus d'informations sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection Cibles pour la migration des données (p. 208) relative à votre point de terminaison cible.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Type de données SAP ASE Types de données AWS DMS

BIGINT INT8

BINARY BYTES

BIT BOOLEAN

CHAR STRING

DATE DATE

DATETIME DATETIME

DECIMAL NUMERIC

DOUBLE REAL8

FLOAT REAL8

IMAGE BLOB

INT INT4

Version de l'API API Version 2016-01-01192

Page 200: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MongoDB comme source

Type de données SAP ASE Types de données AWS DMS

MONEY NUMERIC

NCHAR WSTRING

NUMERIC NUMERIC

NVARCHAR WSTRING

REAL REAL4

SMALLDATETIME DATETIME

SMALLINT INT2

SMALLMONEY NUMERIC

TEXT CLOB

TIME TIME

TINYINT UINT1

UNICHAR UNICODE CHARACTER

UNITEXT NCLOB

UNIVARCHAR UNICODE

VARBINARY BYTES

VARCHAR STRING

Utilisation de MongoDB comme source pour AWSDMSAWS DMS prend en charge les versions 2.6.x et 3.x MongoDB comme source de base de données.

Si vous n'êtes pas encore familiarisé avec MongoDB, soyez conscient des concepts importants suivantsrelatifs aux bases de données MongoDB :

• Un enregistrement dans MongoDB est un document, c'est-à-dire une structure de données composéede paires champ-valeur. La valeur d'un champ peut contenir d'autres documents, tableaux et tableauxde documents. Un document correspond à peu près à une ligne dans une table de base de donnéesrelationnelle.

• Une collection dans MongoDB est un groupe de documents et équivaut à peu près à une table de basede données relationnelle.

• Au niveau interne, un document MongoDB est stocké sous forme de fichier JSON binaire (BSON) dansun format compressé qui contient un type pour chaque champ du document. Chaque document présenteun ID unique.

AWS DMS prend en charge deux modes de migration lorsque MongoDB est utilisé comme source. Vousspécifiez le mode de migration à l'aide du paramètre Metadata mode (Mode de métadonnées) en utilisantAWS Management Console ou l'attribut de connexion supplémentaire nestingLevel lorsque vous créezle point de terminaison MongoDB. Le choix du mode de migration affecte le format résultant des donnéescible, comme indiqué ci-après.

Version de l'API API Version 2016-01-01193

Page 201: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MongoDB comme source

Mode document

En mode document, le document MongoDB est migré tel quel, ce qui signifie que ses données sontregroupées en une seule colonne nommée _doc dans une table cible. Le mode document est définipar défaut lorsque MongoDB est utilisé comme point de terminaison source.

Prenons l'exemple des documents suivants dans une collection MongoDB appelée myCollection.

> db.myCollection.find(){ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }

Une fois les données migrées vers une table de base de données relationnelle à l'aide du modedocument, les données sont structurées comme suit. Les champs de données du document MongoDBsont regroupés dans la colonne _doc.

oid_id _doc

5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }

5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }

Vous pouvez éventuellement définir l'attribut de connexion supplémentaire extractDocID sur truepour créer une seconde colonne nommée "_id", qui servira de clé primaire. Si vous souhaitez utiliserla capture de données modifiées (CDC), définissez ce paramètre sur true sauf lorsque vous utilisezAmazon DocumentDB comme cible.

En mode document, AWS DMS gère la création et le changement de nom des collections comme suit :• Si vous ajoutez une nouvelle collection à la base de données source, AWS DMS crée une nouvelle

table cible pour la collection et réplique tous les documents.• Si vous renommez une collection existante dans la base de données source, AWS DMS ne

renomme pas la table cible.Mode table

En mode table, AWS DMS transforme chaque champ de niveau supérieur d'un document MongoDB enune colonne dans la table cible. Si un champ est imbriqué, AWS DMS aplatit les valeurs imbriquées enune seule colonne. AWS DMS ajoute ensuite un champ clé et des types de données à l'ensemble decolonnes de la table cible.

Pour chaque document MongoDB, AWS DMS ajoute chaque clé et type à l'ensemble de colonnes dela table cible. Par exemple, en utilisant le mode table, AWS DMS migre l'exemple précédent dans latable suivante.

oid_id a b c

5a94815f40bd44d1b02bdfe01 2 3

5a94815f40bd44d1b02bdfe14 5 6

Les valeurs imbriquées sont mises à plat dans une colonne contenant des noms de clé séparés parun point. La colonne est nommée en utilisant la forme concaténée des noms de champs mis à plat,séparés par des points. Par exemple, AWS DMS migre un document JSON avec un champ de valeursimbriquées tel que {"a" : {"b" : {"c": 1}}} dans une colonne nommée a.b.c.

Version de l'API API Version 2016-01-01194

Page 202: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MongoDB comme source

Pour créer les colonnes cibles, AWS DMS analyse un nombre spécifié de documents MongoDB etcrée un ensemble regroupant tous les champs et leurs types. AWS DMS utilise ensuite cet ensemblepour créer les colonnes de la table cible. Si vous créez ou modifiez votre point de terminaison sourceMongoDB à l'aide de la console , vous pouvez spécifier le nombre de documents à analyser. La valeurpar défaut est de 1000 documents. Si vous utilisez l'interface de ligne de commande AWS, vouspouvez utiliser l'attribut de connexion supplémentaire docsToInvestigate.

En mode table, AWS DMS gère les documents et les collections comme suit :• Lorsque vous ajoutez un document à une collection existante, le document est répliqué. Si certains

champs ne figurent pas dans la cible, ils ne sont pas répliqués.• Lorsque vous mettez à jour un document, celui-ci est répliqué. Si certains champs ne figurent pas

dans la cible, ils ne sont pas répliqués.• La suppression d'un document est pleinement prise en charge.• L'ajout d'une nouvelle collection n'entraîne pas la création d'une nouvelle table dans la cible lorsque

cela est effectué durant une tâche CDC.• La modification du nom d'une collection n'est pas prise en charge.

Autorisations nécessaires lors de l'utilisation de MongoDB commesource pour AWS DMSPour une migration AWS DMS avec une source MongoDB, vous pouvez créer un compte utilisateur avecdes privilèges racine ou un utilisateur avec des autorisations uniquement sur la base de données à migrer.

Le code suivant permet de créer un utilisateur qui sera le compte racine.

use admindb.createUser( { user: "root", pwd: "password", roles: [ { role: "root", db: "admin" } ] })

Le code suivant permet de créer un utilisateur avec des autorisations minimales sur la base de données àmigrer.

use database_to_migratedb.createUser( { user: "dms-user", pwd: "password", roles: [ { role: "read", db: "local" }, "read"] })

Configuration d'un ensemble de réplicas MongoDB pour lacapture des données modifiées (CDC)Pour utiliser la réplication continue ou la capture des changements de données (CDC) avec MongoDB,AWS DMS a besoin d'accéder au journal des opérations MongoDB (oplog). Pour créer le journal oplog,vous devez déployer un ensemble de réplicas, s'il n'en existe pas encore. Pour obtenir plus d'informations,consultez la documentation MongoDB.

Version de l'API API Version 2016-01-01195

Page 203: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MongoDB comme source

Vous pouvez utiliser la capture des données modifiées (CDC) avec le nœud principal ou secondaire d'unensemble de réplicas MongoDB comme point de terminaison source.

Pour convertir une instance autonome en un ensemble de réplicas

1. Utilisation d'une ligne de commande, se connecter à mongo.

mongo localhost

2. Arrêtez le service mongod.

service mongod stop

3. Redémarrez mongod à l'aide de la commande suivante :

mongod --replSet "rs0" --auth -port port_number

4. Testez la connexion à l'ensemble de réplicas à l'aide des commandes suivantes :

mongo -u root -p password --host rs0/localhost:port_number --authenticationDatabase "admin"

Si vous prévoyez d'effectuer une migration en mode document, sélectionnez l'option _id as aseparate column lors de la création du point de terminaison MongoDB. La sélection de cette optionpermet de créer une seconde colonne nommée _id, qui agit en tant que clé primaire. Cette deuxièmecolonne est nécessaire pour qu'AWS DMS puisse prendre en charge les opérations de langage demanipulation de données (DML).

Exigences de sécurité lors de l'utilisation de MongoDB commesource pour AWS DMSAWS DMS prend en charge deux méthodes d'authentification pour MongoDB. Les deux méthodesd'authentification sont utilisées pour chiffrer le mot de passe. Elles sont donc utilisées uniquement lorsquele paramètre authType est défini sur PASSWORD.

Les méthodes d'authentification MongoDB sont les suivantes :

• MONGODB-CR – Paramètre par défaut lorsque l'authentification MongoDB 2.x est utilisée.• SCRAM-SHA-1 – Paramètre par défaut lorsque l'authentification MongoDB version 3.x est utilisée.

Si aucune méthode d'authentification n'est spécifiée, AWS DMS utilise la méthode par défaut pour laversion de la source MongoDB.

Limites lors de l'utilisation de MongoDB comme source pour AWSDMSLes limites suivantes s'appliquent lorsque MongoDB est utilisé comme source pour AWS DMS :

• Lorsque l'option _id est définie comme une colonne distincte, la chaîne d'ID ne peut pas contenir plusde 200 caractères.

• Les clés de type de tableau et d'ID d'objet sont converties en colonnes dotées des préfixes array et oiden mode table.

Version de l'API API Version 2016-01-01196

Page 204: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MongoDB comme source

En interne, ces colonnes sont référencées avec les noms préfixés. Si vous utilisez des règles detransformation dans AWS DMS qui font référence à ces colonnes, vous devez spécifier la colonnepréfixée. Par exemple, vous spécifiez ${oid__id} et pas ${_id}, ou ${array__addresses} et pas${_addresses}.

• Les noms de collection ne peuvent pas contenir le symbole du dollar ($).• Le mode table et le mode document ont les limitations décrites précédemment.

Attributs de connexion supplémentaires lors de l'utilisation deMongoDB comme source pour AWS DMSLorsque vous définissez votre point de terminaison MongoDB source, vous pouvez spécifier des attributsde connexion supplémentaires. Les attributs de connexion supplémentaires sont spécifiés par des pairesclé-valeur. Si vous avez plusieurs paramètres d'attribut de connexion, séparez-les les uns des autres pardes points-virgules, sans espace supplémentaire (par exemple, oneSetting;thenAnother).

Le tableau suivant décrit les attributs de connexion supplémentaires disponibles lorsque vous utilisez desbases de données MongoDB comme source AWS DMS.

Nom d'attribut Valeurs valides Valeur par défaut et description

authType NO

PASSWORD

PASSWORD – lorsque NO est sélectionné, les paramètresdu nom d'utilisateur et du mot de passe ne sont pas utiliséset peuvent être vides.

authMechanismDEFAULT

MONGODB_CR

SCRAM_SHA_1

DEFAULT – Pour MongoDB version 2.x, utilisezMONGODB_CR. Pour MongoDB version 3.x, utilisezSCRAM_SHA_1. Cet attribut n'est pas utilisé lorsqueauthType=NO.

nestingLevel NONE

ONE

NONE – Spécifiez NONE pour activer le mode document.Spécifiez ONE pour activer le mode table.

extractDocID vrai

false

false – Utilisez cet attribut lorsque nestingLevel est définià NONE.

docsToInvestigateUn nombre entier positifsupérieur à 0.

1000 – Utilisez cet attribut lorsque nestingLevel est définià ONE.

authSource Un nom de base dedonnées MongoDBvalide.

admin – Cet attribut n'est pas utilisé lorsque authType=NO.

Note

Si le point de terminaison cible est DocumentDB, assurez-vous que les attributs de connexionsupplémentaires pour la source MongoDB sont définis comme suit :

• nestingLevel=NONE

• extractDocID=false

Version de l'API API Version 2016-01-01197

Page 205: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

Pour plus d'informations, consultez Utilisation d'Amazon DocumentDB comme cible pourAWS Database Migration Service (p. 301).

Types de données sources pour MongoDBLa migration des données qui utilise MongoDB comme source pour AWS DMS prend en charge la plupartdes types de données MongoDB. Dans le tableau suivant, vous pouvez trouver les types de donnéessources MongoDB qui sont pris en charge lorsque vous utilisez AWS DMS et le mappage par défaut destypes de données AWS DMS. Pour plus d'informations sur les types de données MongoDB, consultezTypes BSON dans la documentation MongoDB.

Pour obtenir des informations sur la façon d'afficher le type de données qui est mappé dans la cible,consultez la section relative au point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Types de données MongoDB Types de données AWS DMS

Booléen Bool

Binaire BLOB

Date Date

Horodatage Date

Int INT4

Long INT8

Double REAL8

Chaîne (UTF-8) CLOB

Array CLOB

OID String

REGEX CLOB

CODE CLOB

Utilisation de Amazon S3 comme source pour AWSDMSVous pouvez migrer les données d'un compartiment Amazon S3 à l'aide d'AWS DMS. Pour ce faire,fournissez un accès à un compartiment Amazon S3 contenant un ou plusieurs fichiers de données. Dansce compartiment S3, incluez un fichier JSON qui décrit la mise en correspondance entre les données et lestables de base de données de ces données dans ces fichiers.

Les fichiers de données sources doivent être présents dans le compartiment Amazon S3 avant lecommencement du chargement complet. Vous spécifiez le nom de compartiment à l'aide du paramètrebucketName.

Les fichiers de données sources doivent être au format .csv (valeurs séparées par des virgules). Nommez-les à l'aide de la convention d'affectation de noms suivante. Dans cette convention, schemaName est leschéma source et tableName est le nom d'une table dans ce schéma.

Version de l'API API Version 2016-01-01198

Page 206: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

/schemaName/tableName/LOAD001.csv/schemaName/tableName/LOAD002.csv/schemaName/tableName/LOAD003.csv...

Par exemple, supposons que vos fichiers de données soient dans mybucket, dans le chemin Amazon S3suivant.

s3://mybucket/hr/employee

Au moment du chargement, AWS DMS suppose que le nom du schéma source est hr et que le nom de latable source est employee.

Outre bucketName (qui est requis), vous pouvez éventuellement fournir un paramètre bucketFolderpour spécifier où AWS DMS doit rechercher les fichiers de données dans le compartiment Amazon S3.Pour continuer avec l'exemple précédent, si vous définissez bucketFolder sur sourcedata, AWS DMS litles fichiers de données correspondant au chemin suivant.

s3://mybucket/sourcedata/hr/employee

Vous pouvez spécifier le délimiteur de colonne, le délimiteur de ligne, l'indicateur de valeur null et d'autresparamètres à l'aide d'attributs de connexion supplémentaires. Pour plus d'informations, consultez Attributsde connexion supplémentaires pour l'utilisation de Amazon S3 comme source pour AWS DMS (p. 203).

Définition des tables externes pour Amazon S3 comme sourcepour AWS DMSEn plus des fichiers de données, vous devez fournir une définition de table externe. Une définition de tableexterne est un document JSON qui décrit comment AWS DMS doit interpréter les données à partir deAmazon S3. La taille maximale de ce document est de 2 Mo. Si vous créez un point de terminaison sourceà l'aide de la console de gestion AWS DMS, vous pouvez entrer le fichier JSON directement dans la zonede mappage de table. Si vous utilisez l'AWS Command Line Interface (AWS CLI) ou l'API AWS DMS poureffectuer des migrations, vous pouvez créer un fichier JSON pour spécifier la définition de table externe.

Supposons que vous disposez d'un fichier de données qui inclut les éléments suivants.

101,Smith,Bob,2014-06-04,New York102,Smith,Bob,2015-10-08,Los Angeles103,Smith,Bob,2017-03-13,Dallas104,Smith,Bob,2017-03-13,Dallas

Voici un exemple de définition de table externe pour ces données.

{ "TableCount": "1", "Tables": [ { "TableName": "employee", "TablePath": "hr/employee/", "TableOwner": "hr", "TableColumns": [ { "ColumnName": "Id", "ColumnType": "INT8", "ColumnNullable": "false", "ColumnIsPk": "true" },

Version de l'API API Version 2016-01-01199

Page 207: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

{ "ColumnName": "LastName", "ColumnType": "STRING", "ColumnLength": "20" }, { "ColumnName": "FirstName", "ColumnType": "STRING", "ColumnLength": "30" }, { "ColumnName": "HireDate", "ColumnType": "DATETIME" }, { "ColumnName": "OfficeLocation", "ColumnType": "STRING", "ColumnLength": "20" } ], "TableColumnsTotal": "5" } ]}

Les éléments figurant dans ce document JSON sont les suivants :

TableCount – Nombre de tables source. Cet exemple comporte une seule table.

Tables – Tableau comprenant une carte JSON par table source. Cet exemple comporte une seule carte.Chaque carte comprend les éléments suivants :

• TableName – Nom de la table source.• TablePath – Chemin dans votre compartiment Amazon S3 où AWS DMS peut trouver le fichier de

chargement complet des données. Si une valeur bucketFolder est spécifiée, cette valeur est ajoutéeen préfixe au chemin.

• TableOwner – Nom du schéma pour cette table.• TableColumns – Tableau d'une ou plusieurs mappes, dont chacune décrit une colonne de la table

source :• ColumnName – Nom d'une colonne de la table source.• ColumnType – Type de données de la colonne. Pour connaître les types de données valides,

consultez Types de données sources pour Amazon S3 (p. 204).• ColumnLength – Nombre d'octets dans cette colonne. La longueur maximale d’une colonne est

limitée à 2 147 483 647 octets (2 047 mégaoctets), car une source S3 ne prend pas en charge le modeFULL LOB.

• ColumnNullable – (facultatif) Valeur booléenne égale à true si cette colonne peut contenir desvaleurs NULL.

• ColumnIsPk – (facultatif) Valeur booléenne égale à true si cette colonne fait partie de la clé primaire.• TableColumnsTotal – Nombre total de colonnes. Ce nombre doit correspondre au nombre d'éléments

dans le tableau TableColumns.

ColumnLength s'applique pour les types de données suivants :

• BYTE• STRING

Sauf spécification contraire, AWS DMS suppose que ColumnLength a pour valeur zéro.

Version de l'API API Version 2016-01-01200

Page 208: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

Note

Dans DMS 3.1.4 et versions ultérieures, les données source S3 peuvent également contenirune colonne d'opération facultative comme première colonne avant la valeur de la colonneTableName. Cette colonne d'opération identifie l'opération (INSERT) utilisée pour migrer lesdonnées vers un point de terminaison cible S3 lors d'un chargement complet.Si elle est présente, la valeur de cette colonne est le caractère initial du mot-clé de l'opérationINSERT (I). Si cette valeur est spécifiée, cette colonne indique généralement que la source S3 aété créée par DMS en tant que cible S3 au cours d'une migration précédente.Dans les versions de DMS précédentes, cette colonne n'était pas présente dans les donnéessource S3 créées à partir d'un chargement complet DMS précédent. L'ajout de cette colonne auxdonnées cible S3 permet au format de toutes les lignes écrites dans la cible S3 d'être cohérentsi celles-ci sont écrites lors d'un chargement complet ou d'un chargement CDC. Pour plusd'informations sur les options pour le formatage des données S3 cible, consultez Indication desopérations de base de données source dans des données S3 migrées (p. 265).

Pour une colonne de type NUMERIC, spécifiez la précision et l'échelle. La précision est le nombre totalde chiffres dans un nombre et l'échelle est le nombre de chiffres à droite de la virgule. Vous utilisez leséléments ColumnPrecision et ColumnScale pour cela, comme indiqué ci-après.

... { "ColumnName": "HourlyRate", "ColumnType": "NUMERIC", "ColumnPrecision": "5" "ColumnScale": "2" }...

Utilisation de CDC avec Amazon S3 comme source pour AWSDMSUne fois qu'AWS DMS a effectué un chargement complet des données, il peut éventuellement répliquer lesmodifications des données au point de terminaison cible. Pour ce faire, vous chargez les fichiers de capturedes données modifiées (fichiers CDC) dans votre compartiment Amazon S3. AWS DMS lit ces fichiers CDClorsque vous les chargez, puis applique les modifications au point de terminaison cible.

Les fichiers CDC sont nommés comme suit :

CDC00001.csvCDC00002.csvCDC00003.csv...

Note

Pour répliquer des fichiers CDC dans le dossier des données de modification, chargez-les dansun ordre lexical (séquentiel). Par exemple, chargez le fichier CDC00002.csv avant le fichierCDC00003.csv. Dans le cas contraire, si vous chargez le fichier CDC00002.csv après le fichierCDC00003.csv, le premier est ignoré et n’est pas répliqué. Mais le fichier CDC00004.csv estrépliqué avec succès s'il est chargé après CDC00003.csv.

Pour indiquer où AWS DMS peut trouver ces fichiers, vous devez spécifier le paramètre cdcPath. Pourcontinuer avec l'exemple précédent, si vous définissez cdcPath sur changedata, AWS DMS lit lesfichiers CDC correspondant au chemin suivant.

s3://mybucket/changedata

Version de l'API API Version 2016-01-01201

Page 209: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

Les enregistrements figurant dans un fichier CDC sont formatés comme suit :

• Opération – Opération de modification à effectuer : INSERT ou I, UPDATE ou U, ou DELETE ou D. Cesmot-clé et ces valeurs de caractères ne sont pas sensibles à la casse.

Note

Dans AWS DMS versions 3.1.4 et ultérieures, DMS peut identifier l'opération à effectuer pourchaque enregistrement de chargement de deux manières. DMS peut le faire à partir de la valeurde mot-clé de l'enregistrement (par exemple, INSERT) ou de son caractères initial de mot-clé(par exemple, I). Dans les versions précédentes, DMS reconnaît l'opération de chargementuniquement à partir de la valeur de mot-clé complète.Pour les versions précédentes de DMS, la valeur de mot-clé complète était écrite pourconsigner les données CDC. Les versions précédentes écrivaient la valeur d'opération sur toutecible S3 à l'aide uniquement du mot-clé initial.La reconnaissance des deux formats permet à DMS de gérer l'opération, quelle que soit la façondont la colonne d'opération est écrite pour créer les données source S3. Cette approche prenden charge l'utilisation de données cible S3 comme source pour une migration ultérieure. Aveccette approche, vous n'avez pas besoin de modifier le format de la valeur initiale d'un mot-cléqui apparaît dans la colonne d'opération de la source S3 ultérieure.

• Nom de la table – Nom de la table source.• Nom du schéma – Nom du schéma source.• Données – Une ou plusieurs colonnes qui représentent les données à modifier.

Voici un exemple de fichier CDC pour une table nommée employee.

INSERT,employee,hr,101,Smith,Bob,2014-06-04,New YorkUPDATE,employee,hr,101,Smith,Bob,2015-10-08,Los AngelesUPDATE,employee,hr,101,Smith,Bob,2017-03-13,DallasDELETE,employee,hr,101,Smith,Bob,2017-03-13,Dallas

Conditions préalables lors de l'utilisation de Amazon S3 commesource pour AWS DMSPour utiliser Amazon S3 comme source pour AWS DMS, votre compartiment S3 source doit se trouverdans la même région AWS que l'instance de réplication DMS qui migre vos données. De plus, le compteAWS que vous utilisez pour la migration doit avoir un accès en lecture au compartiment source.

Le rôle AWS Identity and Access Management (IAM) assigné au compte utilisateur utilisé pour créer unetâche de migration doit bénéficier de l'ensemble d'autorisations suivant.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mybucket*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket"

Version de l'API API Version 2016-01-01202

Page 210: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

], "Resource": [ "arn:aws:s3:::mybucket*" ] } ]}

Attributs de connexion supplémentaires pour l'utilisation deAmazon S3 comme source pour AWS DMSVous pouvez spécifier l'une des options suivantes en tant qu'attributs de connexion supplémentaires.

Option Description

bucketFolder (Facultatif) Un nom de dossier dans le compartiment S3. Si cet attribut estspécifié, les fichiers de données sources et les fichiers CDC sont lus à partirdu chemin bucketFolder/schemaName/tableName/. Si cet attribut n'estpas spécifié, le chemin utilisé est schemaName/tableName/. Un exemplesuit.

bucketFolder=testFolder;

bucketName Nom du compartiment S3. Un exemple suit.

bucketName=buckettest;

cdcPath L'emplacement des fichiers de capture des données modifiées (CDC). Cetattribut est requis si une tâche capture les données modifiées ; dans le cascontraire, il est facultatif. Si cdcPath est présent, AWS DMS lit les fichiersCDC à partir de ce chemin et réplique les modifications des données au pointde terminaison cible. Pour plus d'informations, consultez Utilisation de CDCavec Amazon S3 comme source pour AWS DMS (p. 201). Un exemple suit.

cdcPath=dataChanges;

csvDelimiter Le délimiteur utilisé pour séparer les colonnes des fichiers sources. La valeurpar défaut est une virgule. Un exemple suit.

csvDelimiter=,;

csvRowDelimiter Le délimiteur utilisé pour séparer les lignes des fichiers sources. La valeur pardéfaut est un caractère de saut de ligne (\n). Un exemple suit.

csvRowDelimiter=\n;

externalTableDefinitionUn objet JSON qui décrit comment AWS DMS doit interpréter lesdonnées dans le compartiment Amazon S3 lors de la migration. Pour plusd'informations, consultez Définition des tables externes pour Amazon S3comme source pour AWS DMS (p. 199). Un exemple suit.

externalTableDefinition=json_object;

ignoreHeaderRows Lorsque cette valeur est définie sur 1, AWS DMS ignore la première ligned'en-tête dans un fichier .csv. La valeur 1 active la fonctionnalité, la valeur 0désactive la fonctionnalité. La valeur par défaut est 0.

ignoreHeaderRows=1;

Version de l'API API Version 2016-01-01203

Page 211: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme source

Option Description

rfc4180 Lorsque cette valeur est définie sur true ou y, chaque guillemet double detête doit être suivi d'un guillemet double de fin. Ce format est conforme à RFC4180. Lorsque ce paramètre est défini sur false, les chaînes littérales sontcopiées vers la cible en l'état. Dans ce cas, un délimiteur de colonne ou deligne indique la fin du champ. Par conséquent, vous ne pouvez pas utiliser undélimiteur dans le cadre de la chaîne, car il indique une fin de la valeur.

La valeur par défaut est true.

Valeurs valides : true, false, y, n

Exemple :

rfc4180=false;

Types de données sources pour Amazon S3La migration de données qui utilise Amazon S3 comme source pour AWS DMS doit mapper les donnéesissues d'Amazon S3 aux types de données AWS DMS. Pour plus d'informations, consultez Définition destables externes pour Amazon S3 comme source pour AWS DMS (p. 199).

Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez lasection concernant le point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Les types de données AWS DMS suivants sont utilisés avec Amazon S3 comme source :

• BYTE – requiert ColumnLength. Pour plus d'informations, consultez Définition des tables externes pourAmazon S3 comme source pour AWS DMS (p. 199).

• DATE• TIME• DATETIME• TIMESTAMP• INT1• INT2• INT4• INT8• NUMERIC – requiert ColumnPrecision et ColumnScale. Pour plus d'informations, consultez

Définition des tables externes pour Amazon S3 comme source pour AWS DMS (p. 199).• REAL4• REAL8• STRING – requiert ColumnLength. Pour plus d'informations, consultez Définition des tables externes

pour Amazon S3 comme source pour AWS DMS (p. 199).• UINT1• UINT2• UINT4• UINT8

Version de l'API API Version 2016-01-01204

Page 212: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'IBM Db2 LUW comme source

• BLOB• CLOB• BOOLEAN

Utilisation d'une base de données IBM Db2 pourLinux, Unix et Windows (Db2 LUW) comme sourcepour AWS DMSVous pouvez migrer des données à partir d'une base de données IBM Db2 pour Linux, Unixet Windows (Db2 LUW) vers n'importe quelle base de données cible prise en charge à l'aided'AWS Database Migration Service (AWS DMS). AWS DMS prend en charge les versions suivantes deDb2 LUW en tant que sources de migration :

• Version 9.7, avec tous les Fix Packs pris en charge.• Version 10.1, avec tous les Fix Packs pris en charge.• Version 10.5, avec tous les Fix Packs pris en charge, à l'exception du Fix Pack 5.• Version 11.1, avec tous les Fix Packs pris en charge.

Vous pouvez utiliser le protocole SSL pour chiffrer les connexions entre votre point de terminaison Db2LUW et l'instance de réplication. Pour utiliser SSL, utilisez le moteur AWS DMS version 2.4.2 ou ultérieure.Pour plus d'informations sur l'utilisation de SSL avec un point de terminaison Db2 LUW, consultezUtilisation du protocole SSL avec AWS Database Migration Service (p. 81).

Conditions préalables à l'utilisation de Db2 LUW comme sourcepour AWS DMSLes conditions préalables suivantes sont requises pour que vous puissiez utiliser une base de donnéesDb2 LUW comme source.

Pour activer la réplication continue, également appelée capture de données modifiées (CDC), effectuez lesopérations suivantes :

• Définissez la base de données comme étant récupérable, ce dont AWS DMS a besoin pour capturer lesmodifications. Une base de données est récupérable si l'un des paramètres de configuration de basede données LOGARCHMETH1 ou LOGARCHMETH2 est défini sur ON ou si les deux paramètres sontdéfinis sur ON.

• Accordez les autorisations suivantes au compte utilisateur :

SYSADM ou DBADM

DATAACCESS

Limites d'utilisation de Db2 LUW comme source pour AWS DMSAWS DMS ne prend pas en charge les bases de données en cluster. Toutefois, vous pouvez définirune base de données Db2 LUW distincte pour chacun des points de terminaison d'un cluster. Pour plusd'informations, consultez la documentation Db2 LUW.

Les limitations suivantes s'appliquent lorsque vous utilisez la réplication continue (CDC) :

Version de l'API API Version 2016-01-01205

Page 213: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'IBM Db2 LUW comme source

• Lorsqu'une table avec plusieurs partitions est tronquée, le nombre d'événements DDL affichés dans laconsole AWS DMS est égal au nombre de partitions. En effet, Db2 LUW enregistre une DDL distinctepour chaque partition.

• Les actions de DDL suivantes ne sont pas prises en charge sur les tables partitionnées :• ALTER TABLE ADD PARTITION• ALTER TABLE DETACH PARTITION• ALTER TABLE ATTACH PARTITION

• Le type de données DECFLOAT n'est pas pris en charge. Par conséquent, les modifications apportéesaux colonnes DECFLOAT sont ignorées lors de la réplication continue.

• L'instruction RENAME COLUMN n'est pas prise en charge.• Lorsque vous apportez des mises à jour à des tables MDC (Multi-Dimensional Clustering, mise en cluster

multi-dimensionnelle), chaque mise à jour est affichée dans la console AWS DMS sous la forme INSERT+DELETE.

• Lorsque le paramètre de tâche Include LOB columns in replication (Inclure les colonnes LOB dansla réplication) n'est pas activé, toute table comportant des colonnes LOB est suspendue pendant laréplication continue.

• Lorsque l'option de table d'audit est activée, le premier horodatage de la table d'audit est NULL.• Lorsque l'option de table de modification est activée, le premier horodatage dans la table est zéro (c'est-

à-dire, 1970-01-01 00:00:00.000000).• Pour Db2 LUW versions 10.5 et ultérieures : les colonnes de chaîne de longueur variable, avec des

données qui sont stockées en dehors des lignes, sont ignorées. Cette restriction s'applique uniquementaux tables créées avec une taille de ligne étendue.

Attributs de connexion supplémentaires lors de l'utilisation de Db2LUW comme source pour AWS DMSVous pouvez utiliser des attributs de connexion supplémentaires pour configurer votre source Db2 LUW.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison source. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire (par exemple, oneSetting;thenAnother).

Le tableau suivant indique les attributs de connexion supplémentaires que vous pouvez utiliser avec Db2LUW comme source.

Nom Description

CurrentLSN Pour une réplication en continu (CDC), utilisez CurrentLSNpour spécifier un numéro de séquence de journal où vousvoulez que la réplication démarre.

MaxKBytesPerRead Nombre maximal d'octets par lecture, sous forme d'une valeurNUMÉRIQUE (NUMBER). La valeur par défaut est de 64 Ko.

SetDataCaptureChanges Active la réplication en continu (CDC) en tant que valeurBOOLEENNE. Par défaut, la valeur est true.

Types de données source pour IBM Db2 LUWLa migration des données qui utilise Db2 LUW comme source pour AWS DMS prend en charge la plupartdes types de données Db2 LUW. Le tableau suivant présente les types de données sources Db2 LUW qui

Version de l'API API Version 2016-01-01206

Page 214: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'IBM Db2 LUW comme source

sont pris en charge lorsque vous utilisez AWS DMS et le mappage par défaut des types de données AWSDMS. Pour plus d'informations sur les types de donnée Db2 LUW, consultez la documentation Db2 LUW.

Pour obtenir des informations sur la façon d'afficher le type de données qui est mappé dans la cible,consultez la section relative au point de terminaison cible que vous utilisez.

Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types dedonnées pour AWS Database Migration Service (p. 485).

Types de données Db2 LUW Types de données AWS DMS

INTEGER INT4

SMALLINT INT2

BIGINT INT8

DECIMAL (p,s) NUMERIC (p,s)

FLOAT REAL8

DOUBLE REAL8

REAL REAL4

DECFLOAT (p) Si la précision est de 16, alors REAL8 ; si laprécision est 34, alors STRING

GRAPHIC (n) WSTRING, pour des chaînes graphiques àlongueur fixe de caractères à deux octets, avecune longueur supérieure à 0 et inférieure ou égaleà 127

VARGRAPHIC (n) WSTRING, pour des chaînes graphiques àlongueur variable, avec une longueur supérieureà 0 et inférieure ou égale à 16 352 caractères à2 octets

LONG VARGRAPHIC (n) CLOB, pour des chaînes graphiques à longueurvariable, avec une longueur supérieure à 0 etinférieure ou égale à 16 352 caractères à 2 octets

CHARACTER (n) STRING, pour des chaînes à longueur fixe decaractères à deux octets, avec une longueursupérieure à 0 et inférieure ou égale à 255

VARCHAR(n) STRING, pour des chaînes à longueur variablede caractères à deux octets, avec une longueursupérieure à 0 et inférieure ou égale à 32,704

LONG VARCHAR (n) CLOB, pour des chaînes à longueur variablede caractères à deux octets, avec une longueursupérieure à 0 et inférieure ou égale à 32,704

CHAR (n) FOR BIT DATA BYTES

VARCHAR (n) FOR BIT DATA BYTES

LONG VARCHAR FOR BIT DATA BYTES

DATE DATE

Version de l'API API Version 2016-01-01207

Page 215: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCibles pour la migration des données

Types de données Db2 LUW Types de données AWS DMS

TIME TIME

TIMESTAMP DATETIME

BLOB (n) BLOB

La longueur maximale est de 2 147 483 647 octets

CLOB (n) CLOB

La longueur maximale est de 2 147 483 647 octets

DBCLOB (n) CLOB

La longueur maximale est de1 073 741 824 caractères à deux octets

XML CLOB

Cibles pour la migration des donnéesAWS Database Migration Service (AWS DMS) peut utiliser plusieurs des bases de données les plusrépandues comme cible pour la réplication de données. La cible peut être sur une instance Amazon ElasticCompute Cloud (Amazon EC2), une instance Amazon Relational Database Service (Amazon RDS) ou unebase de données sur site.

Les bases de données sont les suivantes :

Bases de données sur site et d'instance Amazon EC2

• Oracle version 10g, 11g, 12c, 18c ou 19c pour les éditions Enterprise, Standard, Standard One etStandard Two.

Note

• La prise en charge d'Oracle version 19c comme cible est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme cible est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Microsoft SQL Server version 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditionsEnterprise, Standard, Workgroup et Developer sont prises en charge. Les éditions Web et Express nesont pas prises en charge par AWS DMS.

Note

La prise en charge de Microsoft SQL Server version 2019 comme cible est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

• MySQL versions 5.5, 5.6, 5.7 et 8.0

Note

La prise en charge de MySQL 8.0 est disponible dans les versions AWS DMS 3.3.1 etultérieures.

• MariaDB (pris en charge en tant que cible de données compatible MySQL) versions 10.0.24 à 10.0.28,10.1, 10.2 et 10.3.

Version de l'API API Version 2016-01-01208

Page 216: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCibles pour la migration des données

Note

La prise en charge de MariaDB en tant que cible est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que cible uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 etversions ultérieures (pour les versions 9.x) et 10.x comme cible dans n'importe quelle versionDMS.

• SAP Adaptive Server Enterprise (ASE) versions 15, 15.5, 15.5, 15.7, 16 et ultérieures.

Bases de données d'instance Amazon RDS, Amazon Redshift, Amazon S3, Amazon DynamoDB,Amazon Elasticsearch Service, Amazon Kinesis Data Streams et Amazon DocumentDB

• Amazon RDS pour Oracle version 11g (version 11.2.0.3.v1 ou ultérieure), 12c, 18c ou 19c pour l'éditionEnterprise, Standard, Standard One ou Standard Two.

Note

• La prise en charge d'Oracle version 19c comme cible est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme cible est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

• Amazon RDS pour Microsoft SQL Server version 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditionsEnterprise, Standard, Workgroup et Developer sont prises en charge. Les éditions Web et Express nesont pas prises en charge par AWS DMS.

Note

La prise en charge de Microsoft SQL Server version 2019 comme cible est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

• Amazon RDS pour MySQL versions 5.5, 5.6, 5.7 et 8.0.

Note

La prise en charge de MySQL 8.0 est disponible dans les versions AWS DMS 3.3.1 etultérieures.

• MariaDB (pris en charge en tant que cible de données compatible MySQL) versions 10.0.24 à 10.0.28,10.1, 10.2 et 10.3.

Note

La prise en charge de MariaDB en tant que cible est disponible dans toutes les versions AWSDMS où MySQL est pris en charge.

• PostgreSQL version 9.4 et ultérieures (pour les versions 9.x), 10.x et 11.x.

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que cible uniquement dansles versions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 etversions ultérieures (pour les versions 9.x) et 10.x comme cible dans n'importe quelle versionDMS.

• Amazon Aurora avec compatibilité MySQL.• Amazon Aurora avec compatibilité PostgreSQL.

Version de l'API API Version 2016-01-01209

Page 217: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

• Amazon Redshift.• Amazon S3.• Amazon DynamoDB.• Amazon Elasticsearch Service.• Amazon Kinesis Data Streams.• Apache Kafka – Amazon Managed Streaming for Apache Kafka (Amazon MSK) et Apache Kafka

autogéré.• Amazon DocumentDB (avec compatibilité MongoDB).

Note

AWS DMS ne prend pas en charge la migration entre régions pour les types de points determinaison cible suivants :

• Amazon DynamoDB• Amazon Elasticsearch Service• Amazon Kinesis Data Streams

Rubriques• Utilisation d'une base de données Oracle comme cible pour

AWS Database Migration Service (p. 210)• Utilisation d'une base de données Microsoft SQL Server comme cible pour

AWS Database Migration Service (p. 216)• Utilisation d'une base de données PostgreSQL comme cible pour

AWS Database Migration Service (p. 220)• Utilisation d'une base de données compatible MySQL comme cible pour

AWS Database Migration Service (p. 223)• Utilisation d'une base de données Amazon Redshift comme cible pour

AWS Database Migration Service (p. 228)• Utilisation d'une base de données SAP ASE comme cible pour

AWS Database Migration Service (p. 241)• Utilisation d'Amazon S3 comme cible pour AWS Database Migration Service (p. 243)• Utilisation d'une base de données Amazon DynamoDB comme cible pour

AWS Database Migration Service (p. 267)• Utilisation d'Amazon Kinesis Data Streams comme cible pour

AWS Database Migration Service (p. 281)• Utiliser Apache Kafka comme cible pour AWS Database Migration Service (p. 289)• Utilisation d'un cluster Amazon Elasticsearch Service comme cible pour

AWS Database Migration Service (p. 297)• Utilisation d'Amazon DocumentDB comme cible pour AWS Database Migration Service (p. 301)

Utilisation d'une base de données Oracle comme ciblepour AWS Database Migration ServiceVous pouvez migrer les données vers les cibles de base de données Oracle à l'aide de AWS DMS,soit depuis une autre base de données Oracle, soit depuis l'une des autres bases de données

Version de l'API API Version 2016-01-01210

Page 218: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

prises en charge. Vous pouvez utiliser SSL (Secure Sockets Layer) pour chiffrer les connexionsentre votre point de terminaison Oracle et l'instance de réplication. Pour plus d'informations surl'utilisation de SSL avec un point de terminaison Oracle, consultez Utilisation du protocole SSL avecAWS Database Migration Service (p. 81).

AWS DMS prend en charge les versions Oracle 10g, 11g, 12c, 18c et 19c pour les instances sur site etEC2 pour les éditions Enterprise, Standard, Standard One et Standard Two en tant que cibles. AWS DMSprend en charge les versions Oracle 11g (version 11.2.0.3.v1 ou ultérieure), 12c, 18c et 19c pour les basesde données d'instance Amazon RDS pour les éditions Enterprise, Standard, Standard One et StandardTwo.

Note

• La prise en charge d'Oracle version 19c comme cible est disponible dans les versions AWSDMS 3.3.2 et ultérieures.

• La prise en charge d'Oracle version 18c comme cible est disponible dans les versions AWSDMS 3.3.1 et ultérieures.

Quand vous utilisez Oracle comme cible, nous supposons que les données doivent être migrées vers leschéma ou l'utilisateur qui est utilisé pour la connexion cible. Si vous voulez migrer des données vers unautre schéma, utilisez une transformation de schéma pour cela. Par exemple, supposons que votre pointde terminaison cible se connecte à l'utilisateur RDSMASTER et que vous souhaitez migrer de l'utilisateurPERFDATA vers PERFDATA. Dans ce cas, créez une transformation comme suit.

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "PERFDATA"},"value": "PERFDATA"}

Nous supposons également que toutes les affectations existantes d'espace de table de table ou d'indexsont conservées dans la cible si le point de terminaison source est aussi Oracle. Si le point de terminaisonsource n'est pas Oracle, nous utilisons les espaces de table de table et d'index par défaut dans la cible.Si vous souhaitez migrer des tables et des index vers des espaces de noms de table et d'index différents,utilisez une transformation d'espace de table. Par exemple, supposons que vous avez dans le schémaINVENTORY un ensemble de tables affectées à certains espaces de table dans la source Oracle. Pour lamigration, vous souhaitez affecter toutes ces tables à un espace de tables unique INVENTORYSPACE dansla cible. Dans ce cas, créez une transformation comme suit.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "table-tablespace-name": "%" },

Version de l'API API Version 2016-01-01211

Page 219: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

"value": "INVENTORYSPACE"}

Pour plus d'informations sur les transformations, consultez Spécification d'une sélection de table et detransformations par mappage de table à l'aide de JSON (p. 368).

Pour plus de détails sur l'utilisation des bases de données Oracle comme cible pour AWS DMS, consultezles sections suivantes :

Rubriques• Limitations sur Oracle comme cible pour AWS Database Migration Service (p. 212)• Privilèges de compte d'utilisateur requis pour utiliser Oracle comme cible (p. 212)• Configuration d'une base de données Oracle comme cible pour

AWS Database Migration Service (p. 214)• Attributs de connexion supplémentaires lors de l'utilisation d'Oracle en tant que cible pour AWS

DMS (p. 214)• Types de données cibles pour Oracle (p. 214)

Limitations sur Oracle comme cible pourAWS Database Migration ServiceLes limitations lors de l'utilisation d'Oracle comme cible pour la migration de données sont les suivantes :

• AWS DMS ne crée pas de schéma sur la base de données Oracle cible. Vous devez créer les schémasque vous voulez sur la base de données Oracle cible. Le nom du schéma doit déjà exister pour la cibleOracle. Les tables du schéma source sont importés dans l'utilisateur ou le schéma, que AWS DMSutilise pour se connecter à l'instance cible. Créez plusieurs tâches de réplication si vous avez plusieursschémas à migrer.

• AWS DMS ne prend pas en charge l'option Use direct path full load pour les tables avecINDEXTYPE CONTEXT. Pour contourner ce problème, vous pouvez utiliser le chargement de la grappe.

• Avec l'option d’application optimisée par lots, le chargement dans la table de modifications nettes utiliseun chemin d'accès direct, qui ne prend pas en charge le type XML. Pour contourner ce problème, vouspouvez utiliser le mode d'application transactionnel.

• Les chaînes vides migrées à partir de bases de données sources peuvent être traitées différemment parla cible Oracle (converties en chaînes d'un espace, par exemple). Cela peut entraîner le signalementd'une non-concordance par la validation AWS DMS.

Privilèges de compte d'utilisateur requis pour utiliser Oraclecomme ciblePour utiliser une cible Oracle dans une tâche AWS Database Migration Service, accordez les privilègessuivants dans la base de données Oracle. Vous accordez ces privilèges au compte utilisateur spécifié dansles définitions de la base de données Oracle pour AWS DMS.

• SELECT ANY TRANSACTION• SELECT on V$NLS_PARAMETERS• SELECT on V$TIMEZONE_NAMES• SELECT on ALL_INDEXES• SELECT on ALL_OBJECTS

Version de l'API API Version 2016-01-01212

Page 220: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

• SELECT on DBA_OBJECTS• SELECT on ALL_TABLES• SELECT on ALL_USERS• SELECT on ALL_CATALOG• SELECT on ALL_CONSTRAINTS• SELECT on ALL_CONS_COLUMNS• SELECT on ALL_TAB_COLS• SELECT on ALL_IND_COLUMNS• DROP ANY TABLE• SELECT ANY TABLE• INSERT ANY TABLE• UPDATE ANY TABLE• CREATE ANY VIEW• DROP ANY VIEW• CREATE ANY PROCEDURE• ALTER ANY PROCEDURE• DROP ANY PROCEDURE• CREATE ANY SEQUENCE• ALTER ANY SEQUENCE• DROP ANY SEQUENCE

Pour les conditions suivantes, accordez les privilèges supplémentaires nommés :

• Pour utiliser une liste de tables spécifique, accordez l'autorisation SELECT sur n'importe quelle tablerépliquée et ALTER sur n'importe quelle table répliquée.

• Pour permettre à un utilisateur de créer une table dans un espace de table par défaut, accordez-lui leprivilège GRANT UNLIMITED TABLESPACE.

• Pour l'ouverture de session, accordez le privilège CREATE SESSION.• Si vous utilisez un chemin d'accès direct, accordez le privilège LOCK ANY TABLE.• Si l'option « DROP and CREATE table » ou « TRUNCATE before loading » est sélectionnée dans les

paramètres de chargement complet et que le schéma de la table cible est différent de celui de l'utilisateurde AWS DMS, accordez le privilège DROP ANY TABLE.

• Pour stocker les modifications dans des tables de modifications ou dans une table d'audit lorsque leschéma de la table cible est différent de celui de l'utilisateur de AWS DMS, accordez les privilègesCREATE ANY TABLE et CREATE ANY INDEX.

Privilèges de lecture requis pour AWS Database Migration Service sur la base dedonnées cible

Le compte d'utilisateur de AWS DMS doit disposer d'autorisations de lecture pour les tablesd'administrateur de base de données suivantes :

• SELECT on DBA_USERS• SELECT on DBA_TAB_PRIVS• SELECT on DBA_OBJECTS

Version de l'API API Version 2016-01-01213

Page 221: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

• SELECT on DBA_SYNONYMS• SELECT on DBA_SEQUENCES• SELECT on DBA_TYPES• SELECT on DBA_INDEXES• SELECT on DBA_TABLES• SELECT on DBA_TRIGGERS

Si certains des privilèges requis ne peuvent pas être accordés à V$ xxx, accordez-les à V_$ xxx.

Configuration d'une base de données Oracle comme cible pourAWS Database Migration ServiceAvant d'utiliser une base de données Oracle comme cible de la migration des données, vous devez fournirun compte d'utilisateur Oracle à AWS DMS. Le compte d'utilisateur doit disposer de privilèges de lecture/écriture sur la base de données Oracle, comme indiqué au chapitre Privilèges de compte d'utilisateurrequis pour utiliser Oracle comme cible (p. 212).

Attributs de connexion supplémentaires lors de l'utilisationd'Oracle en tant que cible pour AWS DMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible Oracle.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire.

Le tableau suivant montre les attributs de connexion supplémentaires disponibles lors de l'utilisationd'Oracle comme cible.

Nom Description

useDirectPathFullLoad Utilisez le chargement complet par chemin direct. Spécifiezcette valeur pour activer ou désactiver le protocole de chemind'accès direct dans Oracle Call Interface (OCI) pour lechargement en bloc de tables Oracle.

Valeur par défaut : Y

Valeurs valides : Y/N

Exemple: useDirectPathFullLoad=N

charLengthSemantics La sémantique de longueur de colonne spécifie si la longueurd'une colonne est exprimée en octets ou en caractères.Définissez cette valeur à CHAR.

Exemple: charLengthSemantics=CHAR

Types de données cibles pour OracleUne base de données Oracle cible utilisée avec AWS DMS prend en charge la plupart des types dedonnées Oracle. Le tableau suivant présente les types de données cibles Oracle qui sont pris en charge

Version de l'API API Version 2016-01-01214

Page 222: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Oracle comme cible

lorsque vous utilisez AWS DMS et le mappage par défaut à partir des types de données AWS DMS. Pouren savoir plus sur la façon d'afficher le type de données qui est mappé à partir de la source, consultez lasection correspondant à la source que vous utilisez.

Type de données AWS DMS Type de données Oracle

BOOLEAN NUMBER (1)

BYTES RAW (length)

DATE DATETIME

TIME TIMESTAMP (0)

DATETIME TIMESTAMP (scale)

INT1 NUMBER (3)

INT2 NUMBER (5)

INT4 NUMBER (10)

INT8 NUMBER (19)

NUMERIC NUMBER (p,s)

REAL4 FLOAT

REAL8 FLOAT

STRING Avec indication date : DATE

Avec indication time : TIMESTAMP

Avec indication timestamp : TIMESTAMP

Avec indication timestamp_with_timezone : TIMESTAMP WITHTIMEZONE

Avec indication timestamp_with_local_timezone : TIMESTAMP WITHLOCAL TIMEZONE Avec indication interval_year_to_month : INTERVALYEAR TO MONTH

Avec indication interval_day_to_second : INTERVAL DAY TO SECOND

Si la longueur > 4 000 : CLOB

Dans tous les autres cas : VARCHAR2 (longueur)

UINT1 NUMBER (3)

UINT2 NUMBER (5)

UINT4 NUMBER (10)

UINT8 NUMBER (19)

WSTRING Si la longueur > 2 000 : NCLOB

Dans tous les autres cas : NVARCHAR2 (longueur)

BLOB BLOB

Version de l'API API Version 2016-01-01215

Page 223: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme cible

Type de données AWS DMS Type de données OraclePour pouvoir utiliser ce type de données avec AWS DMS, vousdevez activer l'utilisation des types de données BLOB pour une tâchespécifique. Les types de données BLOB sont pris en charge uniquementdans les tables qui contiennent une clé primaire

CLOB CLOB

Pour pouvoir utiliser ce type de données avec AWS DMS, vousdevez activer l'utilisation des types de données CLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), lestypes de données CLOB sont pris en charge uniquement dans les tablesqui contiennent une clé primaire.

NCLOB NCLOB

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devezactiver l'utilisation des types de données NCLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), lestypes de données NCLOB sont pris en charge uniquement dans lestables qui contiennent une clé primaire.

XMLTYPE Le type de données cible XMLTYPE est pertinent uniquement dans lestâches de réplication d'Oracle à Oracle.

Lorsque la base de données source est Oracle, les types de donnéesource sont répliqués en l'état dans la cible Oracle. Par exemple, untype de données XMLTYPE dans la source est créé en tant que type dedonnées XMLTYPE dans la cible.

Utilisation d'une base de donnéesMicrosoft SQL Server comme cible pourAWS Database Migration ServiceVous pouvez migrer les données vers les bases de données Microsoft SQL Server à l'aide de AWS DMS.Avec une base de données SQL Server comme cible, vous pouvez migrer les données à partir d'une autrebase de données SQL Serve, ou d'une des autres bases de données prises en charge.

Pour les bases de données sur site et d'instance Amazon EC2, AWS DMS prend en charge en tant quecible SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditions Enterprise, Standard,Workgroup, Developer et Web sont prises en charge par AWS DMS.

Pour les bases de données d'instance Amazon RDS, AWS DMS prend en charge en tant que cible SQLServer 2008R2, 2012, 2014, 2016, 2017 ou 2019. Les éditions Enterprise, Standard, Workgroup, Developeret Web sont prises en charge par AWS DMS.

Note

La prise en charge de Microsoft SQL Server version 2019 comme cible est disponible dans lesversions AWS DMS 3.3.2 et ultérieures.

Pour plus de détails sur l'utilisation de AWS DMS et des bases de données cibles SQL Server, consultezles ressources suivantes.

Version de l'API API Version 2016-01-01216

Page 224: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme cible

Limitations sur l'utilisation de SQL Server comme cible pourAWS Database Migration ServiceLes limites suivantes s'appliquent lors de l'utilisation d'une base de données SQL Server comme cible pourAWS DMS :

• Lorsque vous créez manuellement une table SQL Server cible avec une colonne calculée, la réplicationde chargement complet n'est pas prise en charge lors de l'utilisation de l'utilitaire de copie groupéeBCP. Pour pouvoir utiliser la réplication de chargement complet, désactivez l'option Use BCP for loadingtables option dans la console Avancé. Pour en savoir plus sur l'utilisation avec BCP;, consultez ladocumentation Microsoft SQL Server.

• Lors de la réplication de tables avec des types de données spatiales SQL Server (GEOMETRY etGEOGRAPHY), AWS DMS remplace tous les identifiants de référence spatiale (SRID) que vouspouvez avoir insérés par le SRID par défaut. Le SRID par défaut est 0 pour GEOMETRY et 4326 pourGEOGRAPHY.

• Les tables temporelles ne sont pas prises en charge. La migration de tables temporelles peut fonctionneravec une tâche de réplication seule en mode d'application transactionnelle si ces tables sont crééesmanuellement sur la cible.

Exigences de sécurité lors de l'utilisation de SQL Server commecible pour AWS Database Migration ServiceLa section suivante décrit les exigences de sécurité pour l'utilisation d'AWS DMS avec une cible MicrosoftSQL Server :

• Le compte utilisateur AWS DMS doit avoir au moins le rôle utilisateur db_owner sur la base de donnéesSQL Server à laquelle vous êtes connecté.

• Un administrateur système SQL Server doit fournir cette autorisation à tous les comptes utilisateur AWSDMS.

Attributs de connexion supplémentaires lors de l'utilisation deSQL Server comme cible pour AWS DMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible SQL Server.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire.

Le tableau suivant montre les attributs de connexion supplémentaires que vous pouvez utilisez quand SQLServer est la cible.

Nom Description

useBCPFullLoad Utilisez cet attribut pour transférer des données pour lesopérations de chargement complet à l'aide de BCP. Lorsquela table cible contient une colonne d'identité qui n'existe pasdans la table source, vous devez désactiver l'option use BCPfor loading table.

Valeur par défaut : Y

Valeurs valides : Y/N

Version de l'API API Version 2016-01-01217

Page 225: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme cible

Nom DescriptionExemple: useBCPFullLoad=Y

BCPPacketSize Taille maximale des paquets (en octets) utilisée pourtransférer des données à l'aide de BCP.

Valeur par défaut : 16384

Valeurs valides : 1–100000

Exemple: BCPPacketSize=16384

controlTablesFileGroup Spécifier un groupe de fichiers pour les tables internes deAWS DMS. Lorsque la tâche de réplication commence,toutes les tables de contrôle AWS DMS internes (awsdms_apply_exception, awsdms_apply, awsdms_changes) sontcréées dans le groupe de fichiers spécifié.

Valeur par défaut : s/o

Valeurs valides : String

Exemple: controlTablesFileGroup=filegroup1  

Voici un exemple d'une commande pour créer un groupe defichiers.

ALTER DATABASE replicate ADD FILEGROUP Test1FG1; GO ALTER DATABASE replicate ADD FILE (        NAME = test1dat5,        FILENAME = 'C:\temp\DATA\t1dat5.ndf',        SIZE = 5MB,        MAXSIZE = 100MB,        FILEGROWTH = 5MB    )    TO FILEGROUP Test1FG1;    GO

Types de données cibles pour Microsoft SQL ServerLe tableau suivant présente les types de données cibles Microsoft SQL Server qui sont pris encharge lorsque vous utilisez AWS DMS et le mappage par défaut des types de données AWS DMS.Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Type de données AWS DMS Type de données SQL Server

BOOLEAN TINYINT

BYTES VARBINARY(Length)

DATE Pour SQL Server 2008 et versions ultérieures, utilisez DATE.

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisezDATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

Version de l'API API Version 2016-01-01218

Page 226: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SQL Server comme cible

Type de données AWS DMS Type de données SQL Server

TIME Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2 (%d).

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisezDATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

DATETIME Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2(scale).

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisezDATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

INT1 SMALLINT

INT2 SMALLINT

INT4 INT

INT8 BIGINT

NUMERIC NUMERIC (p,s)

REAL4 REAL

REAL8 FLOAT

STRING Si la colonne est une colonne de date ou d'heure, effectuez lesopérations suivantes :

• Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2.• Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisez

DATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

Si la colonne n'est pas une colonne de date ou d'heure, utilisezVARCHAR (length).

UINT1 TINYINT

UINT2 SMALLINT

UINT4 INT

UINT8 BIGINT

WSTRING NVARCHAR (length)

BLOB VARBINARY(max)

IMAGE

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devezactiver l'utilisation des BLOB pour une tâche spécifique. AWS DMSprend en charge les types de données BLOB uniquement dans les tablesqui contiennent une clé primaire.

Version de l'API API Version 2016-01-01219

Page 227: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme cible

Type de données AWS DMS Type de données SQL Server

CLOB VARCHAR(max)

Pour pouvoir utiliser ce type de données avec AWS DMS, vousdevez activer l'utilisation des types de données CLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), AWSDMS prend en charge les types de données CLOB uniquement dans lestables qui contiennent une clé primaire.

NCLOB NVARCHAR(max)

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devezactiver l'utilisation des types de données NCLOB pour une tâchespécifique. Au cours de la capture des données modifiées (CDC), AWSDMS prend en charge les types de données NCLOB uniquement dansles tables qui contiennent une clé primaire.

Utilisation d'une base de données PostgreSQL commecible pour AWS Database Migration ServiceVous pouvez migrer des données vers des bases de données PostgreSQL à l'aide de AWS DMS, à partird'une autre base de données PostgreSQL ou à partir d'une des autres bases de données prises en charge.PostgreSQL 9.4 et versions ultérieures (pour 9.x), 10.x et 11.x en tant que cible sont prises en charge pources types de bases de données :

• Bases de données sur site• Bases de données sur une instance EC2• Bases de données sur une instance de base de données Amazon RDS• Bases de données sur une instance de base de données Amazon Aurora avec compatibilité PostgreSQL

Note

Les versions PostgreSQL 11.x sont prises en charge en tant que cible uniquement dans lesversions AWS DMS 3.3.1 et ultérieures. Vous pouvez utiliser PostgreSQL version 9.4 et versionsultérieures (pour les versions 9.x) et 10.x comme cible dans n'importe quelle version DMS.

AWS DMS adopte une approche table par table lors de la migration des données à partir de la sourcevers la cible dans la phase de chargement complet. L'ordre des tables pendant la phase de chargementcomplet ne peut pas être garanti. Les tables ne sont pas synchronisées pendant la phase de chargementcomplet et pendant que les transactions mises en cache pour les tables individuelles sont appliquées. Enconséquence, les contraintes actives d'intégrité référentielle peuvent entraîner l'échec d'une tâche pendantla phase de chargement complet.

Dans PostgreSQL, les clés étrangères (contraintes d'intégrité référentielle) sont mises en œuvre à l'aidede déclencheurs. Pendant la phase de chargement complet, AWS DMS charge chaque table l'une aprèsl'autre. Nous vous recommandons vivement de désactiver les contraintes de clé étrangère pendant unchargement complet, à l'aide de l'une des méthodes suivantes :

• Désactivez temporairement tous les déclencheurs depuis l'instance, et terminez le chargement complet.• Utilisez le paramètre session_replication_role dans PostgreSQL.

À un instant donné, un déclencheur peut être dans l'un des états suivants : origin, replica, alwaysou disabled. Lorsque le paramètre session_replication_role a la valeur replica, seuls les

Version de l'API API Version 2016-01-01220

Page 228: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme cible

déclencheurs ayant l'état replica sont actifs et sont déclenchés lorsqu'ils sont appelés. Sinon, lesdéclencheurs demeurent inactifs.

PostgreSQL possède un mécanisme failsafe pour empêcher qu'une table soit tronquée, même lorsquesession_replication_role est défini. Vous pouvez l'utiliser comme alternative à la désactivation desdéclencheurs, afin d'aider le chargement complet à s'exécuter intégralement. Pour ce faire, définissez lemode de préparation des tables cible avec la valeur DO_NOTHING. Dans le cas contraire, les opérationsDROP et TRUNCATE échouent lorsqu'il existe des contraintes de clé étrangère.

Dans Amazon RDS, vous pouvez contrôler ce paramètre à l'aide d'un groupe de paramètres. Pour uneinstance PostgreSQL s'exécutant sur Amazon EC2, vous pouvez définir le paramètre directement.

Pour plus de détails sur l'utilisation d'une base de données PostgreSQL comme cible pour AWS DMS,consultez les sections suivantes :

Rubriques• Limitations sur l'utilisation de PostgreSQL comme cible pour AWS Database Migration Service

(p. 221)• Exigences de sécurité lorsque vous utilisez une base de données PostgreSQL comme cible pour

AWS Database Migration Service (p. 221)• Attributs de connexion supplémentaires lors de l'utilisation de PostgreSQL en tant que cible pour AWS

DMS (p. 221)• Types de données cibles pour PostgreSQL (p. 222)

Limitations sur l'utilisation de PostgreSQL comme cible pourAWS Database Migration ServiceLes limitations suivantes s'appliquent lors de l'utilisation d'une base de données PostgreSQL comme ciblepour AWS DMS :

• Le type de données JSON est converti en type de données CLOB natif.• Dans une migration Oracle vers PostgreSQL, si une colonne dans Oracle contient un caractère NULL

(valeur hexadécimale U+0000), AWS DMS le convertit en un espace (valeur hexadécimale U+0020).Cela est dû à une limitation PostgreSQL.

Exigences de sécurité lorsque vous utilisez une base de donnéesPostgreSQL comme cible pour AWS Database Migration ServiceÀ des fins de sécurité, le compte d'utilisateur utilisé pour la migration des données doit être un utilisateurenregistré dans une base de données PostgreSQL que vous utilisez comme cible.

Attributs de connexion supplémentaires lors de l'utilisation dePostgreSQL en tant que cible pour AWS DMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible PostgreSQL.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire.

Le tableau suivant montre les attributs de connexion supplémentaires que vous pouvez utiliser pourconfigurer PostgreSQL comme cible pour AWS DMS.

Version de l'API API Version 2016-01-01221

Page 229: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de PostgreSQL comme cible

Nom Description

maxFileSize Spécifie la taille maximale (en Ko) de tout fichier .csv utilisépour transférer des données vers PostgreSQL.

Valeur par défaut : 32 768 Ko (32 Mo)

Valeurs valides : 1–1048576

Exemple: maxFileSize=512

executeTimeout Définit le délai d'attente de déclaration client pour l'instancePostgreSQL, en secondes. La valeur par défaut est de60 secondes.

Exemple: executeTimeout=100

afterConnectScript=SETsession_replication_role='replica'

Pour pouvoir être utilisé avec la capture de données modifiées(CDC) uniquement, cet attribut indique à AWS DMS decontourner les clés étrangères et les déclencheurs desutilisateurs pour réduire le temps nécessaire au chargementen bloc des données.

Note

Cet attribut n'est efficace qu'en mode de capture dedonnées de modification.

Types de données cibles pour PostgreSQLLe point de terminaison de base de données PostgreSQL pour AWS DMS prend en charge la plupart destypes de données de base de données PostgreSQL. Le tableau suivant présente les types de donnéescibles de bases de données PostgreSQL qui sont pris en charge lorsque vous utilisez AWS DMS et lemappage par défaut des types de données AWS DMS. Les types de données non pris en charge sontrépertoriés dans le tableau suivant.

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Type de données AWS DMS Type de données PostgreSQL

BOOL BOOL

BYTES BYTEA

DATE DATE

TIME TIME

TIMESTAMP Si l'échelle s'étend de 0 à 6, utilisez TIMESTAMP.

Si l'échelle s'étend de 7 à 9, utilisez VARCHAR (37).

INT1 SMALLINT

INT2 SMALLINT

INT4 INTEGER

Version de l'API API Version 2016-01-01222

Page 230: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL en tant que cible

Type de données AWS DMS Type de données PostgreSQL

INT8 BIGINT

NUMERIC DECIMAL (P,S)

REAL4 FLOAT4

REAL8 FLOAT8

STRING Si la longueur est comprise entre 1 et 21 845, utilisez VARCHAR(longueur en octets).

Si la longueur est comprise entre 21 846 et 2 147 483 647, utilisezVARCHAR (65535).

UINT1 SMALLINT

UINT2 INTEGER

UINT4 BIGINT

UINT8 BIGINT

WSTRING Si la longueur est comprise entre 1 et 21 845, utilisez VARCHAR(longueur en octets).

Si la longueur est comprise entre 21 846 et 2 147 483 647, utilisezVARCHAR (65535).

NCLOB TEXT

CLOB TEXT

Note

Lors de la réplication à partir d'une source PostgreSQL, AWS DMS crée la table cible avec lesmêmes types de données pour toutes les colonnes, sauf les colonnes contenant des types dedonnées définis par l'utilisateur. Dans ces cas, le type de données est créé en tant que « charactervarying » dans la cible.

Utilisation d'une base de données compatible MySQLcomme cible pour AWS Database Migration ServiceVous pouvez migrer des données vers toute base de données compatible MySQL à l'aide d'AWS DMS,à partir d'un moteur de données source quelconque pris en charge par AWS DMS. Si vous effectuez lamigration vers une base de données sur site compatible MySQL, AWS DMS exige que le moteur sourceréside dans l'écosystème AWS. Le moteur peut se trouver sur un service géré par Amazon tel qu'AmazonRDS, Amazon Aurora ou Amazon S3. Le moteur peut également être sur une base de données autogéréesur Amazon EC2.

Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison compatible MySQLet l'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaisoncompatible MySQL, consultez Utilisation du protocole SSL avec AWS Database Migration Service (p. 81).

AWS DMS prend en charge les versions 5.5, 5.6, 5.7 et 8.0 de MySQL et Aurora MySQL. En outre, AWSDMS prend en charge les versions MariaDB 10.0.24 à 10.0.28, 10.1, 10.2 et 10.3.

Version de l'API API Version 2016-01-01223

Page 231: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL en tant que cible

Note

La prise en charge de MySQL 8.0 est disponible dans les versions AWS DMS 3.3.1 et ultérieures.

Vous pouvez utiliser les bases de données compatibles MySQL suivantes en tant que cibles pour AWSDMS :

• MySQL Community Edition• MySQL Standard Edition• MySQL Enterprise Edition• MySQL Cluster Carrier Grade Edition• MariaDB Community Edition• MariaDB Enterprise Edition• MariaDB Column Store• Amazon Aurora MySQL

Note

Quel que soit le moteur de stockage source (MyISAM, MEMORY, etc.), AWS DMS crée une tablecible compatible MySQL en tant que table InnoDB par défaut. Si vous avez besoin d'une table quiutilise un moteur de stockage autre qu'InnoDB, vous pouvez manuellement créer la table sur lacible compatible MySQL et migrer la table en mode « Ne rien faire ». Pour plus d'informations surle mode « Ne rien faire », consultez Paramètres de tâche de chargement complet (p. 336).

Pour plus de détails sur l'utilisation d'une base de données compatible MySQL comme cible pour AWSDMS, consultez les sections suivantes.

Rubriques• Utilisation de n'importe quelle base de données compatible MySQL comme cible pour

AWS Database Migration Service (p. 224)• Limitations sur l'utilisation d'une base de données compatible MySQL comme cible pour

AWS Database Migration Service (p. 225)• Attributs de connexion supplémentaires lors de l'utilisation d'une base de données compatible MySQL

en tant que cible pour AWS DMS (p. 225)• Types de données cibles pour MySQL (p. 227)

Utilisation de n'importe quelle base de données compatibleMySQL comme cible pour AWS Database Migration ServiceAvant de commencer à utiliser une base de données compatible avec MySQL comme cible pour AWSDMS, assurez-vous que les conditions préalables suivantes sont remplies :

• Indiquez à AWS DMS un compte utilisateur qui dispose des privilèges de lecture/écriture sur la basede données compatible avec MySQL. Pour créer les privilèges nécessaires, exécutez les commandessuivantes.

CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>';GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <schema>.* TO '<user acct>'@'%';GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';

Version de l'API API Version 2016-01-01224

Page 232: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL en tant que cible

• Pendant la phase de migration de chargement complet, vous devez désactiver les clés étrangères survos tables cibles. Pour désactiver les contrôles de clé étrangère sur une base de données compatibleMySQL pendant un chargement complet, vous pouvez ajouter la commande suivante aux attributs deconnexion supplémentaires dans la section Avancé du point de terminaison cible.

initstmt=SET FOREIGN_KEY_CHECKS=0

• Définissez le paramètre de base de données local_infile = 1 pour permettre à AWS DMS decharger les données dans la base de données cible.

Limitations sur l'utilisation d'une base de données compatibleMySQL comme cible pour AWS Database Migration ServiceLorsque vous utilisez une base de données MySQL comme cible, AWS DMS ne prend pas en charge leséléments suivants :

• Les instructions en langage de définition de données (DDL) TRUNCATE PARTITION, DROP TABLE etRENAME TABLE.

• Utilisation d'une instruction ALTER TABLE <table_name> ADD COLUMN <column_name> pourajouter des colonnes au début ou au milieu d'une table.

• Quand seule la colonne LOB d'une table source est mise à jour, AWS DMS n'effectue pas la mise à jourde la colonne cible correspondante. Le LOB cible est mis à jour seulement si au moins une autre colonneest mise à jour dans la même transaction.

• Lors du chargement des données vers une cible compatible MySQL dans une tâche de chargementcomplet, AWS DMS ne signale pas les erreurs de doublons de clés dans le journal des tâches.

• Lorsque vous mettez à jour la valeur d'une colonne à sa valeur existante, les bases de donnéescompatibles MySQL renvoient un avertissement 0 rows affected. Bien que ce comportement nesoit pas techniquement une erreur, il est différent de la façon dont la situation est gérée par d'autresmoteurs de base de données. Par exemple, Oracle effectue une mise à jour d'une seule ligne. Pourles bases de données compatibles MySQL, AWS DMS génère une entrée dans la table de contrôleawsdms_apply_exceptions et consigne l'avertissement suivant.

Some changes from the source database had no impact when applied tothe target database. See awsdms_apply_exceptions table for details.

Attributs de connexion supplémentaires lors de l'utilisation d'unebase de données compatible MySQL en tant que cible pour AWSDMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible compatibleMySQL. Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avezplusieurs paramètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sansespace supplémentaire.

Le tableau suivant indique les paramètres de configuration supplémentaires que vous pouvez utiliser lorsde la création d'une cible compatible MySQL pour AWS DMS.

Version de l'API API Version 2016-01-01225

Page 233: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL en tant que cible

Nom Description

targetDbType Spécifie l'endroit où migrer des tables sources sur la cible,vers une seule base de données ou plusieurs bases dedonnées.

Valeur par défaut : MULTIPLE_DATABASES

Valeurs valides : {SPECIFIC_DATABASE,MULTIPLE_DATABASES}

Exemple : targetDbType=MULTIPLE_DATABASES

parallelLoadThreads Améliore les performances lors du chargement des donnéesdans la base de données cible compatible MySQL. Spécifie lenombre de threads à utiliser pour charger les données dans labase de données cible compatible MySQL. La définition d'ungrand nombre de threads peut avoir un impact négatif sur lesperformances de base de données, dans la mesure où uneconnexion distincte est requise pour chaque thread.

Valeur par défaut : 1

Valeurs valides : 1–5

Exemple : parallelLoadThreads=1

initstmt=SETFOREIGN_KEY_CHECKS=0

Désactive les contrôles de clés étrangères.

initstmt=SET time-zone Spécifie le fuseau horaire pour la base de donnéescompatible MySQL cible.

Valeur par défaut : UTC

Valeurs valides : une abréviation de trois ou quatre caractèrespour le fuseau horaire que vous voulez utiliser. Les valeursvalides sont les abréviations de fuseau horaire standarddu système d'exploitation hébergeant la base de donnéescompatible MySQL cible.

Exemple : initstmt=SET time_zone=UTC

afterConnectScript=SETcharacter_set_connection='latin1'

Spécifie que la cible compatible MySQL doit traduire lesinstructions reçues dans le jeu de caractères latin1, qui est lejeu de caractères compilé par défaut de la base de données.Ce paramètre améliore généralement les performances lorsd'une conversion à partir de clients UTF8.

maxFileSize Spécifie la taille maximale (en Ko) de tout fichier .csv utilisépour transférer des données vers une base de donnéescompatible avec MySQL.

Valeur par défaut : 32 768 Ko (32 Mo)

Valeurs valides : 1 - 1048576

Exemple: maxFileSize=512

Version de l'API API Version 2016-01-01226

Page 234: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de MySQL en tant que cible

Nom Description

CleanSrcMetadataOnMismatch Nettoie et recrée les informations de métadonnées de tablesur l'instance de réplication lorsqu'une non-correspondancesurvient. Par exemple, dans le cas où l'exécution d'uneinstruction alter DDL sur la table pourrait générer desinformations différentes sur la table mise en cache dansl'instance de réplication. Booléen.

Valeur par défaut : false

Exemple: CleanSrcMetadataOnMismatch=false

Types de données cibles pour MySQLLe tableau suivant présente les types de données cibles de bases de données MySQL qui sont pris encharge lorsque vous utilisez AWS DMS et le mappage par défaut des types de données AWS DMS.

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Types de données AWS DMS Types de données MySQL

BOOLEAN BOOLEAN

BYTES Si la longueur est comprise entre 1 et65 535, utilisez VARBINARY (length).

Si la longueur est comprise entre 65 536 et2 147 483 647, utilisez LONGLOB.

DATE DATE

TIME TIME

TIMESTAMP « Si l'échelle est => 0 et =< 6, alors : DATETIME(Scale)

Si l'échelle est => 7 et =< 9, alors : VARCHAR(37) »

INT1 TINYINT

INT2 SMALLINT

INT4 INTEGER

INT8 BIGINT

NUMERIC DECIMAL (p,s)

REAL4 FLOAT

REAL8 DOUBLE PRECISION

STRING Si la longueur est comprise entre 1 et21 845, utilisez VARCHAR (length).

Version de l'API API Version 2016-01-01227

Page 235: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Types de données AWS DMS Types de données MySQLSi la longueur est comprise entre 21 846 et2 147 483 647, utilisez LONGTEXT.

UINT1 UNSIGNED TINYINT

UINT2 UNSIGNED SMALLINT

UINT4 UNSIGNED INTEGER

UINT8 UNSIGNED BIGINT

WSTRING Si la longueur est comprise entre 1 et 32 767,utilisez VARCHAR (length).

Si la longueur est comprise entre 32 768 et2 147 483 647, utilisez LONGTEXT.

BLOB Si la longueur est comprise entre 1 et 65 535,utilisez BLOB.

Si la longueur est comprise entre 65 536 et2 147 483 647, utilisez LONGBLOB.

Si la longueur est 0, utilisez LONGBLOB (full LOBsupport).

NCLOB Si la longueur est comprise entre 1 et 65 535,utilisez TEXT.

Si la longueur est comprise entre 65 536 et2 147 483 647, utilisez LONGTEXT avec ucs2 pourCHARACTER SET.

Si la longueur est 0, utilisez LONGTEXT (full LOBsupport) avec ucs2 pour CHARACTER SET.

CLOB Si la longueur est comprise entre 1 et 65 535,utilisez TEXT.

Si la longueur est comprise entre 65 536 et2 147 483 647, utilisez LONGTEXT.

Si la longueur est 0, utilisez LONGTEXT (full LOBsupport).

Utilisation d'une base de données Amazon Redshiftcomme cible pour AWS Database Migration ServiceVous pouvez migrer des données vers des bases de données Amazon Redshift à l'aide deAWS Database Migration Service. Amazon Redshift est un service d'entrepôt de données dans le cloud.Entièrement géré, il est doté d'une capacité de plusieurs péta-octets. Avec une base de données AmazonRedshift comme cible, vous pouvez migrer les données provenant de tous les autres bases de donnéessource prises en charge.

Le cluster Amazon Redshift doit se trouver dans le même compte AWS et la même région AWS quel'instance de réplication.

Version de l'API API Version 2016-01-01228

Page 236: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Lors d'une migration de base de données vers Amazon Redshift, AWS DMS déplace d'abord les donnéesdans un compartiment Amazon S3. Une fois que les fichiers résident dans un compartiment Amazon S3,AWS DMS les transfère vers les tables appropriés dans l'entrepôt de données Amazon Redshift. AWSDMS crée le compartiment S3 dans la même région AWS que la base de données Amazon Redshift.L'instance de réplication AWS DMS doit se trouver dans cette même région.

Si vous utilisez l'AWS Command Line Interface (AWS CLI) ou l'API DMS pour migrer les données versAmazon Redshift, vous devez configurer un rôle AWS Identity and Access Management (IAM) pourautoriser un accès S3. Pour plus d'informations sur la création de ce rôle IAM, consultez Création derôles IAM à utiliser avec l'AWS CLI et l'API AWS DMS (p. 68).

Le point de terminaison d'Amazon Redshift automatise les éléments suivants :

• la génération de schéma et le mappage de type de données ;• le chargement complet des tables de base de données source ;• le chargement incrémentiel des modifications apportées aux tables source ;• l'application des modifications de schéma en langage de définition de données (DDL) apportées aux

tables de la source ;• la synchronisation entre le chargement complet et les traitements de capture des données modifiées

(CDC).

AWS Database Migration Service prend en charge les opérations de chargement complet et de traitementdes modifications. AWS DMS lit les données de la base de données source et crée une série de fichiers devaleurs séparées par des virgules (.csv). Pour les opérations de chargement complet, AWS DMS crée desfichiers pour chaque table. AWS DMS copie ensuite les fichiers de chaque table dans un dossier distinctdans Amazon S3. Lorsque les fichiers sont téléchargés sur Amazon S3, AWS DMS envoie une commandede copie et les données des fichiers sont copiées dans Amazon Redshift. Pour les opérations de traitementdes modifications, AWS DMS copie les modifications nettes dans les fichiers .csv. AWS DMS chargeensuite les fichiers de modifications nettes sur Amazon S3 et copie les données dans Amazon Redshift.

Pour plus de détails sur l'utilisation de Amazon Redshift comme cible pour AWS DMS, consultez lessections suivantes :

Rubriques• Conditions requises pour l'utilisation d'une base de données Amazon Redshift comme cible pour

AWS Database Migration Service (p. 230)• Limitations sur l'utilisation d'Amazon Redshift comme cible pour

AWS Database Migration Service (p. 230)• Configuration d'une base de données Amazon Redshift comme cible pour

AWS Database Migration Service (p. 231)• Utilisation du routage VPC amélioré avec un Amazon Redshift en tant que cible pour

AWS Database Migration Service (p. 231)• Création et utilisation de clés AWS KMS pour chiffrer des données cibles Amazon Redshift (p. 232)• Paramètres de point de terminaison lors de l'utilisation de Amazon Redshift comme cible pour AWS

DMS (p. 235)• Attributs de connexion supplémentaires lors de l'utilisation de Amazon Redshift en tant que cible pour

AWS DMS (p. 237)• Types de donnée cible pour Amazon Redshift (p. 239)

Version de l'API API Version 2016-01-01229

Page 237: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Conditions requises pour l'utilisation d'une basede données Amazon Redshift comme cible pourAWS Database Migration ServiceLa liste suivante décrit les prérequis à l'utilisation d'Amazon Redshift comme cible pour la migration desdonnées :

• Utilisez AWS Management Console pour lancer un cluster Amazon Redshift. Notez les informations debase concernant votre compte AWS et votre cluster Amazon Redshift, telles que votre mot de passe,nom d'utilisateur et le nom de la base de données. Vous avez besoin de ces valeurs lors de la créationdu point de terminaison cible Amazon Redshift.

• Le cluster Amazon Redshift doit se trouver dans le même compte AWS et la même région AWS quel'instance de réplication.

• L'instance de réplication AWS DMS a besoin d'une connectivité réseau vers le point de terminaisonAmazon Redshift (nom d'hôte et port) que votre cluster utilise.

• AWS DMS utilise un compartiment Amazon S3 pour transférer les données vers la base de donnéesAmazon Redshift. Pour que AWS DMS crée le compartiment, la console DMS doit utiliser un rôle IAMdms-access-for-endpoint. Si vous utilisez la AWS CLI ou l'API DMS pour créer une migration debase de données avec Amazon Redshift comme la base de données cible, vous devez créer ce rôle IAM.Pour plus d'informations sur la création de ce rôle, consultez la page Création de rôles IAM à utiliser avecl'AWS CLI et l'API AWS DMS (p. 68).

• AWS DMS convertit les objets BLOB, CLOB et NCLOB en VARCHAR sur l'instance Amazon Redshiftcible. Amazon Redshift ne prend pas en charge les types de donnée VARCHAR dont la taille estsupérieure à 64 Ko. Par conséquent, vous ne pouvez pas stocker les LOB traditionnels sur AmazonRedshift.

Limitations sur l'utilisation d'Amazon Redshift comme cible pourAWS Database Migration ServiceLorsque vous utilisez une base de données Amazon Redshift comme cible, AWS DMS ne prend pas encharge les éléments suivants :

• La commande DDL suivante n'est pas prise en charge :

ALTER TABLE <table name> MODIFY COLUMN <column name> <data type>;

• AWS DMS ne peut pas migrer ou répliquer des modifications apportées à un schéma avec un nom quicommence par un caractère de soulignement (_). Si vous avez des schémas dont le nom commence parun trait de soulignement, utilisez les transformations de mappage pour renommer le schéma sur la cible.

• Amazon Redshift ne prend pas en charge les VARCHAR dont la taille est supérieure à 64 Ko. Les LOBprovenant de bases de données traditionnelles ne peuvent pas être stockés dans Amazon Redshift.

• L'application d'une instruction DELETE à une table avec une clé primaire à plusieurs colonnes n'est pasprise en charge lorsque l'un des noms de colonne de clé primaire utilise un mot réservé. Rendez-vous icipour consulter une liste de mots réservés Amazon Redshift.

Version de l'API API Version 2016-01-01230

Page 238: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Configuration d'une base de données Amazon Redshift commecible pour AWS Database Migration ServiceAWS Database Migration Service doit être configuré pour être compatible avec l'instance Amazon Redshift.Le tableau suivant décrit les propriétés de configuration disponibles pour le point de terminaison AmazonRedshift.

Propriété Description

serveur Nom du cluster Amazon Redshift que vous utilisez.

port Numéro de port pour Amazon Redshift. La valeur par défaut est 5439.

nom d'utilisateur Nom d'un utilisateur enregistré de Amazon Redshift.

mot de passe Mot de passe de l'utilisateur nommé dans la propriété de nom d'utilisateur.

base de données Nom de l'entrepôt de données (service) Amazon Redshift, que vous utilisez.

Si vous souhaitez ajouter des attributs de chaîne de connexion supplémentaires à votrepoint de terminaison Amazon Redshift, vous pouvez spécifier les attributs maxFileSize etfileTransferUploadStreams. Pour plus d'informations sur ces attributs, consultez la page Attributsde connexion supplémentaires lors de l'utilisation de Amazon Redshift en tant que cible pour AWSDMS (p. 237).

Utilisation du routage VPC amélioré avec un Amazon Redshift entant que cible pour AWS Database Migration ServiceSi vous utilisez le routage VPC amélioré avec votre cible Amazon Redshift, tout le trafic COPY entre votrecluster Amazon Redshift et vos référentiels de données passe par votre VPC. Le routage VPC amélioréaffecte la manière dont Amazon Redshift accède aux autres ressources, les commandes COPY peuventéchouer si vous n'avez pas configuré correctement votre VPC.

AWS DMS peut être affecté par ce comportement car il utilise la commande COPY pour déplacer desdonnées dans S3 vers un cluster Amazon Redshift.

Voici les étapes exécutées par AWS DMS pour charger des données dans une cible Amazon Redshift :

1. AWS DMS copie les données de la source vers des fichiers .csv sur le serveur de réplication.2. AWS DMS utilise le kit SDK AWS pour copier les fichiers .csv dans un compartiment S3 sur votre

compte.3. AWS DMS utilise ensuite la commande COPY dans Amazon Redshift pour copier les données depuis

les fichiers .csv dans S3 vers une table appropriée dans Amazon Redshift.

Si le routage VPC amélioré n'est pas activé, Amazon Redshift achemine le trafic via Internet, y comprisle trafic vers d'autres services au sein du réseau AWS. Si la fonction n'est pas activée, vous n'avez pas àconfigurer le chemin d'accès réseau. Si la fonction est activée, vous devez créer spécifiquement un chemind'accès réseau entre le VPC de votre cluster et vos ressources de données. Pour plus d'informations sur laconfiguration requise, consultez Routage VPC amélioré dans la documentation d'Amazon Redshift.

Version de l'API API Version 2016-01-01231

Page 239: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Création et utilisation de clés AWS KMS pour chiffrer desdonnées cibles Amazon RedshiftVous pouvez chiffrer vos données cibles transmises à Amazon S3 avant de les copier sur AmazonRedshift. Pour ce faire, vous pouvez créer et utiliser des clés AWS KMS personnalisées. Vous pouvezutiliser la clé que vous avez créée pour chiffrer vos données cibles à l'aide d'un des mécanismes suivantslorsque vous créez le point de terminaison cible Amazon Redshift :

• Utilisez l'option suivante lorsque vous exécutez la commande create-endpoint à l'aide de l'AWS CLI.

--redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "your-kms-key-ARN"}'

Ici, your-kms-key-ARN est l'Amazon Resource Name (ARN) pour votre clé KMS. Pour plusd'informations, consultez Paramètres de point de terminaison lors de l'utilisation de Amazon Redshiftcomme cible pour AWS DMS (p. 235).

• Définissez l'attribut de connexion supplémentaire encryptionMode à la valeur SSE_KMS et l'attribut deconnexion supplémentaire serverSideEncryptionKmsKeyId à l'ARN de votre clé KMS. Pour plusd'informations, consultez Attributs de connexion supplémentaires lors de l'utilisation de Amazon Redshiften tant que cible pour AWS DMS (p. 237).

Pour chiffrer des données cibles Amazon Redshift à l'aide d'une clé KMS, vous avez besoin d'un rôleAWS Identity and Access Management (IAM) qui dispose des autorisations pour accéder aux donnéesAmazon Redshift. Ce rôle IAM est ensuite accédé dans une stratégie (stratégie de clé) attachée à la clé dechiffrement que vous créez. Pour cela, créez les éléments suivants dans votre console IAM :

• Un rôle IAM avec une stratégie gérée par Amazon.• Une clé de chiffrement KMS avec une stratégie de clé qui fait référence à ce rôle.

Les procédures suivantes décrivent la marche à suivre.

Pour créer un rôle IAM avec la stratégie gérée par Amazon requise

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet de navigation, choisissez Roles. La page Rôles s'ouvre.3. Sélectionnez Créer un rôle. La page Créer un rôle s'ouvre.4. Choisissez Service AWS en tant qu'entité de confiance, puis DMS en tant que service utilisant le rôle.5. Sélectionnez Étape suivante : autorisations. La page Attach permissions policies (Attacher des

stratégies d'autorisation) s'affiche.6. Recherchez et sélectionnez la stratégie AmazonDMSRedshiftS3Role.7. Choisissez Suivant : Balises. La page Ajouter des balises s'affiche. Ici, vous pouvez ajouter toutes les

balises souhaitées.8. Choisissez Next: Review (Suivant : Vérification) et vérifiez vos résultats.9. Si les paramètres correspondent à vos besoins, saisissez un nom pour le rôle (par exemple, DMS-

Redshift-endpoint-access-role) et une description supplémentaire si vous le souhaitez, puischoisissez Créer un rôle. La page Rôles s'ouvre avec un message indiquant que votre rôle a été créé.

Vous avez désormais créé le nouveau rôle pour accéder aux ressources Amazon Redshift en vue duchiffrement avec un nom spécifié, par exemple DMS-Redshift-endpoint-access-role.

Version de l'API API Version 2016-01-01232

Page 240: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Pour créer une clé de chiffrement AWS KMS avec une stratégie de clé qui fait référence à votrerôle IAM.

Note

Pour plus d'informations sur le fonctionnement d'AWS DMS avec les clés de chiffrement AWSKMS, consultez Définition d'une clé de chiffrement et spécification des autorisations AWSKMS (p. 78).

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Key Management Service(AWS KMS) à l'adresse https://console.aws.amazon.com/kms.

2. Pour changer de région AWS, utilisez le sélecteur de région dans l’angle supérieur droit de la page.3. Dans le volet de navigation, choisissez Customer managed keys (Clés gérées par le client).4. Choisissez Create key. La page Configurer la clé s'ouvre.5. Pour Type de clé, choisissez Symétrique.

Note

Vous ne pouvez créer qu'une clé symétrique, car tous les services AWS, tels qu'AmazonRedshift, ne fonctionnent qu'avec des clés de chiffrement symétriques.

6. Choisissez Options avancées. Pour Origine des éléments de clé, assurez-vous que KMS est choisi,puis choisissez Suivant. La page Ajouter des étiquettes s'ouvre.

7. Dans Créer un alias et une description, entrez un alias pour la clé (par exemple, DMS-Redshift-endpoint-encryption-key) et toute description supplémentaire.

8. Pour Balises, ajoutez les balises que vous souhaitez pour vous aider à identifier la clé et suivre sonutilisation, puis choisissez Suivant. La page Définir des autorisations d'administration de clé s'ouvre etaffiche une liste d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

9. Ajoutez les utilisateurs et les rôles que vous souhaitez voir gérer la clé. Assurez-vous que cesutilisateurs et ces rôles ont les autorisations requises pour gérer la clé.

10. Pour Suppression de clé, choisissez si les administrateurs de clé peuvent supprimer celle-ci, puischoisissez Suivant. La page Définir des autorisations d'utilisation de clé s'ouvre et affiche une listesupplémentaire d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

11. Pour Ce compte, sélectionnez les utilisateurs disponibles pour lesquels vous souhaitez effectuer desopérations de chiffrement sur des cibles Amazon Redshift. Choisissez le rôle que vous avez crééprécédemment dans Rôles pour activer l'accès au chiffrement des objets cibles Amazon Redshift, parexemple DMS-Redshift-endpoint-access-role.

12. Si vous souhaitez ajouter d'autres comptes non répertoriés pour avoir ce même accès, pour Autrescomptes AWS, choisissez Ajouter un autre compte AWS, puis Suivant. La page Réviser et modifier lastratégie de clé s'ouvre, affichant le JSON de la stratégie de clé que vous pouvez réviser et modifieren saisissant les informations dans le JSON existant. Ici, vous pouvez voir où la stratégie clé faitréférence au rôle et aux utilisateurs (par exemple, Admin et User1) que vous avez choisis à l'étapeprécédente. Vous pouvez également voir les actions clés autorisées pour les différents mandataires(utilisateurs et rôles), comme illustré dans l'exemple suivant.

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:root" ] },

Version de l'API API Version 2016-01-01233

Page 241: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

"Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/Admin" ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/DMS-Redshift-endpoint-access-role", "arn:aws:iam::944454115380:role/Admin", "arn:aws:iam::944454115380:role/User1" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/DMS-Redshift-endpoint-access-role", "arn:aws:iam::944454115380:role/Admin", "arn:aws:iam::944454115380:role/User1" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": {

Version de l'API API Version 2016-01-01234

Page 242: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

"kms:GrantIsForAWSResource": true } } } ]

13. Choisissez Finish (Terminer). La page Clés de chiffrement s'ouvre et affiche un message indiquant quevotre clé de chiffrement principale a été créée.

Vous venez de créer une nouvelle clé KMS avec un alias spécifié (par exemple, DMS-Redshift-endpoint-encryption-key). Cette clé permet à AWS DMS de chiffrer les données cibles AmazonRedshift.

Paramètres de point de terminaison lors de l'utilisation deAmazon Redshift comme cible pour AWS DMSVous pouvez utiliser des paramètres de point de terminaison pour configurer votre cible Amazon Redshiftcomme si vous utilisiez des attributs de connexion supplémentaires. Vous pouvez spécifier ces paramètreslorsque vous créez le point de terminaison cible à l'aide de la commande create-endpoint dans l'AWSCLI, avec l'option --redshift-settings "json-settings". Ici, json-settings est un objet JSONcontenant des paramètres pour spécifier la configuration. Vous pouvez également spécifier un fichier .jsoncontenant le même objet json-settings, comme dans l'exemple suivant : --redshift-settingsfile:///your-file-path/my_redshift_settings.json. Ici, my_redshift_settings.json estle nom d'un fichier .json qui contient le même json-settings object.

Les noms de paramètre pour les paramètres de point de terminaison sont les mêmes que leur équivalentpour les attributs de connexion supplémentaires, sauf que les noms de paramètre pour les paramètresde point de terminaison commencent par une majuscule. En outre, tous les paramètres de point determinaison cible Amazon Redshift utilisant des attributs de connexion supplémentaires ne sont pasdisponibles avec l'option --redshift-settings de la commande create-endpoint. Pour plusd'informations sur les paramètres disponibles dans un appel d'AWS CLI à create-endpoint, consultezcreate-endpoint dans le AWS CLI Command Reference pour AWS DMS. Pour plus d'informations sur cesparamètres, consultez les attributs de connexion supplémentaires équivalents dans Attributs de connexionsupplémentaires lors de l'utilisation de Amazon Redshift en tant que cible pour AWS DMS (p. 237).

Vous pouvez utiliser les paramètres de point de terminaison cible Amazon Redshift pour configurer leséléments suivants :

• Une clé de chiffrement de données AWS KMS personnalisée. Vous pouvez ensuite utiliser cette clé pourchiffrer vos données transmises à Amazon S3 avant qu'elles ne soient copiées sur Amazon Redshift.

• Un compartiment S3 personnalisé en tant que stockage intermédiaire pour les données migrées versAmazon Redshift.

Des paramètres de clé KMS pour le chiffrement des données

Les exemples suivants illustrent la configuration d'une clé KMS personnalisée pour chiffrer vos donnéestransmises à S3. Pour commencer, vous pouvez effectuer l'appel create-endpoint suivant à l’aide del'AWS CLI.

aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username your-username --password your-password --server-name your-server-name --port 5439 --database-name your-db-name --redshift-settings '{"EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:944454115380:key/24c3c5a1-f34a-4519-a85b-2debbef226d1"}'

Version de l'API API Version 2016-01-01235

Page 243: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Ici, l'objet JSON spécifié par l'option --redshift-settings définit deux paramètres.Le premier est le paramètre EncryptionMode avec la valeur SSE_KMS. L'autre est leparamètre ServerSideEncryptionKmsKeyId avec la valeur arn:aws:kms:us-east-1:944454115380:key/24c3c5a1-f34a-4519-a85b-2debbef226d1. Cette valeur est unAmazon Resource Name (ARN) pour votre clé KMS personnalisée.

Par défaut, le chiffrement de données S3 a lieu à l’aide du chiffrement côté serveur S3. Pour la cibleAmazon Redshift de l'exemple précédent, cela équivaut à spécifier ses paramètres de point de terminaison,comme dans l'exemple suivant.

aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username your-username --password your-password --server-name your-server-name --port 5439 --database-name your-db-name --redshift-settings '{"EncryptionMode": "SSE_S3"}'

Pour plus d'informations sur l’utilisation du chiffrement côté serveur S3, consultez Protection des données àl'aide du chiffrement côté serveur.

Paramètres de compartiment Amazon S3

Lorsque vous migrez des données vers un point de terminaison cible Amazon Redshift, AWS DMSutilise un compartiment Amazon S3 par défaut comme stockage de tâche intermédiaire avant de copierles données migrées dans Amazon Redshift. Par exemple, les exemples indiqués pour la création d'unpoint de terminaison cible Amazon Redshift avec une clé de chiffrement de données KMS utilisent cecompartiment S3 par défaut (voir Des paramètres de clé KMS pour le chiffrement des données (p. 235)).

Vous pouvez plutôt spécifier un compartiment S3 pour ce stockage intermédiaire en incluant lesparamètres suivants dans la valeur de votre option --redshift-settings dans la commande create-endpoint de l’AWS CLI :

• BucketName – Chaîne que vous spécifiez comme le nom du compartiment S3.• BucketFolder – (Facultatif) Chaîne que vous pouvez spécifier comme nom du dossier de stockage

dans le compartiment S3 spécifié.• ServiceAccessRoleArn – ARN d'un rôle IAM qui autorise un accès administratif au compartiment

S3. Généralement, vous créez ce rôle en fonction de la stratégie AmazonDMSRedshiftS3Role.Pour obtenir un exemple, consultez la procédure pour créer un rôle IAM avec la stratégie gérée parAmazon requise dans Création et utilisation de clés AWS KMS pour chiffrer des données cibles AmazonRedshift (p. ).

Note

Si vous spécifiez l'ARN d'un autre rôle IAM à l'aide de l'option --service-access-role-arnde la commande create-endpoint, cette option de rôle IAM est prioritaire.

L'exemple suivant montre comment utiliser ces paramètres pour spécifier un compartiment Amazon S3personnalisé dans l'appel create-endpoint à l'aide de l’AWS CLI.

aws dms create-endpoint --endpoint-identifier redshift-target-endpoint --endpoint-type target --engine-name redshift --username your-username --password your-password --server-name your-server-name --port 5439 --database-name your-db-name --redshift-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketName": "your-bucket-name", "BucketFolder": "your-bucket-folder-name"}'

Version de l'API API Version 2016-01-01236

Page 244: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Attributs de connexion supplémentaires lors de l'utilisation deAmazon Redshift en tant que cible pour AWS DMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible AmazonRedshift. Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avezplusieurs paramètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sansespace supplémentaire.

Le tableau suivant montre les attributs de connexion supplémentaires disponibles lors de l'utilisationd'Amazon Redshift comme cible.

Nom Description

maxFileSize Spécifie la taille maximale (en Ko) de tout fichier .csv utilisépour transférer des données vers Amazon Redshift.

Valeur par défaut : 32 768 Ko (32 Mo)

Valeurs valides : 1–1048576

Exemple: maxFileSize=512

fileTransferUploadStreams Spécifie le nombre de threads utilisés pour télécharger unseul fichier.

Valeur par défaut : 10

Valeurs valides : 1–64

Exemple: fileTransferUploadStreams=20

acceptanydate Spécifie si un format de date quelconque est accepté, ycompris les formats de dates non valides tels que 0000-00-00.Valeur booléenne.

Valeur par défaut : false

Valeurs valides : true | false

Exemple: acceptanydate=true

dateformat Spécifie le format de date. Il s'agit d'une entrée de chaîne quiest vide par défaut. Le format par défaut est JJ-MM-DD, maisvous pouvez le remplacer par AAAA-MM-JJ, par exemple. Sivos valeurs de date ou d'heure utilisent des formats différents,utilisez l'argument auto avec le paramètre dateformat.L'argument auto reconnaît plusieurs formats qui ne sont paspris en charge quand une chaîne dateformat est utilisée. Lemot clé auto est sensible à la casse.

Valeur par défaut : vide

Valeurs valides : 'dateformat_string' ou auto

Exemple: dateformat=auto

timeformat Spécifie le format de l'heure. Il s'agit d'une entrée de chaînequi est vide par défaut. L'argument auto reconnaît plusieursformats qui ne sont pas pris en charge quand une chaîne

Version de l'API API Version 2016-01-01237

Page 245: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Nom Descriptiontimeformat est utilisée. Si vos valeurs de date et d'heureutilisent des formats différents les uns des autres, utilisezl'argument auto avec le paramètre timeformat.

Valeur par défaut : 10

Valeurs valides : 'timeformat_string' | 'auto' | 'epochsecs' |'epochmillisecs'

Exemple: timeformat=auto

emptyasnull Spécifie si AWS DMS doit migrer les champs CHAR etVARCHAR vides en tant que valeurs NULL. La valeur truedéfinit les champs CHAR et VARCHAR vides comme étantnull.

Valeur par défaut : false

Valeurs valides : true | false

Exemple: emptyasnull=true

truncateColumns Tronque les données des colonnes avec le nombre decaractères donné afin qu'il corresponde à la spécification dela colonne. S'applique uniquement aux colonnes avec un typede données VARCHAR ou CHAR et des lignes de 4 Mo oumoins.

Valeur par défaut : false

Valeurs valides : true | false

Exemple :

truncateColumns=true;

removeQuotes Supprime les guillemets des chaînes dans les donnéesentrantes. Tous les caractères compris entre les guillemets,y compris les délimiteurs, sont conservés. Pour plusd'informations sur la suppression des guillemets pour unecible Amazon Redshift, consultez le Amazon RedshiftDatabase Developer Guide.

Valeur par défaut : false

Valeurs valides : true | false

Exemple :

removeQuotes=true;

Version de l'API API Version 2016-01-01238

Page 246: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Nom Description

trimBlanks Supprime les caractères d'espace vide de fin d'une chaîneVARCHAR. Ce paramètre s'applique uniquement auxcolonnes avec un type de données VARCHAR.

Valeur par défaut : false

Valeurs valides : true | false

Exemple :

trimBlanks=false;

encryptionMode Le mode de chiffrement côté serveur que vous souhaitezutiliser pour transférer vos données vers S3 avant qu'ellesne soient copiées vers Amazon Redshift. Les valeurs validessont SSE_S3 (chiffrement côté serveur S3) ou SSE_KMS(chiffrement de clé KMS). Si vous choisissez SSE_KMS,définissez le paramètre serverSideEncryptionKmsKeyIdsur l'Amazon Resource Name (ARN) de la clé KMS à utiliserpour le chiffrement.

Valeur par défaut : SSE_S3

Valeurs valides : SSE_S3 ou SSE_KMS

Exemple:encryptionMode=SSE_S3;

serverSideEncryptionKmsKeyId Si vous définissez encryptionMode sur SSE_KMS,définissez ce paramètre sur l'ARN de la clé KMS. Vouspouvez rechercher cet ARN en sélectionnant l'alias de clédans la liste des clés KMS créées pour votre compte. Lorsquevous créez la clé, vous devez lui associer des stratégies etdes rôles spécifiques. Pour plus d'informations, consultezCréation et utilisation de clés AWS KMS pour chiffrer desdonnées cibles Amazon Redshift (p. 232).

Exemple :

serverSideEncryptionKmsKeyId=arn:aws:kms:us-east-1:944454115380:key/24c3c5a1-f34a-4519-a85b-2debbef226d1;

Types de donnée cible pour Amazon RedshiftLe point de terminaison Amazon Redshift pour AWS DMS prend en charge la plupart des types de donnéesAmazon Redshift. Le tableau suivant présente les types de données cibles Amazon Redshift qui sont prisen charge lorsque vous utilisez AWS DMS et le mappage par défaut à partir des types de données AWSDMS.

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Types de données AWS DMS Types de données Amazon Redshift

BOOLEAN BOOL

Version de l'API API Version 2016-01-01239

Page 247: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Redshift comme cible

Types de données AWS DMS Types de données Amazon Redshift

BYTES VARCHAR (Length)

DATE DATE

TIME VARCHAR(20)

DATETIME Si l'échelle est => 0 et =< 6, alors :

TIMESTAMP (s)

Si l'échelle est => 7 et =< 9, alors :

VARCHAR (37)

INT1 INT2

INT2 INT2

INT4 INT4

INT8 INT8

NUMERIC Si l'échelle est => 0 et =< 37, alors :

NUMERIC (p,s)

Si l'échelle est => 38 et =< 127, alors :

VARCHAR (Length)

REAL4 FLOAT4

REAL8 FLOAT8

STRING Si la longueur est comprise entre 1–65 535, utilisezVARCHAR (longueur en octets)

Si la longueur est comprise entre 65 536–2 147 483 647, utilisez VARCHAR (65535)

UINT1 INT2

UINT2 INT2

UINT4 INT4

UINT8 NUMERIC (20,0)

WSTRING Si la longueur est comprise entre 1–65 535, utilisezNVARCHAR (longueur en octets)

Si la longueur est comprise entre 65 536–2 147 483 647, utilisez NVARCHAR (65535)

BLOB VARCHAR (taille de LOB maximale *2)

La taille LOB maximum ne doit pas dépasser31 Ko. Amazon Redshift ne prend pas en chargeles VARCHAR de plus de 64 Ko.

Version de l'API API Version 2016-01-01240

Page 248: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme cible

Types de données AWS DMS Types de données Amazon Redshift

NCLOB NVARCHAR (taille de LOB maximale)

La taille LOB maximum ne doit pas dépasser63 Ko. Amazon Redshift ne prend pas en chargeles VARCHAR de plus de 64 Ko.

CLOB VARCHAR (taille de LOB maximale)

La taille LOB maximum ne doit pas dépasser63 Ko. Amazon Redshift ne prend pas en chargeles VARCHAR de plus de 64 Ko.

Utilisation d'une base de données SAP ASE commecible pour AWS Database Migration ServiceVous pouvez migrer des données de bases de données SAP Adaptive Server Enterprise (ASE)–anciennement Sybase– à l'aide de AWS DMS ou partir d'une des sources de base de données prises encharge.

SAP ASE versions 15, 15.5, 15.7, 16 et ultérieures sont prises en charge.

Conditions requises pour l'utilisation de la base de données SAPASE comme cible pour AWS Database Migration ServiceAvant de commencer à utiliser une base de données SAP ASE comme cible pour AWS DMS, assurez-vousque les conditions préalables suivantes sont remplies :

• Vous devez fournir à l'utilisateur de AWS DMS un accès au compte SAP ASE. Cet utilisateur doitdisposer de privilèges de lecture/écriture dans la base de données SAP ASE.

• Lors de la réplication vers SAP ASE version 15,7 installé sur une instance EC2 Windows configurée avecdes caractères non latins (par exemple, le chinois), AWS DMS nécessite que SAP ASE 15.7 SP121 soitinstallé sur la machine SAP ASE cible.

Attributs de connexion supplémentaires lors de l'utilisation deSAP ASE en tant que cible pour AWS DMSVous pouvez utiliser les attributs de connexion supplémentaires pour configurer votre cible SAP ASE.Vous spécifiez ces paramètres lorsque vous créez le point de terminaison cible. Si vous avez plusieursparamètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espacesupplémentaire.

Le tableau suivant indique les attributs de connexion supplémentaires disponibles lors de l'utilisation deSAP ASE comme cible :

Nom Description

enableReplication Définissez cet attribut à la valeur Y pour activerautomatiquement la réplication SAP ASE. Ceci est nécessaireuniquement si la réplication SAP ASE n'a pas déjà étéactivée.

Version de l'API API Version 2016-01-01241

Page 249: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de SAP ASE comme cible

Nom Description

additionalConnectionProperties Autres paramètres de connexion ODBC que vous souhaitezspécifier.

Note

Si le nom d'utilisateur ou le mot de passe spécifié dans la chaîne de connexion contientdes caractères non latins (par exemple, en chinois), la propriété suivante est obligatoire :charset=gb18030

Types de données cibles pour SAP ASELe tableau suivant présente les types de données cibles de bases de données SAP ASE qui sont pris encharge lorsque vous utilisez AWS DMS et le mappage par défaut des types de données AWS DMS.

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Types de données AWS DMS Types de données SAP ASE

BOOLEAN BIT

BYTES VARBINARY (Length)

DATE DATE

TIME TIME

TIMESTAMP Si l'échelle est => 0 et =< 6, alors : BIGDATETIME

Si l'échelle est => 7 et =< 9, alors : VARCHAR (37)

INT1 TINYINT

INT2 SMALLINT

INT4 INTEGER

INT8 BIGINT

NUMERIC NUMERIC (p,s)

REAL4 REAL

REAL8 DOUBLE PRECISION

STRING VARCHAR (Length)

UINT1 TINYINT

UINT2 UNSIGNED SMALLINT

UINT4 UNSIGNED INTEGER

UINT8 UNSIGNED BIGINT

WSTRING VARCHAR (Length)

BLOB IMAGE

Version de l'API API Version 2016-01-01242

Page 250: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Types de données AWS DMS Types de données SAP ASE

CLOB UNITEXT

NCLOB TEXT

AWS DMS ne prend pas en charge les tables qui contiennent des champs comportant les types dedonnées suivants. Les colonnes répliquées avec ces types de données s'affichent en tant que valeursNULL.

• Type défini par l'utilisateur (UDT)

Utilisation d'Amazon S3 comme cible pourAWS Database Migration ServiceVous pouvez migrer des données vers Amazon S3 en utilisant AWS DMS depuis n'importe quelles sourcesde base de données prises en charge. Lorsque vous utilisez Amazon S3 en tant que cible dans une tâcheAWS DMS, les données du chargement complet et celles de la capture des données modifiées (CDC) sontécrites par défaut dans un format .csv (valeurs séparées par une virgule). Pour plus d'options de stockagecompact et de requêtes plus rapides, vous avez également la possibilité d'écrire les données au formatApache Parquet (.parquet).

AWS DMS nomme les fichiers créés lors d'un chargement complet à l'aide d'un compteur hexadécimalincrémentiel – par exemple, LOAD00001.csv, LOAD00002..., LOAD00009, LOAD0000A et ainsi desuite pour des fichiers .csv. AWS DMS nomme les fichiers CDC avec des horodatages (par exemple,20141029-1134010000.csv). Pour chaque table source, AWS DMS crée un dossier dans le dossier ciblespécifié. AWS DMS écrit tous les chargements complets et les fichiers CDC dans le compartiment AmazonS3 spécifié.

Le paramètre bucketFolder contient l'emplacement où les fichiers .csv ou .parquet sont stockés avantd'être téléchargés vers le compartiment S3. Avec des fichiers .csv, les données de la table sont stockéesdans le compartiment S3 sous le format suivant.

<schema_name>/<table_name>/LOAD00000001.csv<schema_name>/<table_name>/LOAD00000002.csv...<schema_name>/<table_name>/LOAD00000009.csv<schema_name>/<table_name>/LOAD0000000A.csv<schema_name>/<table_name>/LOAD0000000B.csv...<schema_name>/<table_name>/LOAD0000000F.csv<schema_name>/<table_name>/LOAD00000010.csv...

Vous pouvez spécifier le délimiteur de colonne, le délimiteur de ligne et d'autres paramètres à l'aide desattributs de connexion supplémentaires. Pour obtenir plus d'informations sur les attributs de connexionsupplémentaires, consultez Attributs de connexion supplémentaires lors de l'utilisation de Amazon S3 entant que cible pour AWS DMS (p. 257) à la fin de cette section.

Lorsque vous utilisez AWS DMS pour répliquer les données modifiées, la première colonne du fichier desortie .csv ou .parquet indique la manière dont les données ont été modifiées pour le fichier .csv suivant :

I,101,Smith,Bob,4-Jun-14,New YorkU,101,Smith,Bob,8-Oct-15,Los AngelesU,101,Smith,Bob,13-Mar-17,Dallas

Version de l'API API Version 2016-01-01243

Page 251: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

D,101,Smith,Bob,13-Mar-17,Dallas

Pour cet exemple, supposons qu'il y ait une EMPLOYEE table dans la base de données source. AWS DMSécrit les données dans le fichier .csv ou .parquet en réponse aux événements suivants :

• Un nouvel employé (Bob Smith, ID employé 101) est engagé le 4 juin 2014 au bureau de New York.Dans le fichier .csv ou .parquet, la valeur I dans la première colonne indique qu'une nouvelle ligne a faitl'objet d'une opération INSERT dans la table EMPLOYEE de la base de données source.

• Le 8 octobre 2015, Bob est transféré au bureau de Los Angeles. Dans le fichier .csv ou .parquet, lavaleur U indique que la ligne correspondante de la table EMPLOYEE a fait l'objet d'une opérationUPDATE pour refléter le nouvel emplacement du bureau de Bob. Le reste reflète la ligne de la tableEMPLOYEE telle qu'elle apparaît après l'opération UPDATE.

• Le 13 mars 2017, Bob Dallas est à nouveau transféré au bureau de Dallas. Dans le fichier .csvou .parquet, la valeur U indique que cette ligne a fait de nouveau l'objet d'une opération UPDATE. Le restereflète la ligne de la table EMPLOYEE telle qu'elle apparaît après l'opération UPDATE.

• Après avoir travaillé quelque temps à Dallas, Bob quitte l'entreprise. Dans le fichier .csv ou .parquet, lavaleur D indique que la ligne a fait l'objet d'une opération DELETE dans la table source. Le reste reflète laligne de la table EMPLOYEE telle qu'elle apparaît avant la suppression.

Prérequis pour l'utilisation d'Amazon S3 comme cibleAvant d'utiliser Amazon S3 comme une cible, vérifiez que les conditions suivantes sont réunies :

• Le compartiment S3 que vous utilisez en tant que cible est dans la même région que l'instance deréplication DMS que vous utilisez pour la migration de vos données.

• Le compte AWS que vous utilisez pour la migration bénéficie d'un rôle IAM avec accès en lecture et enécriture sur le compartiment S3 que vous utilisez comme cible.

• Ce rôle dispose d'un accès de balisage afin que vous pouvez baliser tous les objets S3 écrits sur lecompartiment cible.

Pour définir cet accès de compte, assurez-vous que le rôle affecté au compte utilisateur utilisé pour créer latâche de migration bénéficie de l'ensemble d'autorisations suivant.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::buckettest2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::buckettest2" ] }

Version de l'API API Version 2016-01-01244

Page 252: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

]}

Limitations de l'utilisation d'Amazon S3 en tant que cibleLes limitations suivantes s'appliquent à un fichier dans Amazon S3 que vous utilisez comme cible :

• Seules les commandes du langage de définition de données (DDL) suivantes sont prises en charge :TRUNCATE TABLE, DROP TABLE, et CREATE TABLE.

• Le Mode LOB complet n'est pas pris en charge.• Les modifications apportées à la structure de la table source lors du chargement complet ne sont pas

prises en charge. Les modifications apportées aux données sont prises en charge durant le chargementcomplet.

• Lorsque plusieurs tâches répliquent des données d'une même table source vers le même compartimentde point de terminaison S3 cible, ces tâches écrivent dans le même fichier. Nous vous recommandonsde spécifier des points de terminaison (compartiments) cibles différents si votre source de données estde la même table.

SécuritéPour utiliser Amazon S3 en tant que cible, le compte utilisé pour la migration doit bénéficier d'un accès enécriture et en suppression sur le compartiment Amazon S3 qui est utilisé comme cible. Spécifiez l'AmazonResource Name (ARN) d'un rôle IAM qui bénéficie des autorisations requises pour accéder à Amazon S3.

AWS DMS prend en charge un ensemble d'autorisations prédéfinies pour Amazon S3, appelé listede contrôle d'accès (ACL). Chaque liste ACL prédéfinie possède un ensemble de bénéficiaires etd'autorisations que vous pouvez utiliser pour définir les autorisations sur le compartiment Amazon S3. Vouspouvez spécifier une liste ACL prédéfinie à l'aide de l'attribut cannedAclForObjects de la chaîne deconnexion de votre point de terminaison cible S3. Pour plus d'informations sur l'utilisation de l'attribut deconnexion supplémentaire cannedAclForObjects, consultez Attributs de connexion supplémentaireslors de l'utilisation de Amazon S3 en tant que cible pour AWS DMS (p. 257). Pour plus d'informations surles listes ACL prédéfinies Amazon S3, consultez Listes ACL prédéfinies.

Le rôle IAM que vous utilisez pour la migration doit être en mesure d'effectuer l'opération d'APIs3:PutObjectAcl.

Utilisation d'Apache Parquet pour stocker des objets Amazon S3Le format de valeurs séparées par des virgules (.csv) est le format de stockage par défaut pour les objetscibles Amazon S3. Pour un stockage plus compact et des requêtes plus rapides, vous pouvez utiliser leformat de stockage Apache Parquet (.parquet).

Apache Parquet est un format de stockage de fichiers open source, initialement conçu pour Hadoop. Pourplus d'informations sur Apache Parquet, consultez https://parquet.apache.org/.

Pour définir .parquet comme format de stockage pour vos objets cibles S3 migrés, vous pouvez utiliser lesmécanismes suivants :

• Paramètres de point de terminaison que vous fournissez sous forme de paramètres d'objet JSONlorsque vous créez le point de terminaison à l'aide de l'AWS CLI ou de l'API pour AWS DMS. Pour plusd'informations, consultez Paramètres de point de terminaison lors de l'utilisation de Amazon S3 commecible pour AWS DMS (p. 255).

• Attributs de connexion supplémentaires que vous fournissez sous forme de liste séparée par despoints-virgules lorsque vous créez le point de terminaison. Pour plus d'informations, consultezAttributs de connexion supplémentaires lors de l'utilisation de Amazon S3 en tant que cible pour AWSDMS (p. 257).

Version de l'API API Version 2016-01-01245

Page 253: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Balisage d'objet Amazon S3Vous pouvez baliser des objets Amazon S3 créés par une instance de réplication en spécifiant les objetsJSON appropriés dans le cadre des règles de mappage de tables de tâches. Pour plus d'informationssur les exigences et les options pour le balisage des objets S3, y compris les noms de balise valides,consultez Balisage d'objets dans le Amazon Simple Storage Service Manuel du développeur. Pour plusd'informations sur le mappage de table avec JSON, consultez Spécification d'une sélection de table et detransformations par mappage de table à l'aide de JSON (p. 368).

Vous pouvez baliser des objets S3 créés pour des tables et des schémas spécifiés à l'aide d'un ouplusieurs objets JSON du type de règle selection. Vous pouvez faire suivre cet objet (ou ces objets)selection d'un ou plusieurs objets JSON du type de règle post-processing avec l'action add-tag.Ces règles de post-traitement identifient les objets S3 que vous souhaitez baliser et spécifient les noms etles valeurs des balises que vous souhaitez ajouter à ces objets S3.

Vous trouverez les paramètres à spécifier dans les objets JSON du type de règle post-processing dansle tableau suivant.

Paramètre Valeurs possibles Description

rule-type post-processing Valeur qui applique des actions de post-traitement aux objets cibles générés.Vous pouvez spécifier une ou plusieursrègles de post-traitement pour baliser lesobjets S3 sélectionnés.

rule-id Valeur numérique. Valeur numérique unique pour identifierla règle.

rule-name Valeur alphanumérique. Nom unique pour identifier la règle.

rule-action add-tag Action de post-traitement que voussouhaitez appliquer à l'objet S3. Vouspouvez ajouter une ou plusieursbalises à l'aide d'un seul objet de post-traitement JSON pour l'action add-tag.

object-locator schema-name – Nom du schéma detable.

table-name – Nom de la table.

Nom de chaque schéma et de chaquetable auxquels la règle s'applique. Vouspouvez utiliser le signe « % » commecaractère générique pour tout ou partiede la valeur de chaque paramètreobject-locator. Ainsi, vous pouvezfaire correspondre ces éléments :

• Une table unique dans un schémaunique

• Une table unique dans certainsschémas ou dans tous les schémas

• Certaines tables ou toutes les tablesdans un schéma unique

• Certaines tables ou toutes les tablesdans certains schémas ou dans tousles schémas

tag-set key – Tout nom valide pour une baliseunique.

Noms et valeurs d'un ou plusieursbalises que vous souhaitez définir surchaque objet S3 créé qui correspond

Version de l'API API Version 2016-01-01246

Page 254: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Paramètre Valeurs possibles Descriptionvalue – Toute valeur JSON valide pourcette balise.

au paramètre object-locatorspécifié. Vous pouvez spécifier jusqu'à10 paires clé-valeur dans un objet deparamètre tag-set unique. Pour plusd'informations sur le balisage d'objetsS3, consultez Balisage des objets dansle Amazon Simple Storage ServiceManuel du développeur.

Vous pouvez également spécifier unevaleur dynamique pour tout ou partiede la valeur pour les paramètres valueet key d'une balise à l'aide de ${dyn-value}. Ici, ${dyn-value} peutêtre ${schema-name} ou ${table-name}. Par conséquent, vous pouvezinsérer le nom du schéma ou de la tableactuellement sélectionné en tant quetout ou partie de la valeur du paramètre.

Note

Important

Si vous insérez unevaleur dynamique pourle paramètre key,vous pouvez générerdes balises avecdes noms dupliquéspour un objet S3, enfonction de la manièredont vous l'utilisez.Dans ce cas, seul undes paramètres debalise dupliqués estajouté à l'objet.

Lorsque vous spécifiez plusieurs types de règle post-processing pour baliser une sélection d'objetsS3, chaque objet S3 est balisé à l'aide d'un seul objet tag-set à partir d'une règle de post-traitement.L'ensemble de balises utilisé pour baliser un objet S3 donné est celui issu de la règle de post-traitementdont le localisateur d'objet associé correspond le mieux à l'objet S3.

Par exemple, supposons que deux règles de post-traitement identifient le même objet S3. Supposonségalement que le localisateur d'objet d'une règle utilise des caractères génériques et que le localisateurd'objet de l'autre règle utilise une correspondance exacte pour identifier l'objet S3 (sans caractèresgénériques). Dans ce cas, l'ensemble de balises associé à la règle de post-traitement avec lacorrespondance exacte est utilisé pour baliser l'objet S3. Si plusieurs règles de post-traitementcorrespondent de manière identique à un objet S3, l'ensemble de balises associé à la première règle depost-traitement est utilisé pour baliser l'objet.

Example Ajout de balises statiques à un objet S3 créé pour une table et un schéma unique

Les règles de sélection et de post-traitement suivantes ajoutent trois balises (tag_1, tag_2 et tag_3 avecleurs valeurs statiques correspondantes value_1, value_2 et value_3) à un objet S3 créé. Cet objet S3correspond à une table unique dans la source nommée STOCK avec un schéma nommé aat2.

Version de l'API API Version 2016-01-01247

Page 255: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

{ "rules": [ { "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "aat2", "table-name": "STOCK" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat2", "table-name": "STOCK", }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" }, { "key": "tag_3", "value": "value_3" } ] } ]}

Example Ajout de balises statiques et dynamiques à des objets S3 créés pour plusieurs tables etschémas

L'exemple suivant présente une règle de sélection et deux règles de post-traitement, où l'entrée de lasource inclut toutes les tables et tous leurs schémas.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": {

Version de l'API API Version 2016-01-01248

Page 256: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

"schema-name": "%", "table-name": "%", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_${table-name}" } ] }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat", "table-name": "ITEM", }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" } ] } ]}

La première règle de post-traitement ajoute deux balises (dw-schema-name et dw-schema-table)avec les valeurs dynamiques correspondantes (${schema-name} et my_prefix_${table-name})pour presque tous les objets S3 créés dans la cible. L'exception est l'objet S3 identifié et balisé avec laseconde règle de post-traitement. Par conséquent, chaque objet S3 cible identifié par le localisateur d'objetutilisant des caractères génériques est créé avec des balises qui identifient le schéma et la table auxquels ilcorrespond dans la source.

La deuxième règle de post-traitement ajoute tag_1 et tag_2 avec les valeurs statiques correspondantesvalue_1 et value_2 à un objet S3 qui est identifié par un localisateur d'objet utilisant une correspondanceexacte. Cet objet S3 créé correspond donc à la table unique dans la source nommée ITEM avec unschéma nommé aat. En raison de la correspondance exacte, ces balises remplacent toutes les balisessur cet objet ajouté à partir de la première règle de post-traitement, qui correspond à des objets S3 parcaractère générique uniquement.

Example Ajout de noms et de valeurs de balise dynamique à des objets S3

L'exemple suivant comporte deux règles de sélection et une règle de post-traitement. Ici, l'entrée à partir dela source comprend seulement la table ITEM dans le schéma retail ou wholesale.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {

Version de l'API API Version 2016-01-01249

Page 257: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

"schema-name": "retail", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "wholesale", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": { "schema-name": "%", "table-name": "ITEM", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_ITEM" }, { "key": "${schema-name}_ITEM_tag_1", "value": "value_1" }, { "key": "${schema-name}_ITEM_tag_2", "value": "value_2" } ] ]}

L'ensemble de balises pour la règle de post-traitement ajoute deux balises (dw-schema-name et dw-schema-table) à tous les objets S3 créés pour la table ITEM dans la cible. La première balise a la valeurdynamique "${schema-name}" et la deuxième balise a une valeur statique, "my_prefix_ITEM". Parconséquent, chaque objet S3 cible est créé avec des balises qui identifient le schéma et la table auxquels ilcorrespond dans la source.

En outre, l'ensemble de balises ajoute deux balises supplémentaires avec des noms dynamiques(${schema-name}_ITEM_tag_1 et "${schema-name}_ITEM_tag_2"). Ces derniers ont les valeursstatiques correspondantes value_1 et value_2. Ainsi, chacune de ces balises est nommée pour leschéma actuel, retail ou wholesale. Vous ne pouvez pas créer un nom de balise dynamique dupliquédans cet objet, car chaque objet est créé pour un nom de schéma unique. Le nom de schéma est utilisépour créer un autre nom de balise unique.

Version de l'API API Version 2016-01-01250

Page 258: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Création de clés AWS KMS pour chiffrer des objets ciblesAmazon S3Vous pouvez créer et utiliser des clés personnalisées AWS KMS pour chiffrer vos objets cibles AmazonS3. Après avoir créé une clé AWS KMS appropriée, vous pouvez utiliser cette clé pour chiffrer les objets àl'aide d'un des mécanismes suivants lorsque vous créez le point de terminaison cible S3 :

• Utilisez les options suivantes pour les objets cibles S3 (avec le format de stockage de fichiers .csv pardéfaut) lorsque vous exécutez la commande create-endpoint à l'aide de l'AWS CLI.

--s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "your-KMS-key-ARN"}'

Ici, your-KMS-key-ARN est l'Amazon Resource Name (ARN) pour votre clé AWS KMS. Pour plusd'informations, consultez Paramètres de point de terminaison lors de l'utilisation de Amazon S3 commecible pour AWS DMS (p. 255).

• Définissez l'attribut de connexion supplémentaire encryptionMode à la valeur SSE_KMS et l'attribut deconnexion supplémentaire serverSideEncryptionKmsKeyId à l'ARN de votre clé AWS KMS. Pourde plus amples informations, veuillez consulter Attributs de connexion supplémentaires lors de l'utilisationde Amazon S3 en tant que cible pour AWS DMS (p. 257).

Pour chiffrer des objets cibles Amazon S3 à l'aide d'une clé AWS KMS, vous avez besoin d'un rôle IAM quidispose des autorisations d'accès au compartiment Amazon S3. Ce rôle IAM est ensuite accédé dans unestratégie (stratégie de clé) attachée à la clé de chiffrement que vous créez. Pour cela, créez les élémentssuivants dans votre console IAM :

• Une stratégie avec les autorisations d'accès au compartiment Amazon S3.• Un rôle IAM avec cette stratégie.• Une clé de chiffrement AWS KMS avec une stratégie de clé qui fait référence à ce rôle.

Les procédures suivantes décrivent la marche à suivre.

Pour créer une stratégie IAM avec les autorisations d'accès au compartiment Amazon S3

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet de navigation, choisissez Stratégies. La page Stratégies s'ouvre.3. Choisissez Créer une stratégie. La page Créer une stratégie s'ouvre.4. Choisissez Service, puis S3. Une liste d'autorisations d'action s'affiche.5. Choisissez Développer tout pour développer la liste et choisissez au moins les autorisations

suivantes :

• ListBucket• PutObject• DeleteObject

Choisissez toute autre autorisation dont vous avez besoin, puis sélectionnez Réduire tout pour réduirela liste.

6. Choisissez Ressources pour spécifier les ressources auxquelles vous souhaitez accéder. Au minimum,choisissez Toutes les ressources pour fournir un accès général aux ressources Amazon S3.

Version de l'API API Version 2016-01-01251

Page 259: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

7. Ajoutez toute autre condition ou autorisation dont vous avez besoin, puis choisissez Examiner unestratégie. Vérifiez vos résultats sur la page Examiner une stratégie.

8. Si les paramètres vous conviennent, entrez un nom pour la stratégie (par exemple, DMS-S3-endpoint-access) et une description, puis choisissez Créer une stratégie. La page Stratégiess'ouvre et affiche un message indiquant que votre stratégie a été créée.

9. Recherchez et choisissez le nom de la stratégie dans la liste Stratégies. La page Récapitulatif affichela stratégie au format JSON comme ci-après.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": "*" } ]}

Vous avez créé une nouvelle stratégie pour accéder à des ressources Amazon S3 en vue du chiffrementavec un nom spécifié, par exemple DMS-S3-endpoint-access.

Pour créer un rôle IAM avec cette stratégie

1. Dans votre console IAM, choisissez Rôles dans le volet de navigation. La page détaillée Rôles s'ouvre.2. Sélectionnez Créer un rôle. La page Créer un rôle s'ouvre.3. Service AWS étant sélectionné en tant qu'entité de confiance, choisissez DMS en tant que service qui

utilisera le rôle.4. Sélectionnez Étape suivante : autorisations. La vue Attach permissions policies (Attacher des

stratégies d'autorisation) s'affiche dans la page Créer un rôle.5. Recherchez et sélectionnez la stratégie de rôle que vous avez créée dans la procédure précédente

(DMS-S3-endpoint-access).6. Choisissez Suivant : Balises. La vue Ajouter des balises s'affiche dans la page Créer un rôle. Ici, vous

pouvez ajouter toutes les balises souhaitées.7. Choisissez Next: Review (Suivant : Vérification). La vue Vérifier s'affiche dans la page Créer un rôle.

Ici, vous pouvez vérifier les résultats.8. Si les paramètres vous conviennent, entrez un nom pour le rôle (par exemple, DMS-S3-endpoint-

access-role) et une description, puis choisissez Créer un rôle. La page détaillée Rôles s'ouvre etaffiche un message indiquant que votre rôle a été créé.

Vous avez désormais créé le nouveau rôle pour accéder aux ressources Amazon S3 en vue du chiffrementavec un nom spécifié, par exemple DMS-S3-endpoint-access-role.

Pour créer une clé de chiffrement AWS KMS avec une stratégie de clé qui fait référence à votrerôle IAM.

Note

Pour plus d'informations sur le fonctionnement d'AWS DMS avec les clés de chiffrement AWSKMS, consultez Définition d'une clé de chiffrement et spécification des autorisations AWSKMS (p. 78).

Version de l'API API Version 2016-01-01252

Page 260: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Key Management Service(AWS KMS) à l'adresse https://console.aws.amazon.com/kms.

2. Pour changer de région AWS, utilisez le sélecteur de région dans l’angle supérieur droit de la page.3. Dans le volet de navigation, choisissez Customer managed keys (Clés gérées par le client).4. Choisissez Create key. La page Configurer la clé s'ouvre.5. Pour Type de clé, choisissez Symétrique.

Note

Vous ne pouvez créer qu'une clé symétrique, car tous les services AWS, tels qu'Amazon S3,ne fonctionnent qu'avec des clés de chiffrement symétriques.

6. Choisissez Options avancées. Pour Origine des éléments de clé, assurez-vous que KMS est choisi,puis choisissez Suivant. La page Ajouter des étiquettes s'ouvre.

7. Dans Créer un alias et une description, entrez un alias pour la clé (par exemple, DMS-S3-endpoint-encryption-key) et toute description supplémentaire.

8. Pour Balises, ajoutez les balises que vous souhaitez pour vous aider à identifier la clé et suivre sonutilisation, puis choisissez Suivant. La page Définir des autorisations d'administration de clé s'ouvre etaffiche une liste d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

9. Ajoutez les utilisateurs et les rôles que vous souhaitez voir gérer la clé. Assurez-vous que cesutilisateurs et ces rôles ont les autorisations requises pour gérer la clé.

10. Pour Suppression de clé, choisissez si les administrateurs de clé peuvent supprimer celle-ci, puischoisissez Suivant. La page Définir des autorisations d'utilisation de clé s'ouvre et affiche une listesupplémentaire d'utilisateurs et de rôles parmi lesquels vous pouvez choisir.

11. Pour Ce compte, sélectionnez les utilisateurs disponibles pour lesquels vous souhaitez effectuerdes opérations de chiffrement sur des cibles Amazon S3. Choisissez le rôle que vous avez crééprécédemment dans Rôles pour activer l'accès au chiffrement des objets cibles Amazon S3, parexemple DMS-S3-endpoint-access-role.

12. Si vous souhaitez ajouter d'autres comptes non répertoriés pour avoir ce même accès, pour Autrescomptes AWS, choisissez Ajouter un autre compte AWS, puis Suivant. La page Réviser et modifier lastratégie de clé s'ouvre, affichant le JSON de la stratégie de clé que vous pouvez réviser et modifieren saisissant les informations dans le JSON existant. Ici, vous pouvez voir où la stratégie clé faitréférence au rôle et aux utilisateurs (par exemple, Admin et User1) que vous avez choisis à l'étapeprécédente. Vous pouvez également voir les actions clés autorisées pour les différents mandataires(utilisateurs et rôles), comme illustré dans l'exemple suivant.

{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/Admin" ]

Version de l'API API Version 2016-01-01253

Page 261: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/DMS-S3-endpoint-access-role", "arn:aws:iam::944454115380:role/Admin", "arn:aws:iam::944454115380:role/User1" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::944454115380:role/DMS-S3-endpoint-access-role", "arn:aws:iam::944454115380:role/Admin", "arn:aws:iam::944454115380:role/User1" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ]

13. Choisissez Finish (Terminer). La page Clés de chiffrement s'ouvre et affiche un message indiquant quevotre clé de chiffrement principale a été créée.

Version de l'API API Version 2016-01-01254

Page 262: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Vous venez de créer une nouvelle clé AWS KMS avec un alias spécifié (par exemple, DMS-S3-endpoint-encryption-key). Cette clé permet à AWS DMS de chiffrer des objets cibles Amazon S3.

Paramètres de point de terminaison lors de l'utilisation deAmazon S3 comme cible pour AWS DMSVous pouvez utiliser des paramètres de point de terminaison pour configurer votre cible Amazon S3comme si vous utilisiez des attributs de connexion supplémentaires. Vous pouvez spécifier ces paramètreslorsque vous créez le point de terminaison cible à l'aide de la commande create-endpoint dansl'AWS CLI, avec l'option --s3-settings 'json-settings'. Ici, json-settings est un objetJSON contenant des paramètres pour spécifier la configuration. Vous pouvez également spécifier unfichier .json contenant le même objet json-settings, comme dans l'exemple suivant : --s3-settingsfile:///your-file-path/my_s3_settings.json. Ici, my_s3_settings.json est le nom d'unfichier .json qui contient le même json-settings object.

Notez que les noms de paramètre pour les paramètres de point de terminaison sont les mêmes queleur équivalent pour les attributs de connexion supplémentaires, sauf que les noms de paramètre pourles paramètres de point de terminaison commencent par une majuscule. Notez également que tous lesparamètres de point de terminaison cible S3 utilisant des attributs de connexion supplémentaires nesont pas disponibles avec l'option --s3-settings de la commande create-endpoint. Pour plusd'informations sur les paramètres disponibles dans un appel d'AWS CLI à create-endpoint, consultezcreate-endpoint dans le AWS CLI Command Reference pour AWS DMS. Pour plus d'informations sur cesparamètres, consultez les attributs de connexion supplémentaires équivalents dans Attributs de connexionsupplémentaires lors de l'utilisation de Amazon S3 en tant que cible pour AWS DMS (p. 257).

Vous pouvez utiliser les paramètres de point de terminaison cible S3 pour configurer les élémentssuivants :

• Une clé AWS KMS personnalisée pour chiffrer vos objets cibles S3• Des fichiers Parquet comme format de stockage pour les objets cibles S3

Des paramètres de clé AWS KMS pour le chiffrement des données

Les exemples suivants illustrent la configuration d'une clé AWS KMS personnalisée pour chiffrer vos objetscibles S3. Pour commencer, vous pouvez effectuer l'appel create-endpoint suivant à l’aide de l'AWSCLI.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:944454115380:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480"}'

Ici, l'objet JSON spécifié par l'option --s3-settings définit deux paramètres. Lepremier est le paramètre EncryptionMode avec la valeur SSE_KMS. L'autre est unparamètre ServerSideEncryptionKmsKeyId avec la valeur arn:aws:kms:us-east-1:944454115380:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480. Cette valeur est unAmazon Resource Name (ARN) pour votre clé AWS KMS personnalisée. Pour une cible S3, vous spécifiezégalement des paramètres supplémentaires. Ces paramètres identifient le rôle d'accès au serveur,fournissent des délimiteurs pour le format de stockage d'objet CSV par défaut et attribuent l'emplacementet le nom du compartiment pour stocker les objets cibles S3.

Version de l'API API Version 2016-01-01255

Page 263: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Par défaut, le chiffrement de données S3 a lieu à l’aide du chiffrement côté serveur S3. Pour la cible S3de l'exemple précédent, cela équivaut à spécifier ses paramètres de point de terminaison, comme dansl'exemple suivant.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target--s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_S3"}'

Pour plus d'informations sur l’utilisation du chiffrement côté serveur S3, consultez Protection des données àl'aide du chiffrement côté serveur.

Paramètres pour l'utilisation de fichiers .parquet en vue du stockage d'objetscibles S3

Le format par défaut pour la création d'objets cibles S3 est le fichier .csv. Les exemples suivants illustrentcertains paramètres de point de terminaison pour spécifier des fichiers .parquet comme format de créationd'objets cibles S3. Vous pouvez spécifier le format des fichiers .parquet avec toutes les valeurs par défaut,comme dans l'exemple suivant.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "DataFormat": "parquet"}'

Ici, le paramètre DataFormat est défini sur parquet pour activer le format avec toutes les valeurs pardéfaut de S3. Ces valeurs par défaut comprennent un encodage par dictionnaire ("EncodingType:"rle-dictionary") qui utilise une combinaison d'encodage par compression de bits et longueurd'exécution pour stocker de manière plus efficace les valeurs répétitives.

Vous pouvez ajouter des paramètres supplémentaires pour les options autres que les valeurs par défaut,comme dans l'exemple suivant.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target--s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketFolder": "your-bucket-folder","BucketName": "your-bucket-name", "CompressionType": "GZIP", "DataFormat": "parquet", "EncodingType: "plain-dictionary", "dictPageSizeLimit": 3,072,000,"EnableStatistics": false }'

Ici, en plus des paramètres requis pour plusieurs options de compartiment S3 standard et le paramètreDataFormat, les paramètres de fichier .parquet supplémentaires suivants sont définis :

• EncodingType – Permet de définir un encodage par dictionnaire (plain-dictionary) qui stocke lesvaleurs rencontrées dans chaque colonne dans un bloc par colonne de la page de dictionnaire.

• dictPageSizeLimit – Permet de définir une taille de page de dictionnaire de 3 Mo maximum.• EnableStatistics – Désactive la valeur par défaut qui permet la collecte des statistiques sur les

pages et les groupes de lignes du fichier Parquet.

Version de l'API API Version 2016-01-01256

Page 264: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Attributs de connexion supplémentaires lors de l'utilisation deAmazon S3 en tant que cible pour AWS DMSVous pouvez spécifier l'une des options suivantes en tant qu'attributs de connexion supplémentaires. Sivous avez plusieurs paramètres d'attribut de connexion, séparez-les les uns des autres par des points-virgules, sans espace supplémentaire.

Option Description

addColumnName Paramètre facultatif qui lorsqu’il est défini sur true ou y vous permet d'ajouterles informations de nom de colonne dans le fichier de sortie .csv.

Valeur par défaut : false

Valeurs valides : true, false, y, n

Exemple :

addColumnName=true;

bucketFolder Un paramètre facultatif pour définir le nom d'un dossier dans le compartimentS3. S'il est fourni, les objets cibles sont créés en tant que fichiers .csvou .parquet dans le chemin bucketFolder/schema_name/table_name/.Si ce paramètre n'est pas spécifié, le chemin utilisé estschema_name/table_name/.

Exemple :

bucketFolder=testFolder;

bucketName Nom du compartiment S3 dans lequel les objets cibles S3 sont créés en tantque fichiers .csv ou .parquet.

Exemple :

bucketName=buckettest;

cannedAclForObjects Permet à AWS DMS de spécifier une liste de contrôle d'accès prédéfinie pourles objets créés dans le compartiment S3 en tant que fichiers .csv ou .parquet.Pour plus d'informations sur les listes ACL prédéfinies Amazon S3, consultezListes ACL prédéfinies dans le Guide du développeur Amazon S3.

Valeur par défaut : None

Les valeurs valides pour cet attribut sont : NONE, PRIVATE, PUBLIC_READ,PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ,BUCKET_OWNER_READ, BUCKET_OWNER_FULL_CONTROL.

Exemple :

cannedAclForObjects=PUBLIC_READ;

cdcInsertsOnly Paramètre facultatif lors d’une capture de données de modification (CDC)pour écrire uniquement des opérations INSERT dans les fichiers de sortie .csv(valeurs séparées par des virgules) ou .parquet (stockage en colonnes).Par défaut (paramètre false), le premier champ d'un enregistrement .csvou .parquet contient la lettre I (INSERT), U (UPDATE) ou D (DELETE) pourindiquer si la ligne a été insérée, mise à jour ou supprimée dans la base dedonnées source. Si cdcInsertsOnly est défini sur true ou y, seules les

Version de l'API API Version 2016-01-01257

Page 265: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Descriptioncommandes INSERT de la base de données source sont migrées vers lefichier .csv ou .parquet.

Pour le format .csv uniquement, l’enregistrement de de ces commandesINSERT dépend de la valeur de includeOpForFullLoad. SiincludeOpForFullLoad est défini sur true, le premier champ de chaqueenregistrement CDC est défini sur I pour indiquer l'opération INSERT àla source. Si includeOpForFullLoad est défini sur false, chaqueenregistrement CDC est écrit sans premier champ pour indiquer l'opérationINSERT à la source. Pour plus d'informations sur le fonctionnement de cesparamètres utilisés conjointement, consultez Indication des opérations debase de données source dans des données S3 migrées (p. 265).

Note

AWS DMS prend en charge cette interaction entrecdcInsertsOnly et includeOpForFullLoad dans les versions3.1.4 et ultérieures.

Valeur par défaut : false

Valeurs valides : true, false, y, n

Exemple :

cdcInsertsOnly=true;

Version de l'API API Version 2016-01-01258

Page 266: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

cdcInsertsAndUpdatesPermet une charge CDC (Change Data Capture) pour écrire desopérations INSERT et UPDATE dans des fichiers de sortie .csv ou .parquet(stockage en colonnes). Le paramètre par défaut est false, mais quandcdcInsertsAndUpdates est défini sur true ou y, les opérations INSERTet UPDATE de la base de données source sont migrées vers le fichier .csvou .parquet.

Pour le format de fichier .csv uniquement, la manière dont ces opérationsINSERT et UPDATE sont enregistrées dépend de la valeur du paramètreincludeOpForFullLoad. Si la valeur includeOpForFullLoad est définiesur true, le premier champ de chaque enregistrement CDC est défini sur Iou U pour indiquer les opérations INSERT et UPDATE à la source. Mais siincludeOpForFullLoad est défini sur false, les enregistrements CDCsont écrits sans indication des opérations INSERT ou UPDATE à la source.

Pour plus d'informations sur le fonctionnement de ces paramètres utilisésconjointement, consultez Indication des opérations de base de donnéessource dans des données S3 migrées (p. 265).

Note

AWS DMS prend en charge l'utilisation du paramètrecdcInsertsAndUpdates dans les versions 3.3.1 et ultérieures.cdcInsertsOnly et cdcInsertsAndUpdates ne peuvent pastous les deux être définis sur true pour le même point de terminaison.Définissez cdcInsertsOnly ou cdcInsertsAndUpdates surtrue pour le même point de terminaison, mais pas les deux.

Valeur par défaut : false

Valeurs valides : true, false, y, n

Exemple :

cdcInsertsAndUpdates=true;

Version de l'API API Version 2016-01-01259

Page 267: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

includeOpForFullLoadParamètre facultatif lors d’un chargement complet pour écrire les opérationsINSERT dans les fichiers de sortie .csv (valeurs séparées par des virgules)uniquement.

Note

AWS DMS prend en charge includeOpForFullLoad dans lesversions 3.1.4 et ultérieures.

Pour le chargement complet, les enregistrements peuvent être insérésuniquement. Par défaut (paramètre false), avec un chargement complet,aucune information n’est enregistrée dans ces fichiers de sortie pourindiquer que les lignes ont été ajoutés à la base de données source. SiincludeOpForFullLoad est défini sur true ou y, l’opération INSERT estenregistrée en tant que annotation I dans le premier champ du fichier .csv.

Note

Ce paramètre fonctionne conjointement avec cdcInsertsOnly oucdcInsertsAndUpdates pour une sortie dans des fichiers .csvuniquement. Pour plus d'informations sur le fonctionnement deces paramètres utilisés conjointement, consultez Indication desopérations de base de données source dans des données S3migrées (p. 265).

Valeur par défaut : false

Valeurs valides : true, false, y, n

Exemple :

includeOpForFullLoad=true;

compressionType Paramètre facultatif qui lorsqu’il est défini sur GZIP utilise GZIP pourcompresser les fichiers cibles .csv ou .parquet. Lorsque ce paramètre estdéfini sur la valeur par défaut, les fichiers demeurent non compressés.

Valeur par défaut : NONE

Valeurs valides : GZIP ou NONE

Exemple :

compressionType=GZIP;

csvDelimiter Délimiteur utilisé pour séparer les colonnes des fichiers sources .csv. Lavaleur par défaut est une virgule (,).

Exemple :

csvDelimiter=,;

csvRowDelimiter Délimiteur utilisé pour séparer les lignes des fichiers sources .csv. La valeurpar défaut est un caractère de saut de ligne (\ n).

Exemple :

csvRowDelimiter=\n;

Version de l'API API Version 2016-01-01260

Page 268: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

maxFileSize Valeur qui spécifie la taille maximale (en Ko) des fichiers .csv à créer lors de lamigration vers la cible S3 pendant le chargement complet.

Valeur par défaut : 1048576 Ko (1 Go)

Valeurs valides : 1–1048576

Exemple :

maxFileSize=512

rfc4180 Paramètre facultatif utilisé pour définir le comportement afin de se conformerà RFC pour les données migrées vers Amazon S3 à l'aide du format defichier .csv uniquement. Lorsque ce paramètre est défini sur true ou yà l’aide d’Amazon S3 en tant que cible, si les données contiennent desguillemets ou des caractères de saut de ligne, AWS DMS place l'ensemble dela colonne entre guillemets ("). Chaque point d'interrogation contenu dans lesdonnées est répété deux fois. Ce format est conforme à RFC 4180.

Valeur par défaut : true

Valeurs valides : true, false, y, n

Exemple :

rfc4180=false;

encryptionMode Mode de chiffrement côté serveur que vous souhaitez utiliser pour chiffrervos fichiers d'objets .csv ou .parquet copiés dans S3. Les valeurs validessont SSE_S3 (chiffrement côté serveur S3) ou SSE_KMS (chiffrement declé AWS KMS). Si vous choisissez SSE_KMS, définissez le paramètreserverSideEncryptionKmsKeyId sur l'Amazon Resource Name (ARN) dela clé AWS KMS à utiliser pour le chiffrement.

Valeur par défaut : SSE_S3

Valeurs valides : SSE_S3 ou SSE_KMS

Exemple :

encryptionMode=SSE_S3;

serverSideEncryptionKmsKeyIdSi vous définissez encryptionMode sur SSE_KMS, définissez ce paramètresur l'Amazon Resource Name (ARN) de la clé AWS KMS. Vous pouvezrechercher cet ARN en sélectionnant l'alias de clé dans la liste des clésAWS KMS créées pour votre compte. Lorsque vous créez la clé, vous devezassocier les stratégies et les rôles spécifiques associés à cette clé AWS KMS.Pour de plus amples informations, veuillez consulter Création de clés AWSKMS pour chiffrer des objets cibles Amazon S3 (p. 251).

Exemple :

serverSideEncryptionKmsKeyId=arn:aws:kms:us-east-1:944454115380:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480;

Version de l'API API Version 2016-01-01261

Page 269: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

dataFormat Format de sortie pour les fichiers utilisés par AWS DMS pour créer des objetsS3. Pour les cibles Amazon S3, AWS DMS prend en charge les fichiers .csvou .parquet. Les fichiers .parquet ont un format de stockage par colonnesbinaire avec des options de compression efficaces et des performancesde requête plus rapides. Pour plus d'informations sur les fichiers .parquet,consultez https://parquet.apache.org/.

Valeur par défaut : csv

Valeurs valides : csv ou parquet

Exemple :

dataFormat=parquet;

encodingType Type d'encodage Parquet. Parmi les options de type d'encodage, on trouve :

• rle-dictionary – Cet encodage par dictionnaire utilise une combinaisond'encodage par compression de bits et longueur d'exécution pour stocker demanière plus efficace les valeurs répétitives.

• plain – Pas d'encodage.• plain-dictionary – Cet encodage par dictionnaire crée un dictionnaire

à partir des valeurs rencontrées dans une colonne donnée. Le dictionnaireest stocké dans une page de dictionnaire pour chaque bloc de colonne.

Valeur par défaut : rle-dictionary

Valeurs valides : rle-dictionary, plain ou plain-dictionary

Exemple :

encodingType=plain-dictionary;

dictPageSizeLimit Taille maximale autorisée, en octets, pour une page de dictionnaire dans unfichier .parquet. Si une page de dictionnaire dépasse cette valeur, elle utilisel'encodage brut.

Valeur par défaut : 1 024 000 (1 Mo)

Valeurs valides : Toute valeur entière valide

Exemple :

dictPageSizeLimit=2,048,000;

rowGroupLength Nombre de lignes dans un groupe de lignes d'un fichier .parquet.

Valeur par défaut : 10 024 (10 Ko)

Valeurs valides : Toute valeur entière valide

Exemple :

rowGroupLength=20,048;

Version de l'API API Version 2016-01-01262

Page 270: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

dataPageSize Taille maximale autorisée, en octets, pour une page de données dans unfichier .parquet.

Valeur par défaut : 1 024 000 (1 Mo)

Valeurs valides : Toute valeur entière valide

Exemple :

dataPageSize=2,048,000;

parquetVersion Version du format de fichier .parquet.

Valeur par défaut : PARQUET_1_0

Valeurs valides : PARQUET_1_0 ou PARQUET_2_0

Exemple :

parquetVersion=PARQUET_2_0;

enableStatistics Définissez ce paramètre sur true ou y pour activer les statistiques sur lespages et les groupes de lignes des fichiers .parquet.

Valeur par défaut : true

Valeurs valides : true, false, y, n

Exemple :

enableStatistics=false;

Version de l'API API Version 2016-01-01263

Page 271: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

timestampColumnName Paramètre facultatif permettant d’inclure une colonne d'horodatage dans lesdonnées de point de terminaison cible S3.

Note

AWS DMS prend en charge timestampColumnName dans lesversions 3.1.4 et ultérieures.

AWS DMS inclut une colonne STRING supplémentaire dans les fichiersd'objet .csv ou .parquet de vos données migrées lorsque vous définissez unevaleur non vide pour timestampColumnName.

Pour un chargement complet, chaque ligne de cette colonne d'horodatagecontient une valeur d’horodatage correspondant au moment où les donnéesont été transférées de la source vers la cible par DMS.

Pour un chargement CDC, chaque ligne de la colonne d'horodatage contientla valeur d'horodatage correspondant au moment de la validation de cetteligne dans la base de données source.

Le format chaîne pour la valeur de cette colonne d'horodatage est yyyy-MM-dd HH:mm:ss.SSSSSS. Par défaut, la précision de cette valeur esten microsecondes. Pour un chargement de CDC, l'arrondi de la précisiondépend de l’horodatage de validation pris en charge par DMS pour la base dedonnées source.

Lorsque le paramètre addColumnName est défini sur true, DMS inclutégalement le nom de la colonne d'horodatage que vous définissez en tant quevaleur non vide pour timestampColumnName.

Exemple :

timestampColumnName=TIMESTAMP;

Version de l'API API Version 2016-01-01264

Page 272: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Option Description

parquetTimestampInMillisecondParamètre facultatif qui spécifie la précision des valeurs de colonneTIMESTAMP écrites dans un fichier d'objet S3 au format .parquet.

Note

AWS DMS prend en charge parquetTimestampInMilliseconddans les versions 3.1.4 et ultérieures.

Lorsque cet attribut est défini sur true ou y, AWS DMS écrit toutes lescolonnes TIMESTAMP dans un fichier au format .parquet avec une précision àla milliseconde. Sinon, DMS les écrit avec une précision à la microseconde.

Actuellement, Amazon Athena et AWS Glue peuvent gérer une précision à lamilliseconde pour les valeurs TIMESTAMP. Définissez cet attribut sur true pourles fichiers d'objet de point de terminaison S3 au format .parquet uniquementsi vous prévoyez d'interroger ou de traiter les données avec Athena ou AWSGlue.

Note

• AWS DMS écrit les valeurs de colonne TIMESTAMP dans un fichierS3 au format .csv avec une précision à la microseconde.

• La valeur de cet attribut n'a aucun effet sur le format chaîne dela valeur de colonne d'horodatage insérée en définissant l'attributtimestampColumnName.

Valeur par défaut : false

Valeurs valides : true, false, y, n

Exemple :

parquetTimestampInMillisecond=true;

Indication des opérations de base de données source dans des données S3migrées

Lorsque AWS DMS migre les enregistrements vers une cible S3, un champ supplémentaire peut êtrecréé dans chaque enregistrement migré. Ce champ supplémentaire indique l'opération appliquée àl'enregistrement au niveau de la base de données source.

Pour un chargement complet, lorsque la valeur de includeOpForFullLoad est true et que le formatde sortie est .csv, DMS crée toujours un premier champ supplémentaire dans chaque enregistrement .csv.Ce champ contient la lettre I (INSERT) pour indiquer que la ligne a été insérée au niveau de la base dedonnées source. Pour un chargement CDC, lorsque la valeur de cdcInsertsOnly est false (valeurpar défaut), DMS crée également un premier champ supplémentaire dans chaque enregistrement .csvou .parquet. Ce champ contient la lettre I (INSERT), U (UPDATE) ou D (DELETE) pour indiquer si la ligne aété insérée, mise à jour ou supprimée au niveau de la base de données source.

Lorsque le format de sortie est .csv uniquement, les paramètres de includeOpForFullLoad et decdcInsertsOnly ou de cdcInsertsAndUpdates combinés déterminent si oui ou non DMS crée etdéfinit ce premier champ et, si oui, la méthode de création.

Version de l'API API Version 2016-01-01265

Page 273: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon S3 comme cible

Note

• AWS DMS prend en charge includeOpForFullLoad et l'interaction décrites ici entreincludeOpForFullLoad et cdcInsertsOnly dans les versions 3.1.4 et ultérieures.

• AWS DMS prend en charge cette interaction entre includeOpForFullLoad etcdcInsertAndUpdates dans les versions 3.3.1 et ultérieures.

Dans le tableau suivant, vous pouvez voir comment les paramètres des attributsincludeOpForFullLoad et cdcInsertsOnly fonctionnent ensemble pour modifier la configuration desenregistrements migrés sous ce format.

Avec ces valeurs de paramètres DMS définit les enregistrements cibles comme suitpour la sortie .csv

true true Ajout de la valeur dupremier champ définiesur I

Ajout de la valeur dupremier champ définiesur I

false false Aucun champ ajoutée Ajout de la valeur dupremier champ définiedéfinie sur I, U ou D

false true Aucun champ ajoutée Aucun champ ajoutée

true false Ajout de la valeur dupremier champ définiesur I

Ajout de la valeur dupremier champ définiedéfinie sur I, U ou D

Lorsque includeOpForFullLoad et cdcInsertsOnly sont définis sur la même valeur, lesenregistrements cibles sont définis en fonction de l'attribut qui contrôle les paramètres d'enregistrementpour le type de migration actuel. Cet attribut est includeOpForFullLoad pour les chargements completset cdcInsertsOnly pour les chargements CDC.

Lorsque includeOpForFullLoad et cdcInsertsOnly sont définis sur des valeurs différentes,AWS DMS assure la cohérence des paramètres de l'enregistrement pour les chargements CDC et leschargements complets. Pour ce faire, il met en conformité les paramètres d’enregistrement pour unchargement CDC avec ceux du chargement complet précédent spécifié par includeOpForFullLoad.

En d'autres termes, supposons qu'un chargement complet soit défini de façon à ajouter un premierchamp pour indiquer un enregistrement inséré. Dans ce cas, un chargement CDC suivant est défini defaçon à ajouter un premier champ qui indique un enregistrement inséré, mis à jour ou supprimé (selonl'enregistrement au niveau de la source). En revanche, supposons qu'un chargement complet soit définide façon à ne pas ajouter un premier champ pour indiquer un enregistrement inséré. Dans ce cas,un chargement CDC est également défini de façon à ne pas ajouter un premier champ pour chaqueenregistrement, quelle que soit l’opération d’enregistrement correspondante au niveau de la source.

De même, la façon dont DMS crée et définit un premier champ supplémentaire dépend des paramètresde includeOpForFullLoad et cdcInsertsAndUpdates. Dans le tableau suivant, vous pouvezvoir comment les paramètres des attributs includeOpForFullLoad et cdcInsertsAndUpdatesfonctionnent ensemble pour modifier la configuration des enregistrements migrés sous ce format.

Version de l'API API Version 2016-01-01266

Page 274: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

Avec ces valeurs de paramètres DMS définit les enregistrements cibles comme suitpour la sortie .csv

true true Ajout de la valeur dupremier champ définiesur I

Ajout de la valeur dupremier champ définiesur I ou U

false false Aucun champ ajoutée Aucun champ ajoutée

false true Aucun champ ajoutée Aucun champ ajoutée

true false Ajout de la valeur dupremier champ définiesur I

Ajout de la valeur dupremier champ définiedéfinie sur I, U ou D

Utilisation d'une base de données Amazon DynamoDBcomme cible pour AWS Database Migration ServiceVous pouvez utiliser AWS DMS pour migrer les données vers une table Amazon DynamoDB. AmazonDynamoDB est un service de base de données NoSQL entièrement géré qui offre des performancesexceptionnelles et prévisibles en termes de rapidité et de scalabilité. AWS DMS prend en charge l'utilisationd'une base de données relationnelle ou de MongoDB en tant que source.

Dans DynamoDB, les tables, les éléments et les attributs sont les principaux composants que vous utilisez.Une table est un ensemble d'éléments et chaque élément est un ensemble d'attributs. DynamoDB utiliseles clés primaires, appelées clés de partition, pour identifier de façon unique chaque élément d'une table.Vous pouvez également utiliser des clés et des index secondaires pour fournir une plus grande flexibilitéd'interrogation.

Vous utilisez le mappage d'objet afin de migrer vos données d'une base de données source vers une tableDynamoDB cible. Le mappage d'objet vous permet de déterminer l'emplacement des données sourcesdans la cible.

Lorsqu'AWS DMS crée les tables sur un point de terminaison cible DynamoDB, il crée autant de tables quedans le point de terminaison de la base de données source. AWS DMS définit également plusieurs valeursde paramètre DynamoDB. Le coût de création de la table dépend de la quantité de données et du nombrede tables à migrer.

Pour augmenter la vitesse du transfert, AWS DMS prend en charge un chargement complet multithread surune instance cible DynamoDB. DMS prend en charge ce traitement multithread avec des paramètres detâche, notamment les suivants :

• MaxFullLoadSubTasks – Utilisez cette option pour indiquer le nombre maximal de tables source àcharger en parallèle. DMS charge chaque table dans sa table DynamoDB cible correspondante à l'aided'une sous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

• ParallelLoadThreads – Utilisez cette option pour spécifier le nombre de threads que AWS DMSutilise pour charger chaque table dans sa tableDynamoDB cible. La valeur maximale pour une cibleDynamoDB est 32. Vous pouvez demander une augmentation de cette limite maximale.

• ParallelLoadBufferSize – Utilisez cette option pour spécifier le nombre maximal d'enregistrementsà stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger lesdonnées dans la cible DynamoDB. La valeur par défaut est 50. La valeur maximale est 1 000. Utilisez ceparamètre avec ParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dans lecas de plusieurs threads.

• Paramètres de mappage de table pour des tables individuelles – Utilisez des règles table-settingspour identifier les tables individuelles de la source que vous souhaitez charger en parallèle. Utilisez

Version de l'API API Version 2016-01-01267

Page 275: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

également ces règles pour spécifier comment segmenter les lignes de chaque table pour le chargementmultithread. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

DMS attribue chaque segment d'une table à son propre thread pour le chargement. Parconséquent, définissez ParallelLoadThreads sur le nombre maximal de segments que vousspécifiez pour une table de la source.

Lorsque AWS DMS définit les valeurs des paramètres DynamoDB pour une tâche de migration, la valeurpar défaut du paramètre RCU (Unités de capacité de lecture) est définie sur 200.

La valeur du paramètre WCU (Write Capacity Units) est également définie, mais sa valeur dépend deplusieurs autres paramètres :

• La valeur par défaut du paramètre WCU est 200.• Si le paramètre de tâche ParallelLoadThreads est défini sur une valeur supérieure à 1 (0 par

défaut), le paramètre WCU est défini à 200 fois la valeur ParallelLoadThreads.• Dans la région USA Est (Virginie du Nord) (us-east-1), la plus grande valeur possible du paramètre WCU

est 40 000. Si la région AWS est us-east-1 et que la valeur du paramètre est supérieure à 40 000, lavaleur du paramètre WCU est définie sur 40 000.

• Dans les régions AWS autres que la région us-hast-1, la plus grande valeur possible du paramètre WCUest 10 000. Pour toute région AWS autre que la région us-east-1, si la valeur du paramètre WCU estsupérieure à 10 000, la valeur du paramètre WCU est définie sur 10 000.

Migration d'une table de base de données relationnelle vers unetable DynamoDBAWS DMS prend en charge la migration de données vers les types de données scalaires de DynamoDB.Lors d'une migration depuis une base de données relationnelle telle qu'Oracle ou MySQL vers DynamoDB,vous pouvez restructurer la manière dont vous stockez les données.

AWS DMS prend actuellement en charge la restructuration d'une table unique vers une table uniqued'attributs de types scalaires DynamoDB. Si vous migrez des données vers DynamoDB depuis une tablede base de données relationnelle, vous prenez les données d'une table et les reformatez en attributs detypes de données scalaires DynamoDB. Ces attributs peuvent accepter des données de plusieurs colonneset vous pouvez mapper directement une colonne à un attribut.

AWS DMS prend en charge les types de données scalaires DynamoDB suivants :

• Chaîne• Numéro• Booléen

Note

Les données NULL provenant de la source sont ignorées dans la cible.

Conditions préalables à l'utilisation d'DynamoDB comme ciblepour AWS Database Migration ServiceAvant de commencer à utiliser une base de données DynamoDB cible pour AWS DMS, veillez à créer unrôle IAM. Ce rôle IAM doit permettre à AWS DMS d'assumer et d'accorder l'accès aux tables DynamoDB

Version de l'API API Version 2016-01-01268

Page 276: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

qui constituent la cible de la migration. L'ensemble d'autorisations d'accès minimum est indiqué dansl'exemple de stratégie de rôle suivant :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" }]}

Le rôle que vous utilisez pour la migration vers DynamoDB doit bénéficier des autorisations suivantes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:DeleteTable", "dynamodb:DeleteItem", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:account-id:table/name1", "arn:aws:dynamodb:us-west-2:account-id:table/OtherName*", "arn:aws:dynamodb:us-west-2:account-id:table/awsdms_apply_exceptions", "arn:aws:dynamodb:us-west-2:account-id:table/awsdms_full_load_exceptions" ] }, { "Effect": "Allow", "Action": [ "dynamodb:ListTables" ], "Resource": "*" } ]}

Limitations à l'utilisation d'DynamoDB comme cible pourAWS Database Migration ServiceLes limitations suivantes s'appliquent lorsque vous utilisez DynamoDB comme cible :

• DynamoDB limite la précision du type de données Number à 38 places. Stockez tous les types dedonnées en tant que chaîne avec une meilleure précision. Vous devez le spécifier explicitement à l'aidede la fonction de mappage d'objet.

• Étant donné que DynamoDB ne possède pas de type de données Date, les données utilisant le type dedonnées Date sont converties en chaînes.

Version de l'API API Version 2016-01-01269

Page 277: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

• DynamoDB n'autorise pas les mises à jour vers les attributs de clé primaire. Cette restriction estimportante lors de l'utilisation de la réplication continue avec la capture des données modifiées (CDC),car elle peut entraîner des données non souhaitées dans la cible. En fonction de la façon dont l'objetest mappé, une opération CDC qui met à jour la clé primaire peut réaliser l'une des deux actionssuivantes. Elle peut échouer ou insérer un nouvel élément avec la clé primaire mise à jour et desdonnées incomplètes.

• AWS DMS prend uniquement en charge la réplication de tables avec des clés primaires non composites.Une exception s'applique si vous spécifiez un mappage d'objet pour la table cible avec une clé departition ou une clé de tri personnalisée, ou les deux.

• AWS DMS ne prend pas en charge les données LOB à moins qu'il s'agisse de données CLOB. AWSDMS convertit les données CLOB en une chaîne DynamoDB lors de la migration de données.

• Lorsque vous utilisez DynamoDB comme cible, seule la table de contrôle Appliquer les exceptions(dmslogs.awsdms_apply_exceptions) est prise en charge. Pour plus d'informations sur les tablesde contrôle, consultez Paramètres de tâche de la table de contrôle (p. 338).

Utilisation du mappage d'objet pour migrer les données versDynamoDBAWS DMS utilise les règles de mappage de table pour mapper les données depuis la source vers la tableDynamoDB cible. Pour mapper des données vers une cible DynamoDB, vous utilisez un type de règle demappage de table appelé mappage d'objet. Le mappage d'objet vous permet de définir le nom des attributset les données qui doivent être migrées vers ceux-ci. Des règles de sélection doivent être définies lorsquevous utilisez le mappage d'objet.

DynamoDB ne dispose pas d'une structure prédéfinie autre qu'une clé de partition et une clé de trifacultative. Si vous disposez d'une clé primaire non composite, AWS DMS l'utilise. Si vous avez une cléprimaire composite ou si vous souhaitez utiliser une clé de tri, définissez ces clés et les autres attributsdans votre table DynamoDB cible.

Pour créer une règle de mappage d'objet, vous spécifiez le rule-type comme mappage d'objet. Cetterègle spécifie le type de mappage d'objet que vous souhaitez utiliser.

La structure de la règle est la suivante :

{ "rules": [ { "rule-type": "object-mapping", "rule-id": "<id>", "rule-name": "<name>", "rule-action": "<valid object-mapping rule action>", "object-locator": { "schema-name": "<case-sensitive schema name>", "table-name": "" }, "target-table-name": "<table_name>" } } ]}

AWS DMS prend actuellement en charge map-record-to-record et map-record-to-documentcomme les seules valeurs valides pour le paramètre rule-action. Ces valeurs spécifient l'action pardéfaut d'AWS DMS sur les enregistrements qui ne sont pas exclus de par leur appartenance à la liste desattributs exclude-columns. Ces valeurs n'affectent en aucune façon les mappages d'attributs.

• Vous pouvez utiliser map-record-to-record lors de la migration d'une base de données relationnellevers DynamoDB. La clé primaire est utilisée depuis la base de données relationnelle comme clé de

Version de l'API API Version 2016-01-01270

Page 278: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

partition dans DynamoDB et crée un attribut pour chaque colonne dans la base de données source.Lorsque vous utilisez map-record-to-record, pour toute colonne de la table source non répertoriéedans la liste d'attributs exclude-columns, AWS DMS crée un attribut correspondant sur l'instanceDynamoDB cible. Cet attribut est créé, que la colonne source soit ou non utilisée dans un mappaged'attribut.

• Vous utilisez map-record-to-documentpour placer des colonnes source dans un tableau DynamoDBunique et à plat sur la cible, avec le nom d'attribut « _doc. » Lorsque vous utilisez map-record-to-document, AWS DMS place les données dans un attribut de tableau DynamoDB unique et à plat sur lasource. Cet attribut est appelé « _doc ». Ce placement s'applique à toute colonne de la table source nonlistée dans la liste d'attributs exclude-columns.

Une des manières de comprendre la différence entre les paramètres rule-action map-record-to-record et map-record-to-document consiste à voir les deux paramètres en action. Dans cet exemple,imaginons que vous commencez avec une ligne de table d'une base de données relationnelle, présentantla structure et les données suivantes :

Pour migrer ces informations vers DynamoDB, vous créez des règles pour mapper les données dans unélément de la table DynamoDB. Notez les colonnes listées pour le paramètre exclude-columns. Cescolonnes ne sont pas directement mappées à la cible. Le mappage d'attribut est plutôt utilisé pour combinerles données en nouveaux éléments, comme par exemple lorsque FirstName et LastName sont regroupéspour former CustomerName sur la cible DynamoDB. NickName et income ne sont pas exclus.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "1", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName",

Version de l'API API Version 2016-01-01271

Page 279: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

"attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "dynamodb-map", "value": { "M": { "Home": { "M": { "Address": { "S": "${HomeAddress}" }, "Phone": { "S": "${HomePhone}" } } }, "Work": { "M": { "Address": { "S": "${WorkAddress}" }, "Phone": { "S": "${WorkPhone}" } } } } } } ] } } ]}

En utilisant le paramètre rule-action map-record-to-record, les données de NickName et income sontmappées à des éléments du même nom dans la cible DynamoDB.

Version de l'API API Version 2016-01-01272

Page 280: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

Toutefois, supposons que vous utilisez les mêmes règles mais que vous remplacez le paramètre rule-action par map-record-to-document. Dans ce cas, les colonnes non répertoriées dans le paramètreexclude-columns, NickName et income, sont mappées à un élément _doc.

Utilisation d'expressions de condition personnalisées avec le mappage d'objetVous pouvez utiliser une fonction DynamoDB appelée « expressions de condition » pour manipuler lesdonnées qui sont écrites dans une table DynamoDB. Pour obtenir plus d'informations sur les expressionsde condition dans DynamoDB, consultez Expressions de condition.

Une expression de condition est constituée des éléments suivants :

• une expression (obligatoire)• des valeurs d'attributs d'expressions (facultatif). Spécifie une structure json DynamoDB de la valeur de

l'attribut• des noms d'attributs d'expressions (facultatif)• options pour déterminer quand utiliser l'expression de condition (facultatif). La valeur par défaut est

apply-during-cdc = false et apply-during-full-load = true

La structure de la règle est la suivante :

"target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "condition-expression": { "expression":"<conditional expression>", "expression-attribute-values": [ { "name":"<attribute name>", "value":<attribute value> } ], "apply-during-cdc":<optional Boolean value>, "apply-during-full-load": <optional Boolean value> }

Version de l'API API Version 2016-01-01273

Page 281: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

L'exemple suivant illustre les sections utilisées pour l'expression de condition.

Utilisation du mappage d'attribut avec le mappage d'objetLa mappage d'attribut vous permet de spécifier une chaîne modèle, en utilisant les noms de la colonnesource pour restructurer les données sur la cible. Aucun formatage n'est effectué, autre que ce qui estspécifié par l'utilisateur dans le modèle.

L'exemple suivant illustre la structure de la base de données source et la structure de cible DynamoDBsouhaitée. La structure de la source est présentée en premier (dans ce cas, une base de données Oracle),suivie de la structure souhaitée des données dans DynamoDB. L'exemple se termine avec le JSON utilisépour créer la structure cible souhaitée.

La structure des données Oracle est la suivante :

FirstNameLastNameStoreIdHomeAddressHomePhoneWorkAddressWorkPhoneDateOfBirth

Cléprimaire

s.o.  

RandyMarsh5 221BBakerStreet

123456789031SpoonerStreet,Quahog

987654321002/29/1988

Version de l'API API Version 2016-01-01274

Page 282: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

La structure des données DynamoDB se présente comme suit :

CustomerNameStoreId ContactDetails DateOfBirth

Cléde

partition

Cléde tri

s.o.

Randy,Marsh5 { "Name": "Randy", "Home": { "Address": "221B Baker Street", "Phone": 1234567890 }, "Work": { "Address": "31 Spooner Street, Quahog", "Phone": 9876541230 }}

02/29/1988

Le JSON suivant illustre le mappage d'objet et le mappage de colonne utilisés pour parvenir à la structureDynamoDB :

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "sort-key-name": "StoreId", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName",

Version de l'API API Version 2016-01-01275

Page 283: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

"attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "StoreId", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${StoreId}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "{\"Name\":\"${FirstName}\",\"Home\":{\"Address\":\"${HomeAddress}\",\"Phone\":\"${HomePhone}\"}, \"Work\":{\"Address\":\"${WorkAddress}\",\"Phone\":\"${WorkPhone}\"}}" } ] } } ]}

Une autre façon d'utiliser le mappage de colonne consiste à utiliser le format DynamoDB comme typede document. L'exemple de code suivant utilise dynamodb-map comme attribute-sub-type pour lamappage d'attribut.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "sort-key-name": "StoreId", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [

Version de l'API API Version 2016-01-01276

Page 284: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

{ "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "StoreId", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${StoreId}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "dynamodb-map", "value": { "M": { "Name": { "S": "${FirstName}" }, "Home": { "M": { "Address": { "S": "${HomeAddress}" }, "Phone": { "S": "${HomePhone}" } } }, "Work": { "M": { "Address": { "S": "${WorkAddress}" }, "Phone": { "S": "${WorkPhone}" } } } } } } ] } } ]}

Exemple 1 : utilisation du mappage d'attribut avec le mappage d'objetL'exemple suivant migre les données depuis deux tables de base de données MySQL, nfl_data etsport_team, vers deux tables DynamoDB dénommées NFLTeams et SportTeams. La structure des tableset le JSON utilisés pour mapper les données depuis les tables de base de données MySQL vers les tablesDynamoDB sont les suivants :

La structure de la table de base de données MySQL nfl_data est indiquée ci-dessous :

mysql> desc nfl_data;+---------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |

Version de l'API API Version 2016-01-01277

Page 285: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

+---------------+-------------+------+-----+---------+-------+| Position | varchar(5) | YES | | NULL | || player_number | smallint(6) | YES | | NULL | || Name | varchar(40) | YES | | NULL | || status | varchar(10) | YES | | NULL | || stat1 | varchar(10) | YES | | NULL | || stat1_val | varchar(10) | YES | | NULL | || stat2 | varchar(10) | YES | | NULL | || stat2_val | varchar(10) | YES | | NULL | || stat3 | varchar(10) | YES | | NULL | || stat3_val | varchar(10) | YES | | NULL | || stat4 | varchar(10) | YES | | NULL | || stat4_val | varchar(10) | YES | | NULL | || team | varchar(10) | YES | | NULL | |+---------------+-------------+------+-----+---------+-------+

La structure de la table de base de données MySQL sport_team est indiquée ci-dessous :

mysql> desc sport_team;+---------------------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+---------------------------+--------------+------+-----+---------+----------------+| id | mediumint(9) | NO | PRI | NULL | auto_increment || name | varchar(30) | NO | | NULL | || abbreviated_name | varchar(10) | YES | | NULL | || home_field_id | smallint(6) | YES | MUL | NULL | || sport_type_name | varchar(15) | NO | MUL | NULL | || sport_league_short_name | varchar(10) | NO | | NULL | || sport_division_short_name | varchar(10) | YES | | NULL | |

Les règles de mappage de table utilisées pour mapper les deux tables vers les deux tables DynamoDBsont présentées ci-dessous :

{ "rules":[ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "dms_sample", "table-name": "nfl_data" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "dms_sample", "table-name": "sport_team" }, "rule-action": "include" }, { "rule-type":"object-mapping", "rule-id":"3", "rule-name":"MapNFLData",

Version de l'API API Version 2016-01-01278

Page 286: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

"rule-action":"map-record-to-record", "object-locator":{ "schema-name":"dms_sample", "table-name":"nfl_data" }, "target-table-name":"NFLTeams", "mapping-parameters":{ "partition-key-name":"Team", "sort-key-name":"PlayerName", "exclude-columns": [ "player_number", "team", "Name" ], "attribute-mappings":[ { "target-attribute-name":"Team", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${team}" }, { "target-attribute-name":"PlayerName", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${Name}" }, { "target-attribute-name":"PlayerInfo", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"{\"Number\": \"${player_number}\",\"Position\": \"${Position}\",\"Status\": \"${status}\",\"Stats\": {\"Stat1\": \"${stat1}:${stat1_val}\",\"Stat2\": \"${stat2}:${stat2_val}\",\"Stat3\": \"${stat3}:${stat3_val}\",\"Stat4\": \"${stat4}:${stat4_val}\"}" } ] } }, { "rule-type":"object-mapping", "rule-id":"4", "rule-name":"MapSportTeam", "rule-action":"map-record-to-record", "object-locator":{ "schema-name":"dms_sample", "table-name":"sport_team" }, "target-table-name":"SportTeams", "mapping-parameters":{ "partition-key-name":"TeamName", "exclude-columns": [ "name", "id" ], "attribute-mappings":[ { "target-attribute-name":"TeamName", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${name}" }, { "target-attribute-name":"TeamInfo", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"{\"League\": \"${sport_league_short_name}\",\"Division\": \"${sport_division_short_name}\"}" }

Version de l'API API Version 2016-01-01279

Page 287: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DynamoDB comme cible

] } } ]}

L'exemple de sortie pour la table DynamoDB NFLTeams est présenté ci-dessous :

"PlayerInfo": "{\"Number\": \"6\",\"Position\": \"P\",\"Status\": \"ACT\",\"Stats\": {\"Stat1\": \"PUNTS:73\",\"Stat2\": \"AVG:46\",\"Stat3\": \"LNG:67\",\"Stat4\": \"IN 20:31\"}", "PlayerName": "Allen, Ryan", "Position": "P", "stat1": "PUNTS", "stat1_val": "73", "stat2": "AVG", "stat2_val": "46", "stat3": "LNG", "stat3_val": "67", "stat4": "IN 20", "stat4_val": "31", "status": "ACT", "Team": "NE"}

L'exemple de sortie pour la table DynamoDB SportsTeams est présenté ci-dessous :

{ "abbreviated_name": "IND", "home_field_id": 53, "sport_division_short_name": "AFC South", "sport_league_short_name": "NFL", "sport_type_name": "football", "TeamInfo": "{\"League\": \"NFL\",\"Division\": \"AFC South\"}", "TeamName": "Indianapolis Colts"}

Types de donnée cible pour DynamoDBLe point de terminaison DynamoDB pour AWS DMS prend en charge la plupart des types de donnéesDynamoDB. Le tableau suivant présente les types de données cibles Amazon AWS DMS qui sont pris encharge lorsque vous utilisez AWS DMS et le mappage par défaut à partir des types de données AWS DMS.

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Lorsqu'AWS DMS migre des données depuis des bases de données hétérogènes, nous mappons les typesde données depuis la base de données source vers les types de données intermédiaires, dénommés typesde données AWS DMS. Nous mappons ensuite les types de données intermédiaires vers les types dedonnées cibles. Le tableau suivant illustre chaque type de données AWS DMS et le type de données qu'ilmappe dans DynamoDB :

Type de données AWS DMS Type de données DynamoDB

Chaîne Chaîne

Version de l'API API Version 2016-01-01280

Page 288: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

Type de données AWS DMS Type de données DynamoDB

WString Chaîne

Booléen Booléen

Date Chaîne

DateTime Chaîne

INT1 Numéro

INT2 Numéro

INT4 Numéro

INT8 Numéro

Numérique Numéro

Real4 Numéro

Real8 Numéro

UINT1 Numéro

UINT2 Numéro

UINT4 Numéro

UINT8 Numéro

CLOB Chaîne

Utilisation d'Amazon Kinesis Data Streams commecible pour AWS Database Migration ServiceVous pouvez utiliser AWS DMS pour migrer des données vers un flux de données Amazon Kinesis. Lesflux de données Amazon Kinesis font partie du service Amazon Kinesis Data Streams. Vous pouvez utiliserdes flux de données Kinesis pour collecter et traiter des flux volumineux d'enregistrements de données entemps réel.

Note

La prise en charge d'Amazon Kinesis Data Streams comme cible est disponible dans AWS DMSversions 3.1.2 et ultérieures.

Un flux de données Kinesis se compose de partitions. Les partitions sont des séquences d'enregistrementsde données identifiées de manière unique dans un flux. Pour plus d'informations sur les partitions dansAmazon Kinesis Data Streams, consultez Partition dans le Amazon Kinesis Data Streams Guide dudéveloppeur.

AWS Database Migration Service publie les enregistrements dans un flux de données Kinesis avec JSON.Au cours de la conversion, AWS DMS sérialise chaque enregistrement de la base de données sourcedans une paire attribut-valeur au format JSON ou un format de message JSON_UNFORMATED. Unformat de message JSON_UNFORMATED est une chaîne JSON à une seule ligne avec un délimiteur denouvelle ligne. Il permet à Amazon Kinesis Data Firehose de fournir des données Kinesis à une destinationAmazon S3, puis de les interroger à l'aide de divers moteurs de requête, y compris Amazon Athena.

Version de l'API API Version 2016-01-01281

Page 289: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

Note

La prise en charge du format de message Kinesis JSON_UNFORMATED est disponible dans lesversions AWS DMS 3.3.1 et ultérieures.

Utilisez le mappage d'objet pour migrer vos données de n'importe quelle source de données priseen charge vers un flux cible. Avec le mappage d'objet, vous déterminez la façon de structurer lesenregistrements de données dans le flux. Vous définissez également une clé de partition pour chaquetable, que Kinesis Data Streams utilise pour regrouper les données dans ses partitions.

Quand AWS DMS crée les tables sur un point de terminaison cible Amazon Kinesis Data Streams, ilcrée autant de tables que dans le point de terminaison de la base de données source. AWS DMS définitégalement plusieurs valeurs de paramètre Kinesis Data Streams. Le coût de création de la table dépend dela quantité de données et du nombre de tables à migrer.

Paramètres de point de terminaison Kinesis Data Streams

Vous pouvez obtenir des informations détaillées de transaction et de contrôle sur l'utilisation des points determinaison cibles Amazon Kinesis Data Streams à l'aide des paramètres de point de terminaison dansla console AWS DMS ou de l'option KinesisSettings de l'API AWS DMS. Dans l'interface de ligne decommande AWS DMS, utilisez les paramètres de demande de l'option --kafka-settings suivante :

Note

La prise en charge des paramètres de point de terminaison suivants pour les points determinaison cibles Amazon Kinesis Data Streams est disponible dans les versions AWS DMS3.3.1 et ultérieures.

• IncludeControlDetails – Affiche des informations de contrôle détaillées pour la définition de table,la définition de colonne et les modifications de table et de colonne dans la sortie du message Kinesis. Lavaleur par défaut est false.

• IncludePartitionValue – Affiche la valeur de partition dans la sortie du message Kinesis, sauf si letype de partition est schema-table-type. La valeur par défaut est false.

• IncludeTableAlterOperations – Inclut toutes les opérations DDL (Data Definition Language) quimodifient la table dans les données de contrôle, telles que rename-table, drop-table, add-column,drop-column et rename-column. La valeur par défaut est false.

• IncludeTransactionDetails – Fournit des informations détaillées sur les transactions àpartir de la base de données source. Ces informations comprennent un horodatage de validation,une position de journal et des valeurs pour transaction_id, previous_transaction_id ettransaction_record_id (le décalage d'enregistrement dans une transaction). La valeur par défautest false.

• PartitionIncludeSchemaTable – Préfixe les noms de schéma et de table aux valeurs de partition,lorsque le type de partition est primary-key-type. Cela augmente la distribution des données entreles fragments Kinesis. Par exemple, supposons qu'un schéma SysBench comporte des milliers detables et que chaque table n'ait qu'une plage limitée pour une clé primaire. Dans ce cas, la même cléprimaire est envoyée à partir de milliers de tables vers le même fragment, ce qui provoque une limitation.La valeur par défaut est false.

Paramètres de tâche de chargement complet multithread

Pour augmenter la vitesse du transfert, AWS DMS prend en charge un chargement complet multithreadsur une instance cible Kinesis Data Streams. DMS prend en charge ce traitement multithread avec desparamètres de tâche, notamment les suivants :

Note

La prise en charge des chargements complets multithreads vers des cibles Amazon Kinesis DataStreams est disponible dans AWS DMS versions 3.1.4 et ultérieures.

Version de l'API API Version 2016-01-01282

Page 290: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

• MaxFullLoadSubTasks – Utilisez cette option pour indiquer le nombre maximal de tables source àcharger en parallèle. DMS charge chaque table dans sa table Kinesis cible correspondante à l'aide d'unesous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

• ParallelLoadThreads – Utilisez cette option pour spécifier le nombre de threads utilisés par AWSDMS pour charger chaque table dans sa table cible Kinesis. La valeur maximale pour une cible KinesisData Streams est 32. Vous pouvez demander une augmentation de cette limite maximale.

• ParallelLoadBufferSize – Utilisez cette option pour spécifier le nombre maximal d'enregistrementsà stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger lesdonnées dans la cible Kinesis. La valeur par défaut est 50. La valeur maximale est 1 000. Utilisez ceparamètre avec ParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dans lecas de plusieurs threads.

• ParallelLoadQueuesPerThread – Utilisez cette option pour spécifier le nombre de files d'attenteauxquelles chaque thread simultané accède pour extraire les enregistrements de données des filesd'attente et générer un chargement par lots pour la cible. La valeur par défaut est 1. Cependant, pourles cibles Kinesis avec différentes tailles de charge utile, la plage valide est de 5 à 512 files d'attente parthread.

• Paramètres de mappage de table pour des tables individuelles – Utilisez des règles table-settingspour identifier les tables individuelles de la source que vous souhaitez charger en parallèle. Utilisezégalement ces règles pour spécifier comment segmenter les lignes de chaque table pour le chargementmultithread. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

DMS attribue chaque segment d'une table à son propre thread pour le chargement. Parconséquent, définissez ParallelLoadThreads sur le nombre maximal de segments que vousspécifiez pour une table de la source.

Paramètres de tâche de chargement CDC multithread

Vous pouvez utiliser les paramètres de tâche afin d'améliorer les performances de la capture des donnéesde modification (CDC) pour les points de terminaison cibles de streaming des données en temps réel,comme Kinesis et modifier le comportement de l'appel d'API PutRecords. Pour ce faire, vous pouvezspécifier le nombre de threads simultanés, les files d'attente par thread et le nombre d'enregistrementsà stocker dans un tampon à l'aide de la tâche ParallelApply*. Par exemple, supposons que voussouhaitiez effectuer un chargement CDC et appliquer 128 threads en parallèle. Vous souhaitez égalementaccéder à 64 files d'attente par thread, avec 50 enregistrements stockés par tampon.

Note

La prise en charge de l'utilisation des paramètres de tâche ParallelApply* pendant la CDCvers des points de terminaison cibles Amazon Kinesis Data Streams est disponible dans lesversions AWS DMS 3.3.1 et ultérieures.

Pour accroître les performances de la fonctionnalité CDC, AWS DMS prend en charge les paramètres detâche suivants :

• ParallelApplyThreads – Spécifie le nombre de threads simultanés utilisés par AWS DMS pendantun chargement CDC pour transférer des enregistrements de données vers un point de terminaison cibleKinesis. La valeur par défaut est zéro (0) et la valeur maximale est 32.

• ParallelApplyBufferSize – Spécifie le nombre maximal d'enregistrements à stocker dans chaquefile d'attente de mémoire tampon pour que les threads simultanés soient poussés vers un point determinaison Kinesis cible lors d'un chargement CDC. La valeur par défaut est 50 et la valeur maximaleest 1 000. Utilisez cette option lorsque ParallelApplyThreads spécifie plusieurs threads.

• ParallelApplyQueuesPerThread – Spécifie le nombre de files d'attente auxquelles chaque threadaccède pour extraire les enregistrements de données des files d'attente et générer un chargement parlots pour un point de terminaison Kinesis pendant le CDC.

Version de l'API API Version 2016-01-01283

Page 291: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

Lorsque vous utilisez les paramètres de tâche ParallelApply*, la valeur par défaut partition-key-type est la valeur primary-key de la table, pas schema-name.table-name.

Conditions préalables à l'utilisation d'un flux de données Kinesiscomme cible pour AWS Database Migration ServiceAvant de configurer un flux de données Kinesis comme cible pour AWS DMS, veillez à créer un rôle IAM.Ce rôle doit permettre à AWS DMS d'assumer et d'accorder l'accès aux flux de données Kinesis qui sont lacible de la migration. L'ensemble minimal d'autorisations d'accès est indiqué dans l'exemple de stratégie derôle suivant :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" }]}

Le rôle que vous utilisez pour la migration vers un flux de données Kinesis doit bénéficier des autorisationssuivantes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:region:accountID:stream/streamName" } ]}

Limitations à l'utilisation d'Kinesis Data Streams comme ciblepour AWS Database Migration ServiceLes limitations suivantes s'appliquent lorsque vous utilisez Kinesis Data Streams comme cible :

• AWS DMS prend en charge une taille maximale de message de 1 Mio pour une cible Kinesis DataStreams.

• AWS DMS publie chaque mise à jour d'un enregistrement individuel de la base de données sourcecomme un enregistrement de données unique dans un flux de données Kinesis donné, quellesque soient les transactions. Toutefois, vous pouvez inclure des détails de transaction pour chaqueenregistrement de données à l'aide des paramètres pertinents de l'API KinesisSettings.

Version de l'API API Version 2016-01-01284

Page 292: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

• Kinesis Data Streams ne prend pas en charge la déduplication. Les applications qui consomment desdonnées d'un flux doivent gérer les enregistrements en double. Pour plus d'informations, consultezGestion des enregistrements en double dans le Amazon Kinesis Data Streams Guide du développeur.

• AWS DMS prend en charge les deux formes suivantes de clés de partition :• SchemaName.TableName : une combinaison du nom du schéma et du nom de la table.• ${AttributeName} : la valeur d'un des champs du fichier JSON, ou la clé primaire de la table dans

la base de données source.

Utilisation du mappage d'objet pour migrer les données vers unflux de données KinesisAWS DMS utilise les règles de mappage de tables pour mapper les données depuis la source vers le fluxde données Kinesis cible. Pour mapper des données vers un flux cible, vous utilisez un type de règles demappage de tables qu'on appelle le mappage d'objet. Utilisez le mappage d'objet pour définir la façon dontles enregistrements de données de la source sont mappés vers les enregistrements de données publiésdans le flux de données Kinesis.

Les flux de données Kinesis ne disposent pas d'une structure prédéfinie autre que le fait d'avoir une cléde partition. Dans une règle de mappage d'objets, les valeurs possibles de partition-key-type pourun enregistrement de données sont schema-table, transaction-id, primary-key, constant etattribute-name.

Pour créer une règle de mappage d'objet, spécifiez rule-type comme object-mapping. Cette règlespécifie le type de mappage d'objet que vous souhaitez utiliser.

La structure de la règle est la suivante.

{ "rules": [ { "rule-type": "object-mapping", "rule-id": "id", "rule-name": "name", "rule-action": "valid object-mapping rule action", "object-locator": { "schema-name": "case-sensitive schema name", "table-name": "" } } ]}

AWS DMS prend actuellement en charge map-record-to-record et map-record-to-documentcomme les seules valeurs valides pour le paramètre rule-action. Les valeurs map-record-to-record et map-record-to-document spécifient l'action par défaut d'AWS DMS sur les enregistrementsqui ne sont pas exclus en raison de leur appartenance à la liste des attributs exclude-columns. Cesvaleurs n'affectent en aucune façon les mappages d'attributs.

Utilisez map-record-to-record lors d'une migration d'une base de données relationnelle vers un fluxde données Kinesis. Ce type de règle utilise la valeur taskResourceId.schemaName.tableName dela base de données relationnelle comme clé de partition dans le flux de données Kinesis et crée un attributpour chaque colonne de la base de données source. Lorsque vous utilisez map-record-to-record,pour toute colonne de la table source non répertoriée dans la liste d'attributs exclude-columns, AWSDMS crée un attribut correspondant dans le flux cible. Cet attribut correspondant est créé que la colonnesource soit ou non utilisée dans un mappage d'attribut.

Version de l'API API Version 2016-01-01285

Page 293: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

Une manière de comprendre map-record-to-record est de le voir en action. Dans cet exemple,imaginons que vous commencez avec une ligne de table d'une base de données relationnelle, présentantla structure et les données suivantes :

FirstName LastName StoreId HomeAddressHomePhone WorkAddressWorkPhone DateofBirth

Randy Marsh 5 221BBakerStreet

1234567890 31SpoonerStreet,Quahog

9876543210 02/29/1988

Pour migrer ces informations d'un schéma Test vers un flux de données Kinesis, vous créez des règlespour mapper les données vers le flux cible. La règle suivante illustre ce mappage.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "DefaultMapToKinesis", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "Test", "table-name": "Customers" } } ]}

L'exemple qui suit illustre le format d'enregistrement résultant dans le flux de données Kinesis.

• StreamName : XXX• PartitionKey : Test.Customers //schmaName.tableName• Data : //The following JSON message

{ "FirstName": "Randy", "LastName": "Marsh", "StoreId": "5", "HomeAddress": "221B Baker Street", "HomePhone": "1234567890", "WorkAddress": "31 Spooner Street, Quahog", "WorkPhone": "9876543210", "DateOfBirth": "02/29/1988" }

Version de l'API API Version 2016-01-01286

Page 294: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

Restructuration de données avec le mappage d'attribut

Vous pouvez restructurer les données lors de leur migration vers un flux de données Kinesis à l'aide d'unmappage d'attribut. Par exemple, vous pourriez vouloir regrouper plusieurs champs de la source en un seulchamp dans la cible. Le mappage d'attribut suivant illustre comment restructurer les données.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToKinesis", "rule-action": "map-record-to-record", "target-table-name": "CustomerData", "object-locator": { "schema-name": "Test", "table-name": "Customers" }, "mapping-parameters": { "partition-key-type": "attribute-name", "partition-key-name": "CustomerName", "exclude-columns": [ "firstname", "lastname", "homeaddress", "homephone", "workaddress", "workphone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${lastname}, ${firstname}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "json", "value": { "Home": { "Address": "${homeaddress}", "Phone": "${homephone}" }, "Work": { "Address": "${workaddress}", "Phone": "${workphone}" } } } ] } }

Version de l'API API Version 2016-01-01287

Page 295: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Kinesis Data Streams comme cible

]}

Pour définir une valeur constante pour partition-key, spécifiez une valeur partition-key. Parexemple, vous pouvez le faire pour forcer le stockage de toutes les données dans une seule partition. Lemappage suivant illustre cette approche.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "1", "rule-name": "TransformToKinesis", "rule-action": "map-record-to-document", "object-locator": { "schema-name": "Test", "table-name": "Customer" }, "mapping-parameters": { "partition-key": { "value": "ConstantPartitionKey" }, "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "attribute-name": "CustomerName", "value": "${FirstName},${LastName}" }, { "attribute-name": "ContactDetails", "value": { "Home": { "Address": "${HomeAddress}", "Phone": "${HomePhone}" }, "Work": { "Address": "${WorkAddress}", "Phone": "${WorkPhone}" } } }, { "attribute-name": "DateOfBirth", "value": "${DateOfBirth}" } ] }

Version de l'API API Version 2016-01-01288

Page 296: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

} ]}

Note

La valeur partition-key d'un enregistrement de contrôle correspondant à une table spécifiqueest TaskId.SchemaName.TableName. La valeur partition-key d'un enregistrementde contrôle correspondant à une tâche spécifique est le TaskId de cet enregistrement. Laspécification d'une valeur partition-key dans le mappage d'objet n'a aucun impact sur lapartition-key d'un enregistrement de contrôle.

Format de message pour Kinesis Data Streams

La sortie JSON est simplement une liste de paires clé-valeur. Un format de messageJSON_UNFORMATED est une chaîne JSON à une seule ligne avec un délimiteur de nouvelle ligne.

Note

La prise en charge du format de message Kinesis JSON_UNFORMATED est disponible dans lesversions AWS DMS 3.3.1 et ultérieures.

AWS DMS fournit les champs réservés suivants pour faciliter la consommation des données depuis KinesisData Streams :

RecordType

Les enregistrements peuvent être de type Données ou Contrôle. Les enregistrements de donnéesreprésentent les lignes réelles de la source. Les enregistrements de contrôle sont destinés à desévénements importants dans le flux, par exemple un redémarrage de la tâche.

Opération

Pour les enregistrements de données, l'opération peut être create,read, update ou delete.

Pour les enregistrements de contrôle, l'opération peut être TruncateTable ou DropTable.SchemaName

Schéma source de l'enregistrement. Ce champ peut être vide pour un enregistrement de contrôle.TableName

Table source de l'enregistrement. Ce champ peut être vide pour un enregistrement de contrôle.Horodatage

Horodatage de la construction du message JSON. Le champ est formaté selon le format ISO 8601.

Utiliser Apache Kafka comme cible pourAWS Database Migration ServiceVous pouvez utiliser AWS DMS pour migrer des données vers un cluster Apache Kafka. Les clustersApache Kafka font partie du service Apache Kafka. Vous pouvez utiliser des clusters Kafka pour collecter ettraiter des flux volumineux d'enregistrements de données en temps réel.

Note

La prise en charge d'Apache Kafka comme cible est disponible dans les versions AWS DMS 3.3.1et ultérieures.

Version de l'API API Version 2016-01-01289

Page 297: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

AWS propose également Amazon Managed Streaming for Apache Kafka (Amazon MSK) à utiliser commecible AWS DMS. Amazon MSK est un service de streaming Apache Kafka entièrement géré qui simplifiel'implémentation et la gestion des instances Apache Kafka. Il fonctionne avec les versions open-sourceApache Kafka, et vous accédez aux instances Amazon MSK en tant que cibles AWS DMS exactementcomme n'importe quelle instance Apache Kafka. Pour de plus amples informations, veuillez consulterQu’est-ce qu’Amazon MSK ? dans le Manuel du développeur Amazon Managed Streaming for ApacheKafka.

Un cluster Kafka gère des rubriques multi-abonnés divisées en partitions. Les partitions sont desséquences identifiées de manière unique d'enregistrements de données (messages) dans un flux. Lespartitions peuvent être réparties entre plusieurs agents dans un cluster pour permettre le traitementparallèle du flux. Pour de plus amples informations sur les rubriques et les partitions et leur distributiondans Apache Kafka, veuillez consulter Rubriques et journaux et distribution.

AWS Database Migration Service publie les enregistrements dans un cluster Kafka à l'aide de JSON. Aucours de la conversion, AWS DMS sérialise chaque enregistrement de la base de données source dansune paire attribut-valeur au format JSON.

Utilisez le mappage d'objet pour migrer vos données de n'importe quelle source de données priseen charge vers un flux cible. Avec le mappage d'objet, vous déterminez la façon de structurer lesenregistrements de données dans le flux. Vous définissez également une clé de partition pour chaquetable, qu'Apache Kafka utilise pour regrouper les données dans ses partitions.

Quand AWS DMS crée les tables sur un point de terminaison cible Apache Kafka, il crée autant de tablesque dans le point de terminaison de la base de données source. AWS DMS définit également plusieursvaleurs de paramètre Apache Kafka. Le coût de création de la table dépend de la quantité de données etdu nombre de tables à migrer.

Paramètres du point de terminaison Apache Kafka

Vous pouvez spécifier les détails de connexion via les paramètres du point de terminaison dans laconsole AWS DMS ou l'option --kafka-settings de l'interface de ligne de commande AWS DMS. Lesconditions requises pour chaque paramètre sont les suivantes :

• Broker – Spécifiez l'emplacement de l'agent dans le formulaire broker-hostname:port. Parexemple, "ec2-12-345-678-901.compute-1.amazonaws.com:2345". Il peut s'agir del'emplacement de n'importe quel agent dans le cluster. Les agents de cluster communiquent tous pourgérer le partitionnement des enregistrements de données migrés vers la rubrique.

• Topic – ( Facultatif) Spécifiez le nom de rubrique avec une longueur maximale de 255 lettres etsymboles. Vous pouvez utiliser le point (.), le trait de soulignement (_) et le moins (-). Les noms derubrique avec un point (.) ou un trait de soulignement (_) peuvent entrer en collision dans des structuresde données internes. Utilisez l'un ou l'autre de ces symboles, mais pas les deux dans le nom de larubrique. Si vous ne spécifiez pas de nom de rubrique, AWS DMS utilise "kafka-default-topic"comme rubrique de migration.

Note

Pour que AWS DMS crée une rubrique de migration que vous spécifiez ou larubrique par défaut, définissez auto.create.topics.enable = true dans lecadre de votre configuration de cluster Kafka. Pour de plus amples informations,veuillez consulter Limitations lors de l'utilisation d'Apache Kafka comme cible pourAWS Database Migration Service (p. 292)

Paramètres de tâche de chargement complet multithread

Vous pouvez augmenter la vitesse du transfert dans les paramètres. Pour ce faire, AWS DMS prend encharge une charge complète multithread vers une instance cible Apache Kafka. AWS DMS prend encharge ce multithreading avec des paramètres de tâche qui incluent les éléments suivants :

Version de l'API API Version 2016-01-01290

Page 298: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

• MaxFullLoadSubTasks – Utilisez cette option pour indiquer le nombre maximal de tables sources àcharger en parallèle. AWS DMS charge chaque table dans sa table cible Kafka correspondante à l'aided'une sous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

• ParallelLoadThreads – Utilisez cette option pour spécifier le nombre de threads utilisés par AWSDMS pour charger chaque table dans sa table cible Kafka. La valeur maximale pour une cible ApacheKafka est 32. Vous pouvez demander une augmentation de cette limite maximale.

• ParallelLoadBufferSize – Utilisez cette option pour spécifier le nombre maximal d'enregistrementsà stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger lesdonnées dans la cible Kafka. La valeur par défaut est 50. La valeur maximale est 1 000. Utilisez ceparamètre avec ParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dans lecas de plusieurs threads.

• ParallelLoadQueuesPerThread – Utilisez cette option pour spécifier le nombre de files d'attenteauxquelles chaque thread simultané accède pour extraire les enregistrements de données des filesd'attente et générer un chargement par lots pour la cible. La valeur par défaut est 1. Cependant, pourles cibles Kafka avec différentes tailles de charge utile, la plage valide est de 5 à 512 files d'attente parthread.

• Paramètres de mappage de table pour des tables individuelles – Utilisez des règles table-settingspour identifier les tables individuelles de la source que vous souhaitez charger en parallèle. Utilisezégalement ces règles pour spécifier comment segmenter les lignes de chaque table pour le chargementmultithread. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

DMS attribue chaque segment d'une table à son propre thread pour le chargement. Parconséquent, définissez ParallelLoadThreads sur le nombre maximal de segments que vousspécifiez pour une table de la source.

Paramètres de tâche de chargement CDC multithread

Vous pouvez utiliser les paramètres de tâche afin d'améliorer les performances de la capture des donnéesde modification (CDC) pour les points de terminaison cibles de streaming des données en temps réel,comme Kafka et modifier le comportement de l'appel d'API PutRecords. Pour ce faire, vous pouvezspécifier le nombre de threads simultanés, les files d'attente par thread et le nombre d'enregistrementsà stocker dans un tampon à l'aide de la tâche ParallelApply*. Par exemple, supposons que voussouhaitiez effectuer un chargement CDC et appliquer 128 threads en parallèle. Vous souhaitez égalementaccéder à 64 files d'attente par thread, avec 50 enregistrements stockés par tampon.

Pour accroître les performances de la fonctionnalité CDC, AWS DMS prend en charge les paramètres detâche suivants :

• ParallelApplyThreads – Spécifie le nombre de threads simultanés utilisés par AWS DMS pendantun chargement CDC pour transférer des enregistrements de données vers un point de terminaison cibleKafka. La valeur par défaut est zéro (0) et la valeur maximale est 32.

• ParallelApplyBufferSize – Spécifie le nombre maximal d'enregistrements à stocker dans chaquefile d'attente de mémoire tampon pour que les threads simultanés soient poussés vers un point determinaison Kafka cible lors d'un chargement CDC. La valeur par défaut est 50 et la valeur maximale est1 000. Utilisez cette option lorsque ParallelApplyThreads spécifie plusieurs threads.

• ParallelApplyQueuesPerThread – Spécifie le nombre de files d'attente auxquelles chaque threadaccède pour extraire les enregistrements de données des files d'attente et générer un chargement parlots pour un point de terminaison Kafka pendant la CDC.

Lorsque vous utilisez les paramètres de tâche ParallelApply*, la valeur par défaut partition-key-type est la valeur primary-key de la table, pas schema-name.table-name.

Version de l'API API Version 2016-01-01291

Page 299: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

Limitations lors de l'utilisation d'Apache Kafka comme cible pourAWS Database Migration ServiceLes limitations suivantes s'appliquent lorsque vous utilisez apache Kafka comme cible :

• AWS DMS prend en charge une taille maximale de message de 1 Mio pour une cible Kafka.• Configurez votre instance de réplication AWS DMS et votre cluster Kafka dans le même groupe

Amazon Virtual Private Cloud (Amazon VPC) et le même groupe de sécurité. Le cluster Kafka peutêtre une instance Amazon MSK ou votre propre instance Kafka s'exécutant sur Amazon EC2. Pourde plus amples informations, veuillez consulter Configuration d'un réseau pour une instance deréplication (p. 101).

Note

Pour spécifier un groupe de sécurité pour Amazon MSK, dans la page Créer un cluster,choisissez Paramètres avancés, Personnaliser les paramètres, puis sélectionnez le groupede sécurité ou acceptez la valeur par défaut si elle est identique à celle de votre instance deréplication.

• Spécifiez un fichier de configuration Kafka pour votre cluster avec des propriétés qui permettentà AWS DMS de créer automatiquement de nouvelles rubriques. Incluez le paramètre,auto.create.topics.enable = true. Si vous utilisez Amazon MSK, vous pouvez spécifierla configuration par défaut lorsque vous créez votre cluster Kafka, puis modifier le paramètreauto.create.topics.enable sur true. Pour de plus amples informations sur les paramètresde configuration par défaut, veuillez consulter Configuration Amazon MSK par défaut dans le Manueldu développeur Amazon Managed Streaming for Apache Kafka. Si vous devez modifier un clusterKafka existant créé à l'aide de Amazon MSK, exécutez la commande AWS CLI aws kafka create-configuration pour mettre à jour votre configuration Kafka, comme dans l'exemple suivant :

14:38:41 $ aws kafka create-configuration --name "kafka-configuration" --kafka-versions "2.2.1" --server-properties file://~/kafka_configuration{ "LatestRevision": { "Revision": 1, "CreationTime": "2019-09-06T14:39:37.708Z" }, "CreationTime": "2019-09-06T14:39:37.708Z", "Name": "kafka-configuration", "Arn": "arn:aws:kafka:us-east-1:111122223333:configuration/kafka-configuration/7e008070-6a08-445f-9fe5-36ccf630ecfd-3"}

Ici, //~/kafka_configuration est le fichier de configuration que vous avez créé avec les paramètresde propriété requis.

Si vous utilisez votre propre instance Kafka installée sur Amazon EC2, modifiez laconfiguration du cluster Kafka avec des paramètres de propriétés similaires, notammentauto.create.topics.enable = true, en utilisant les options fournies avec votre instance.

• AWS DMS publie chaque mise à jour d'un enregistrement individuel dans la base de donnéessource sous la forme d'un enregistrement de données individuel dans une rubrique Kafka donnée,indépendamment des transactions.

• AWS DMS prend en charge les deux formes suivantes de clés de partition :• SchemaName.TableName : une combinaison du nom du schéma et du nom de la table.• ${AttributeName} : la valeur d'un des champs du fichier JSON, ou la clé primaire de la table dans

la base de données source.

Version de l'API API Version 2016-01-01292

Page 300: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

Utilisation du mappage d'objet pour migrer les données vers unflux de données KafkaAWS DMS utilise les règles de mappage de table pour mapper les données depuis la source vers lecluster Kafka cible. Pour mapper les données vers un cluster Kafka cible, vous utilisez un type de règle demappage de table appelé mappage d'objet. Vous utilisez le mappage d'objet pour définir la façon dont lesenregistrements de données de la source sont mappés sur les enregistrements de données publiés dansune rubrique Kafka.

Les rubriques Kafka ne disposent pas d'une structure prédéfinie autre que le fait d'avoir une clé de partition.

Pour créer une règle de mappage d'objet, spécifiez rule-type comme object-mapping. Cette règlespécifie le type de mappage d'objet que vous souhaitez utiliser.

La structure de la règle est la suivante.

{ "rules": [ { "rule-type": "object-mapping", "rule-id": "id", "rule-name": "name", "rule-action": "valid object-mapping rule action", "object-locator": { "schema-name": "case-sensitive schema name", "table-name": "" } } ]}

AWS DMS prend actuellement en charge map-record-to-record et map-record-to-documentcomme les seules valeurs valides pour le paramètre rule-action. Les valeurs map-record-to-record et map-record-to-document spécifient l'action par défaut d'AWS DMS sur les enregistrementsqui ne sont pas exclus en raison de leur appartenance à la liste des attributs exclude-columns. Cesvaleurs n'affectent en aucune façon les mappages d'attributs.

Utilisez map-record-to-record lors d'une migration d'une base de données relationnelle vers unerubrique Kafka. Ce type de règle utilise la valeur taskResourceId.schemaName.tableName de la basede données relationnelle comme clé de partition dans la rubrique Kafka, et crée un attribut pour chaquecolonne dans la base de données source. Lorsque vous utilisez map-record-to-record, pour toutecolonne de la table source non répertoriée dans la liste d'attributs exclude-columns, AWS DMS crée unattribut correspondant dans le flux cible. Cet attribut correspondant est créé que la colonne source soit ounon utilisée dans un mappage d'attribut.

Une manière de comprendre map-record-to-record est de le voir en action. Dans cet exemple,imaginons que vous commencez avec une ligne de table d'une base de données relationnelle, présentantla structure et les données suivantes :

FirstName LastName StoreId HomeAddressHomePhone WorkAddressWorkPhone DateofBirth

Randy Marsh 5 221BBakerStreet

1234567890 31SpoonerStreet,Quahog

9876543210 02/29/1988

Pour migrer ces informations à partir d'un schéma nommé Test vers une rubrique Kafka, vous créez desrègles pour mapper les données sur la rubrique cible. La règle suivante illustre ce mappage.

Version de l'API API Version 2016-01-01293

Page 301: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "DefaultMapToKafka", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "Test", "table-name": "Customers" } } ]}

Compte tenu d'un nom de flux et d'une clé de partition (dans ce cas,taskResourceId.schemaName.tableName), ce qui suit illustre le format d'enregistrement résultant àl'aide de nos exemples de données dans la rubrique Kafka :

{ "FirstName": "Randy", "LastName": "Marsh", "StoreId": "5", "HomeAddress": "221B Baker Street", "HomePhone": "1234567890", "WorkAddress": "31 Spooner Street, Quahog", "WorkPhone": "9876543210", "DateOfBirth": "02/29/1988" }

Restructuration de données avec le mappage d'attributVous pouvez restructurer les données lors de leur migration vers une rubrique Kafka à l'aide d'un mappaged'attribut. Par exemple, vous pourriez vouloir regrouper plusieurs champs de la source en un seul champdans la cible. Le mappage d'attribut suivant illustre comment restructurer les données.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2",

Version de l'API API Version 2016-01-01294

Page 302: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

"rule-name": "TransformToKafka", "rule-action": "map-record-to-record", "target-table-name": "CustomerData", "object-locator": { "schema-name": "Test", "table-name": "Customers" }, "mapping-parameters": { "partition-key-type": "attribute-name", "partition-key-name": "CustomerName", "exclude-columns": [ "firstname", "lastname", "homeaddress", "homephone", "workaddress", "workphone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${lastname}, ${firstname}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "json", "value": { "Home": { "Address": "${homeaddress}", "Phone": "${homephone}" }, "Work": { "Address": "${workaddress}", "Phone": "${workphone}" } } } ] } } ]}

Pour définir une valeur constante pour partition-key, spécifiez une valeur partition-key. Parexemple, vous pouvez le faire pour forcer le stockage de toutes les données dans une seule partition. Lemappage suivant illustre cette approche.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping",

Version de l'API API Version 2016-01-01295

Page 303: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation d'Apache Kafka comme cible

"rule-id": "1", "rule-name": "TransformToKafka", "rule-action": "map-record-to-document", "object-locator": { "schema-name": "Test", "table-name": "Customer" }, "mapping-parameters": { "partition-key": { "value": "ConstantPartitionKey" }, "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "attribute-name": "CustomerName", "value": "${FirstName},${LastName}" }, { "attribute-name": "ContactDetails", "value": { "Home": { "Address": "${HomeAddress}", "Phone": "${HomePhone}" }, "Work": { "Address": "${WorkAddress}", "Phone": "${WorkPhone}" } } }, { "attribute-name": "DateOfBirth", "value": "${DateOfBirth}" } ] } } ]}

Note

La valeur partition-key d'un enregistrement de contrôle correspondant à une table spécifiqueest TaskId.SchemaName.TableName. La valeur partition-key d'un enregistrementde contrôle correspondant à une tâche spécifique est le TaskId de cet enregistrement. Laspécification d'une valeur partition-key dans le mappage d'objet n'a aucun impact sur lapartition-key d'un enregistrement de contrôle.

Format de message pour Apache KafkaLa sortie JSON est simplement une liste de paires clé-valeur.

RecordType

Les enregistrements peuvent être de type Données ou Contrôle. Les enregistrements de donnéesreprésentent les lignes réelles de la source. Les enregistrements de contrôle sont destinés à desévénements importants dans le flux, par exemple un redémarrage de la tâche.

Version de l'API API Version 2016-01-01296

Page 304: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Elasticsearch Service comme cible

Opération

Pour les enregistrements de données, l'opération peut être create,read, update ou delete.

Pour les enregistrements de contrôle, l'opération peut être TruncateTable ou DropTable.SchemaName

Schéma source de l'enregistrement. Ce champ peut être vide pour un enregistrement de contrôle.TableName

Table source de l'enregistrement. Ce champ peut être vide pour un enregistrement de contrôle.Horodatage

Horodatage de la construction du message JSON. Le champ est formaté selon le format ISO 8601.

Utilisation d'un cluster Amazon Elasticsearch Servicecomme cible pour AWS Database Migration ServiceVous pouvez utiliser AWS DMS pour migrer des données vers Amazon Elasticsearch Service (AmazonES). Amazon ES est un service géré qui facilite le déploiement, l'utilisation et la mise à l'échelle d'un clusterElasticsearch.

Note

La prise en charge d'Amazon Elasticsearch Service comme cible est disponible dans AWS DMSversions 3.1.2 et ultérieures.

Dans Elasticsearch, vous utilisez des index et des documents. Un index est un ensemble de documentset un document est un objet JSON qui contient des valeurs scalaires, des tableaux et d'autres objets.Elasticsearch fournit un langage de requête basé sur JSON. Vous pouvez donc interroger les donnéesdans un index et récupérer les documents correspondants.

Lorsque AWS DMS crée des index pour un point de terminaison cible pour Amazon ES, il crée un indexpour chaque table du point de terminaison source. Le coût de la création d'un index Elasticsearch dépendde plusieurs facteurs. Il s'agit du nombre d'index créés, du volume total de données dans ces index et de lapetite quantité de métadonnées qu'Elasticsearch stocke pour chaque document.

Pour augmenter la vitesse du transfert, AWS DMS prend en charge un chargement complet multithreadsur un cluster cible Amazon ES. DMS prend en charge ce traitement multithread avec des paramètres detâche, notamment les suivants :

• MaxFullLoadSubTasks – Utilisez cette option pour indiquer le nombre maximal de tables source àcharger en parallèle. DMS charge chaque table dans son index Elasticsearch cible correspondant à l'aided'une sous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

• ParallelLoadThreads – Utilisez cette option pour spécifier le nombre de threads utilisés par AWSDMS pour charger chaque table dans son index cible Elasticsearch. La valeur maximale pour une cibleAmazon ES est 32. Vous pouvez demander une augmentation de cette limite maximale.

Note

Si vous ne modifiez pas la valeur par défaut de ParallelLoadThreads (0), AWS DMStransfère un seul enregistrement à la fois. Cette approche entraîne une charge inutile sur votrecluster Elasticsearch. Veillez à définir cette option sur 1 ou plus.

• ParallelLoadBufferSize – Utilisez cette option pour spécifier le nombre maximal d'enregistrementsà stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger lesdonnées dans la cible Elasticsearch. La valeur par défaut est 50. La valeur maximale est 1 000. Utilisezce paramètre avec ParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dansle cas de plusieurs threads.

Version de l'API API Version 2016-01-01297

Page 305: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Elasticsearch Service comme cible

• Paramètres de mappage de table pour des tables individuelles – Utilisez des règles table-settingspour identifier les tables individuelles de la source que vous souhaitez charger en parallèle. Utilisezégalement ces règles pour spécifier comment segmenter les lignes de chaque table pour le chargementmultithread. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

DMS attribue chaque segment d'une table à son propre thread pour le chargement. Parconséquent, définissez ParallelLoadThreads sur le nombre maximal de segments que vousspécifiez pour une table de la source.

Pour plus d'informations sur la façon dont DMS charge un cluster Elasticsearch à l'aide de multithreads,consultez le billet de blog Scale Amazon Elasticsearch Service for AWS Database Migration Servicemigrations.

Configurez votre cluster Elasticsearch avec des ressources de calcul et de stockage appropriées selon laportée de votre migration. Nous vous recommandons de prendre en compte les facteurs suivants, selon latâche de réplication que vous souhaitez utiliser :

• Pour un chargement de données complet, tenez compte du volume total de données à migrer ainsi quede la vitesse du transfert.

• Pour la réplication de modifications en cours, tenez compte de la fréquence des mises à jour et de vosexigences en termes de latence.

En outre, configurez les paramètres d'index sur votre cluster Elasticsearch, en prêtant une attentionparticulière au nombre de documents.

Migration d'une table de base de données relationnelle vers unindex Amazon ESAWS DMS prend en charge la migration de données vers les types de données scalaires Elasticsearch.Lors d'une migration d'une base de données relationnelle telle qu'Oracle ou MySQL vers Elasticsearch,vous souhaiterez peut-être restructurer la manière dont vous stockez ces données.

AWS DMS prend en charge les types de données scalaires Elasticsearch suivants :

• Booléen• Date• Float• Int• Chaîne

AWS DMS convertit les données de type Date en type String. Vous pouvez spécifier des mappagespersonnalisés pour interpréter ces dates.

AWS DMS ne prend pas en charge la migration de types de données LOB.

Conditions préalables à l'utilisation d'Amazon ElasticsearchService comme cible pour AWS Database Migration ServiceAvant de commencer à utiliser une base de données Elasticsearch comme cible de AWS DMS, veillez àcréer un rôle AWS Identity and Access Management (IAM). Ce rôle doit permettre à AWS DMS d'accéderaux index Elasticsearch au point de terminaison cible. L'ensemble d'autorisations d'accès minimum estindiqué dans l'exemple de stratégie de rôle suivant :

Version de l'API API Version 2016-01-01298

Page 306: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Elasticsearch Service comme cible

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Le rôle que vous utilisez pour la migration vers Elasticsearch doit bénéficier des autorisations suivantes :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ]}

Dans l'exemple précédent, remplacez region par l'identifiant de région AWS, account-id par votre IDde compte AWS, et domain-name par le nom de votre domaine Amazon Elasticsearch Service. Voici unexemple : arn:aws:es:us-west-2:123456789012:domain/my-es-domain.

Attributs de connexion supplémentaires lors de l'utilisationd'Elasticsearch comme cible de AWS DMSLorsque vous configurez votre point de terminaison Elasticsearch cible, vous pouvez spécifier des attributsde connexion supplémentaires. Ces attributs sont spécifiés par des paires clé/valeur et sont séparés pardes points-virgules.

Le tableau suivant décrit les attributs de connexion supplémentaires disponibles lorsque vous utilisez uneinstance Elasticsearch comme source de AWS DMS.

Nom d'attribut Valeurs valides Valeur par défaut et description

fullLoadErrorPercentageUn nombre entier positifsupérieur à 0, mais nedépassant pas 100.

10 - Pour une tâche de chargement complet, cet attributdétermine le seuil d'erreurs autorisées avant que la tâcheéchoue. Par exemple, supposons qu'il y a 1 500 lignesau point de terminaison source et que ce paramètre estdéfini sur 10. Dans ce cas, la tâche échoue si AWS DMSrencontre plus de 150 erreurs (10 % du nombre de lignes)lors de l'écriture sur le point de terminaison cible.

Version de l'API API Version 2016-01-01299

Page 307: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon Elasticsearch Service comme cible

Nom d'attribut Valeurs valides Valeur par défaut et description

errorRetryDurationUn nombre entier positifsupérieur à 0.

300 - Si une erreur se produit au point de terminaison cible,AWS DMS effectue de nouvelles tentatives pendant cenombre de secondes. Sinon, la tâche échoue.

Limitations à l'utilisation d'Amazon Elasticsearch Service commecible pour AWS Database Migration ServiceLes limitations suivantes s'appliquent lorsque vous utilisez Amazon Elasticsearch Service comme cible :

• AWS DMS prend uniquement en charge la réplication de tables avec des clés primaires non composites.La clé primaire de la table source doit se composent d'une seule colonne.

• Elasticsearch utilise le mappage dynamique (auto guess) pour déterminer les types de données à utiliserpour les données migrées.

• Elasticsearch stocke chaque document avec un ID unique. Voici un exemple d'ID.

"_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

Chaque ID de document compte 64 octets. Tenez-en compte dans les exigences de stockage. Parexemple, si vous migrez 100 000 lignes à partir d'une source AWS DMS, l'index Elasticsearch résultantnécessite le stockage de 6 400 000 octets supplémentaires.

• Avec Amazon ES, vous ne pouvez pas mettre à jour les attributs de clé primaire. Cette restriction estimportante lors de l'utilisation de la réplication continue avec la capture des données modifiées (CDC),car elle peut entraîner des données non souhaitées dans la cible. Dans le mode CDC, les clés primairessont mappées vers des valeurs SHA256, dont la longueur est de 32 octets. Ces valeurs sont convertiesen chaînes de 64 octets lisibles par l'homme et sont utilisées comme ID de document Elasticsearch.

• Si AWS DMS détecte des éléments qui ne peuvent pas être migrés, il consigne des messages d'erreurdans Amazon CloudWatch Logs. Ce comportement diffère de celui des autres points de terminaisoncibles de AWS DMS, qui enregistrent les erreurs dans une table d'exceptions.

Types de donnée cible pour Amazon Elasticsearch ServiceLorsque AWS DMS migre des données à partir de bases de données hétérogènes, le service mappe lestypes de données de la base de données source vers des types de données intermédiaires, appelés typesde données AWS DMS. Le service mappe ensuite les types de données intermédiaires vers les types dedonnées cibles. Le tableau suivant illustre chaque type de données AWS DMS et le type de données verslequel il est mappé dans Elasticsearch.

Type de données AWS DMS Type de données Elasticsearch

Booléen boolean

Date chaîne

Heure date

Horodatage date

INT4 integer

Real4 float

Version de l'API API Version 2016-01-01300

Page 308: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

Type de données AWS DMS Type de données Elasticsearch

UINT4 integer

Pour plus d'informations sur les types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Utilisation d'Amazon DocumentDB comme cible pourAWS Database Migration ServiceVous pouvez utiliser AWS DMS pour migrer des données vers Amazon DocumentDB (avec compatibilitéMongoDB) à partir de tout moteur de données source pris en charge par AWS DMS. Le moteur source peutse trouver sur un service géré par Amazon tel que Amazon RDS, Aurora ou Amazon S3. Le moteur peutégalement se trouver sur une base de données autogérée, telle que MongoDB, qui s'exécute sur AmazonEC2 ou sur site.

Note

La prise en charge d'Amazon DocumentDB (avec compatibilité MongoDB) comme cible estdisponible dans AWS DMS versions 3.1.3 et ultérieures.

Vous pouvez utiliser AWS DMS pour répliquer des données source dans les bases de données, lescollections ou les documents Amazon DocumentDB.

Si le point de terminaison source est MongoDB, veillez à activer les attributs de connexion supplémentairessuivants :

• nestingLevel=NONE

• extractDocID=false

Pour plus d'informations, consultez Attributs de connexion supplémentaires lors de l'utilisation de MongoDBcomme source pour AWS DMS (p. 197).

MongoDB stocke les données dans un format JSON binaire (BSON). AWS DMS prend en charge tous lestypes de données BSON qui sont pris en charge par Amazon DocumentDB. Pour obtenir une liste de cestypes de données, consultez API MongoDB, opérations et types de données pris en charge dans le Manueldu développeur Amazon DocumentDB.

Si le point de terminaison source est une base de données relationnelle, AWS DMS mappe les objets debase de données à Amazon DocumentDB comme suit :

• Une base de données relationnelle ou un schéma de base de donnée est mappé à une base de donnéesAmazon DocumentDB.

• Les tables situées dans une base de données relationnelle sont mappées à des collections dansAmazon DocumentDB.

• Les enregistrements situés dans une table relationnelle sont mappés à des documents dans AmazonDocumentDB. Chaque document est construit à partir de données de l'enregistrement source.

Si le point de terminaison source est Amazon S3, les objets Amazon DocumentDB résultantscorrespondent aux règles de mappage AWS DMS pour Amazon S3. Prenons l'exemple de l'URI suivant :

s3://mybucket/hr/employee

Version de l'API API Version 2016-01-01301

Page 309: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

Dans ce cas, AWS DMS mappe les objets de mybucket à Amazon DocumentDB comme suit :

• La partie de niveau supérieur de l'URI (hr) est mappée à une base de données Amazon DocumentDB.• La partir suivante de l'URI (employee) est mappée à une collection Amazon DocumentDB.• Chaque objet de employee est mappé à un document dans Amazon DocumentDB.

Pour plus d'informations sur les règles de mappage pour Amazon S3, consultez Utilisation de Amazon S3comme source pour AWS DMS (p. 198).

Pour augmenter la vitesse du transfert, AWS DMS prend en charge un chargement complet multithreadsur une instance cible Amazon DocumentDB. DMS prend en charge ce traitement multithread avec desparamètres de tâche, notamment les suivants :

• MaxFullLoadSubTasks – Utilisez cette option pour indiquer le nombre maximal de tables sourceà charger en parallèle. DMS charge chaque table dans sa table cible Amazon DocumentDBcorrespondante à l'aide d'une sous-tâche dédiée. La valeur par défaut est 8 ; la valeur maximale 49.

• ParallelLoadThreads – Utilisez cette option pour spécifier le nombre de threads utilisés par AWSDMS pour charger chaque table dans sa table cible Amazon DocumentDB. La valeur maximale pour unecible Amazon DocumentDB est 32. Vous pouvez demander une augmentation de cette limite maximale.

• ParallelLoadBufferSize – Utilisez cette option pour spécifier le nombre maximal d'enregistrementsà stocker dans la mémoire tampon utilisée par les threads de chargement parallèles pour charger lesdonnées dans la cible Amazon DocumentDB. La valeur par défaut est 50. La valeur maximale est1 000. Utilisez ce paramètre avec ParallelLoadThreads. ParallelLoadBufferSize est valideuniquement dans le cas de plusieurs threads.

• Paramètres de mappage de table pour des tables individuelles – Utilisez des règles table-settingspour identifier les tables individuelles de la source que vous souhaitez charger en parallèle. Utilisezégalement ces règles pour spécifier comment segmenter les lignes de chaque table pour le chargementmultithread. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

DMS attribue chaque segment d'une table à son propre thread pour le chargement. Parconséquent, définissez ParallelLoadThreads sur le nombre maximal de segments que vousspécifiez pour une table de la source.

Pour plus d'informations sur l'utilisation d'Amazon DocumentDB comme cible pour AWS DMS et pourobtenir la procédure du processus de migration, consultez les sections ci-après.

Rubriques• Mappage de données d'une source vers une cible Amazon DocumentDB (p. 302)• Réplication continue avec Amazon DocumentDB comme cible (p. 306)• Limitations de l'utilisation d'Amazon DocumentDB en tant que cible (p. 307)• Types de données cible pour Amazon DocumentDB (p. 307)• Procédure : Migration de MongoDB vers Amazon DocumentDB (p. 308)

Mappage de données d'une source vers une cible AmazonDocumentDBAWS DMS lit les enregistrements du point de terminaison source et crée des documents JSON en fonctiondes données lues. Pour chaque document JSON, AWS DMS doit déterminer un champ _id faisant officed'identifiant unique. Il écrit ensuite le document JSON dans une collection Amazon DocumentDB enutilisant le champ _id comme clé primaire.

Version de l'API API Version 2016-01-01302

Page 310: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

Données source se composant d'une colonne uniqueSi les données source se composent d'une seule colonne, elles doivent être de type string (chaîne). (Enfonction du moteur source, le type de données réel peut être VARCHAR, NVARCHAR TEXT, LOB, CLOB,etc.). AWS DMS suppose que les données sont un document JSON valide et les réplique telles quelles surAmazon DocumentDB.

Si le document JSON résultant contient un champ nommé _id, ce dernier est utilisé comme _id uniquedans Amazon DocumentDB.

Si le document JSON ne contient pas de champ _id, Amazon DocumentDB génère une valeur _idautomatiquement.

Données source se composant de plusieurs colonnesSi les données source se composent de plusieurs colonnes, AWS DMS crée un document JSON à partir del'ensemble de ces colonnes. Pour déterminer le champ _id du document, AWS DMS procède comme suit :

• Si l'une des colonnes est nommée _id, les données de cette colonne sont utilisées comme _id cible.• S'il n'y a pas de colonne _id, mais que les données source comportent une clé primaire ou un index

unique, AWS DMS utilise cette valeur de clé ou d'index comme valeur _id. Les données de la cléprimaire ou de l'index unique apparaissent également sous forme de champs explicites dans ledocument JSON.

• S'il n'y a pas de colonne _id et aucune clé primaire ni aucun index unique, Amazon DocumentDBgénère une valeur _id automatiquement.

Imposition d'un type de données au niveau du point de terminaison cibleAWS DMS peut modifier les structures de données lors de l'écriture sur un point de terminaison cibleAmazon DocumentDB. Vous pouvez demander ces modifications en renommant des colonnes et destables au niveau du point de terminaison source ou en fournissant des règles de transformation qui sontappliquées lorsqu'une tâche est en cours d'exécution.

Utilisation d'un document JSON imbriqué (json_ Prefix)

Pour imposer un type de données, vous pouvez préfixer le nom de colonne source avec json_ (c'est-à-dire, json_columnName), manuellement ou à l'aide d'une transformation. Dans ce cas, la colonne estcréée sous la forme d'un document JSON imbriqué dans le document cible, plutôt que sous la forme d'unchamp de chaîne.

Par exemple, supposons que vous souhaitiez migrer le document suivant à partir d'un point de terminaisonsource MongoDB.

{ "_id": "1", "FirstName": "John", "LastName": "Doe", "ContactDetails": "{"Home": {"Address": "Boston","Phone": "1111111"},"Work": { "Address": "Boston", "Phone": "2222222222"}}"}

Si vous n'imposez aucun des types de données source, le document ContactDetails imbriqué est migrésous la forme d'une chaîne.

{ "_id": "1", "FirstName": "John", "LastName": "Doe",

Version de l'API API Version 2016-01-01303

Page 311: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

"ContactDetails": "{\"Home\": {\"Address\": \"Boston\",\"Phone\": \"1111111\"},\"Work\": { \"Address\": \"Boston\", \"Phone\": \"2222222222\"}}"}

Toutefois, vous pouvez ajouter une règle de transformation pour contraindre l'insertion deContactDetails dans un objet JSON. Par exemple, supposons que le nom de la colonne sourced'origine est ContactDetails. Supposons également que la colonne source renommée doive êtrejson_ContactDetails. AWS DMS réplique le champ ContactDetails sous la forme d'un documentJSON imbriqué, comme ci-après.

{ "_id": "1", "FirstName": "John", "LastName": "Doe", "ContactDetails": { "Home": { "Address": "Boston", "Phone": "1111111111" }, "Work": { "Address": "Boston", "Phone": "2222222222" } }}

Utilisation d'un tableau JSON (array_ Prefix)

Pour imposer un type de données, vous pouvez préfixer un nom de colonne avec array_ (c'est-à-dire,array_columnName), manuellement ou à l'aide d'une transformation. Dans ce cas, AWS DMS considèrela colonne comme un tableau JSON et le crée en tant que tel dans le document cible.

Supposons que vous souhaitiez migrer le document suivant à partir d'un point de terminaison sourceMongoDB.

{ "_id" : "1", "FirstName": "John", "LastName": "Doe",

"ContactAddresses": ["Boston", "New York"], "ContactPhoneNumbers": ["1111111111", "2222222222"]}

Si vous n'imposez aucun des types de données source, le document ContactDetails imbriqué est migrésous la forme d'une chaîne.

{ "_id": "1", "FirstName": "John", "LastName": "Doe",

"ContactAddresses": "[\"Boston\", \"New York\"]", "ContactPhoneNumbers": "[\"1111111111\", \"2222222222\"]"

}

Toutefois, vous pouvez ajouter des règles de transformation pour forcer l'insertion de ContactAddress etde ContactPhoneNumbers dans des tableaux JSON, comme illustré dans le tableau suivant.

Version de l'API API Version 2016-01-01304

Page 312: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

Nom de la colonne source d'origine Colonne source renommée

ContactAddress array_ContactAddress

ContactPhoneNumbers array_ContactPhoneNumbers

AWS DMS réplique ContactAddress et ContactPhoneNumbers comme suit.

{ "_id": "1", "FirstName": "John", "LastName": "Doe", "ContactAddresses": [ "Boston", "New York" ], "ContactPhoneNumbers": [ "1111111111", "2222222222" ]}

Connexion à Amazon DocumentDB à l'aide de TLS

Par défaut, un cluster Amazon DocumentDB nouvellement créé n'accepte que les connexions sécuriséesà l'aide du protocole TLS (Transport Layer Security). Lorsque TLS est activé, chaque connexion à AmazonDocumentDB nécessite une clé publique.

Vous pouvez récupérer la clé publique pour Amazon DocumentDB en téléchargeant le fichier, rds-combined-ca-bundle.pem, à partir d'un compartiment Amazon S3 hébergé par AWS. Pour plusd'informations sur le téléchargement de ce fichier, consultez Chiffrement des connexions à l'aide de TLSdans Manuel du développeur Amazon DocumentDB

Après avoir téléchargé ce fichier .pem, vous pouvez importer la clé publique qu’il contient dans AWS DMS,comme décrit ci-dessous.

AWS Management Console

Pour importer le fichier de clé publique (.pem)

1. Ouvrez la console AWS DMS à l'adresse https://console.aws.amazon.com/dms.2. Dans le volet de navigation, choisissez Certificates.3. Choisissez l'onglet Import certificate (Importer le certificat) et effectuez les opérations suivantes :

• Pour Certificate identifier (Identifiant de certificat), entrez un nom unique pour le certificat, parexemple, docdb-cert.

• Pour Import file (Importer un fichier), accédez à l'emplacement où vous avez enregistré lefichier .pem.

Lorsque les paramètres vous conviennent, choisissez Add new CA certificate (Ajouter un nouveaucertificat CA).

AWS CLI

Utilisez la commande aws dms import-certificate, comme illustré dans l'exemple suivant.

Version de l'API API Version 2016-01-01305

Page 313: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

aws dms import-certificate \ --certificate-identifier docdb-cert \ --certificate-pem file://./rds-combined-ca-bundle.pem

Lorsque vous créez un point de terminaison cible AWS DMS, fournissez l'identifiant de certificat (parexemple, docdb-cert). Définissez aussi le paramètre de mode SSL sur verify-full.

Réplication continue avec Amazon DocumentDB comme cibleSi la réplication continue est activée, AWS DMS veille à ce que les documents dans Amazon DocumentDBrestent synchronisés avec la source. Lorsqu'un enregistrement source est créé ou mis à jour, AWS DMSdoit d'abord déterminer quel enregistrement Amazon DocumentDB est affecté en procédant comme suit :

• Si l'enregistrement source comporte une colonne nommée _id, la valeur de cette colonne détermine lavaleur _id correspondante dans la collection Amazon DocumentDB.

• S'il n'y a pas de colonne _id, mais que les données source comportent une clé primaire ou un indexunique, AWS DMS utilise cette valeur de clé ou d'index comme valeur _id pour la collection AmazonDocumentDB.

• Si l'enregistrement source ne comporte pas de colonne _id, ni de clé primaire ou d'index unique, AWSDMS fait correspondre toutes les colonnes source avec les champs correspondants dans la collectionAmazon DocumentDB.

Lorsqu'un nouvel enregistrement source est créé, AWS DMS écrit un document correspondant dansAmazon DocumentDB. Si un enregistrement source existant est mis à jour, AWS DMS met à jour leschamps correspondants dans le document cible dans Amazon DocumentDB. Tous les champs qui existentdans le document cible, mais pas dans l'enregistrement source, restent intacts.

Lorsqu'un enregistrement source est supprimé, AWS DMS supprime le document correspondant dansAmazon DocumentDB.

Modifications structurelles (DDL) à la sourceAvec la réplication continue, les modifications des structures de données source (telles que les tables,colonnes, etc.) sont propagées à leurs homologues dans Amazon DocumentDB. Dans les bases dedonnées relationnelles, ces modifications sont lancées à l'aide d'instructions DDL (Data DefinitionLanguage). Vous pouvez voir la façon dont AWS DMS propage ces modifications dans AmazonDocumentDB dans le tableau suivant.

DDL à la source Effet sur la cible Amazon DocumentDB

CREATE TABLE Crée une collection vide.

Déclaration qui renomme une table (RENAMETABLE, ALTER TABLE...RENAME, etc.)

Renomme la collection.

TRUNCATE TABLE Supprime tous les documents de la collection, maisuniquement si HandleSourceTableTruncateda pour valeur true. Pour plus d'informations,consultez Paramètres de tâche pour la gestion duDDL de traitement des modifications (p. 344).

DROP TABLE Supprime la collection, mais uniquement siHandleSourceTableDropped a pour valeurtrue. Pour plus d'informations, consultezParamètres de tâche pour la gestion du DDL detraitement des modifications (p. 344).

Version de l'API API Version 2016-01-01306

Page 314: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

DDL à la source Effet sur la cible Amazon DocumentDB

Instruction qui ajoute une colonne à une table(ALTER TABLE...ADD, etc.)

L'instruction DDL est ignorée et un avertissementest émis. Lorsque la première instruction INSERTest exécutée à la source, le nouveau champ estajouté au document cible.

ALTER TABLE...RENAME COLUMN L'instruction DDL est ignorée et un avertissementest émis. Lorsque la première instruction INSERTest exécutée à la source, le nouveau champ estajouté au document cible.

ALTER TABLE...DROP COLUMN L'instruction DDL est ignorée et un avertissementest émis.

Déclaration qui modifie le type de données de lacolonne (ALTER COLUMN...MODIFY, etc.)

L'instruction DDL est ignorée et un avertissementest émis. Lorsque la première instruction INSERTest exécutée à la source avec le nouveau typede données, le document cible est créé avec unchamp ayant ce nouveau type de données.

Limitations de l'utilisation d'Amazon DocumentDB en tant quecibleLes limitations suivantes s'appliquent lorsque vous utilisez Amazon DocumentDB comme cible pour AWSDMS :

• Dans Amazon DocumentDB, les noms de collection ne peuvent pas contenir le symbole du dollar ($). Enoutre, les noms de base de données ne peuvent pas contenir de caractères Unicode.

• AWS DMS ne prend pas en charge la fusion de plusieurs tables source dans une seule collectionAmazon DocumentDB.

• Lorsque AWS DMS traite les modifications provenant d'une table source qui ne possède pas de cléprimaire, les colonnes LOB de cette table sont ignorées.

• Si l'option Change table (Modifier la table) est activée et que AWS DMS rencontre une colonne sourcenommée « _id », cette colonne apparaît sous la forme « __id » (deux traits de soulignement) dans latable modifiée.

• Si vous choisissez Oracle comme point de terminaison source, une journalisation supplémentairecomplète doit être activée sur la source Oracle. Dans le cas contraire, s'il existe des colonnes à la sourcequi n'ont pas été modifiées, les données seront chargées dans Amazon DocumentDB tant que valeursnull.

Types de données cible pour Amazon DocumentDBDans le tableau suivant, vous trouverez les types de données cible Amazon DocumentDB qui sont prisen charge lorsque vous utilisez AWS DMS et le mappage par défaut à partir des types de données AWSDMS. Pour plus d'informations sur le types de données AWS DMS, consultez Types de données pourAWS Database Migration Service (p. 485).

Type de données AWS DMS Type de données Amazon DocumentDB

BOOLEAN Booléen

BYTES Données binaires

Version de l'API API Version 2016-01-01307

Page 315: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

Type de données AWS DMS Type de données Amazon DocumentDB

DATE Date

TIME Chaîne (UTF8)

DATETIME Date

INT1 Entier 32 bits

INT2 Entier 32 bits

INT4 Entier 32 bits

INT8 Entier 64 bits

NUMERIC Chaîne (UTF8)

REAL4 Double

REAL8 Double

STRING Si les données sont reconnues comme étant au format JSON, AWSDMS les migre vers Amazon DocumentDB sous la forme d'un document.Dans le cas contraire, les données sont mappées au format Chaîne(UTF8).

UINT1 Entier 32 bits

UINT2 Entier 32 bits

UINT4 Entier 64 bits

UINT8 Chaîne (UTF8)

WSTRING Si les données sont reconnues comme étant au format JSON, AWSDMS les migre vers Amazon DocumentDB sous la forme d'un document.Dans le cas contraire, les données sont mappées au format Chaîne(UTF8).

BLOB Binaire

CLOB Si les données sont reconnues comme étant au format JSON, AWSDMS les migre vers Amazon DocumentDB sous la forme d'un document.Dans le cas contraire, les données sont mappées au format Chaîne(UTF8).

NCLOB Si les données sont reconnues comme étant au format JSON, AWSDMS les migre vers Amazon DocumentDB sous la forme d'un document.Dans le cas contraire, les données sont mappées au format Chaîne(UTF8).

Procédure : Migration de MongoDB vers Amazon DocumentDBUtilisez la procédure suivante pour vous guider tout au long du processus de migration de MongoDB versAmazon DocumentDB (avec compatibilité MongoDB). Dans cette procédure, vous allez :

• installer MongoDB sur une instance Amazon EC2 ;• remplir MongoDB avec des exemples de données ;

Version de l'API API Version 2016-01-01308

Page 316: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

• créer une instance de réplication AWS DMS, un point de terminaison source (pour MongoDB) et un pointde terminaison cible (pour Amazon DocumentDB) ;

• exécuter une tâche AWS DMS pour migrer les données du point de terminaison source vers le point determinaison cible.

Important

Avant de commencer, assurez-vous de lancer un cluster Amazon DocumentDB dans votre VirtualPrivate Cloud (VPC) par défaut. Pour plus d'informations, consultez Mise en route dans le Manueldu développeur Amazon DocumentDB.

Rubriques• Étape 1 : Lancer une instance Amazon EC2 (p. 309)• Étape 2 : Installer et configurer MongoDB Community Edition (p. 310)• Étape 3 : Créer une instance de réplication AWS DMS (p. 311)• Étape 4 : Créer des points de terminaison source et cible (p. 312)• Étape 5 : Créer et exécuter une tâche de migration (p. 314)

Étape 1 : Lancer une instance Amazon EC2Pour cette procédure pas à pas, vous allez lancer une instance Amazon EC2 dans votre VPC par défaut.

Pour lancer une instance Amazon EC2

1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.2. Choisissez Lancer une instance , puis effectuez les actions suivantes :

a. Sur la page Sélection d'une Amazon Machine Image (AMI), en haut de la liste des AMI, accédez àAMI Amazon Linux et choisissez Sélectionner.

b. Sur la page Choisir un type d'instance, en haut de la liste des types d'instance, choisissezt2.micro. Choisissez ensuite Next: Configure Instance Details (Suivant : Configurer les détails del'instance).

c. Sur la page Configurer les détails de l'instance, choisissez votre VPC par défaut dans le champRéseau. Puis choisissez Suivant : Ajouter le stockage.

d. Sur la page Ajouter le stockage, ignorez cette étape en choisissant Suivant : Ajouter des balises.e. Sur la page Ajouter des balises, ignorez cette étape en choisissant Suivant : Configurer le groupe

de sécurité.f. Sur la page Configurer le groupe de sécurité, procédez de la façon suivante :

1. Choisissez Select an existing security group.2. Dans la liste des groupes de sécurité, choisissez default. Cette opération permet de choisir le

groupe de sécurité par défaut pour votre VPC. Par défaut, le groupe de sécurité accepte lesconnexions Secure Shell (SSH) entrantes sur le port TPC 22. Si ce n'est pas le cas pour votreVPC, ajoutez cette règle ; pour plus d'informations, consultez Qu'est-ce qu'Amazon VPC ? dansle Amazon VPC Guide de l'utilisateur.

3. Choisissez Next: Review and Launch.g. Vérifiez les informations, puis choisissez Lancer.

3. Dans la fenêtre Select an existing key pair or create a new key pair, sélectionnez l'une des optionssuivantes :

• Si vous n'avez pas de paire de clés Amazon EC2, choisissez Créer une nouvelle paire de clés etsuivez les instructions. Vous êtes invité à télécharger un fichier de clé privée (fichier .pem). Vousaurez besoin de ce fichier plus tard, pour vous connecter à votre instance Amazon EC2.

Version de l'API API Version 2016-01-01309

Page 317: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

• Si vous disposez déjà d'une paire de clés Amazon EC2, pour Sélectionner une paire de clés,choisissez votre paire de clés dans la liste. Vous devez déjà disposer d'un fichier de clé privé(fichier .pem) disponible pour pouvoir vous connecter à votre instance Amazon EC2.

4. Une fois que vous avez configuré votre paire de clés, choisissez Lancer des instances.

Dans le volet de navigation de la console, choisissez Tableau de bord EC2, puis choisissezl'instance que vous avez lancée. Dans le volet inférieur, sous l'onglet Description, recherchezl'emplacement DNS public de votre instance ; par exemple, ec2-11-22-33-44.us-west-2.compute.amazonaws.com.

L'instance Amazon EC2 peut prendre quelques minutes avant d'être disponible.5. Utilisez la commande ssh pour vous connecter à votre instance Amazon EC2, comme dans l'exemple

suivant :

chmod 400 my-keypair.pemssh -i my-keypair.pem ec2-user@public-dns-name

Spécifiez votre fichier de clé privée (fichier .pem) et le nom DNS public de votre instance EC2. L'ID deconnexion est ec2-user. Aucun mot de passe n'est requis.

Pour plus d'informations sur la connexion à votre instance EC, consultez Connexion à votre instanceLinux à l'aide de SSH dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Étape 2 : Installer et configurer MongoDB Community Edition

Effectuez ces étapes sur l'instance Amazon EC2 que vous avez lancée à l'Étape 1 : Lancer une instanceAmazon EC2 (p. 309).

Pour installer et configurer MongoDB Community Edition sur votre instance EC2

1. Accédez à Installation de MongoDB Community Edition sur Amazon Linux dans la documentationMongoDB et suivez les instructions.

2. Par défaut, le serveur MongoDB (mongod) autorise uniquement les connexions en boucle à partir del'adresse IP 127.0.0.1 (localhost). Pour autoriser les connexions à partir d'un autre endroit de votreAmazon VPC, procédez comme suit :

a. Ouvrez le fichier /etc/mongod.conf et recherchez les lignes suivantes :

# network interfacesnet: port: 27017 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

b. Modifiez la ligne bindIp afin qu'elle ressemble à ce qui suit :

bindIp: public-dns-name

c. Remplacez public-dns-name par le nom DNS public réel de votre instance ; par exemple,ec2-11-22-33-44.us-west-2.compute.amazonaws.com.

d. Enregistrez le fichier /etc/mongod.conf et redémarrez mongod.

sudo service mongod restart

3. Remplissez votre instance MongoDB de données en procédant comme suit :Version de l'API API Version 2016-01-01

310

Page 318: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

a. Utilisez la commande wget pour télécharger un fichier JSON contenant des exemples dedonnées.

wget http://media.mongodb.org/zips.json

b. Utilisez la commande mongoimport pour importer les données dans une nouvelle base dedonnées (zips-db).

mongoimport --host public-dns-name:27017 --db zips-db --file zips.json

c. Une fois l'importation terminée, utilisez le shell mongo pour vous connecter à MongoDB et vérifiezque les données ont été chargées correctement.

mongo --host public-dns-name:27017

d. Remplacez public-dns-name par le nom DNS public réel de votre instance.e. À l'invite de shell mongo, entrez les commandes suivantes :

use zips-db db.zips.count()

db.zips.aggregate( [ { $group: { _id: { state: "$state", city: "$city" }, pop: { $sum: "$pop" } } }, { $group: { _id: "$_id.state", avgCityPop: { $avg: "$pop" } } }] )

La sortie doit ressembler à ce qui suit :

• Nom de la base de données (zips-db)• Nombre de documents dans la collection zips (29353)• Population moyenne des villes dans chaque état

f. Quittez le shell mongo et revenez à l'invite de commande à l'aide de la commande suivante.

exit

Étape 3 : Créer une instance de réplication AWS DMS

Pour effectuer la réplication dans AWS DMS, vous avez besoin d'une instance de réplication.

Pour créer une instance de réplication AWS DMS

1. Ouvrez la console AWS DMS à l'adresse https://console.aws.amazon.com/dms/.2. Dans le volet de navigation, sélectionnez Instances de réplication.3. Choisissez Create replication instance (Créer une instance de réplication) et indiquez les informations

suivantes :

• Pour Nom, saisissez mongodb2docdb.• Pour Description, entrez MongoDB to Amazon DocumentDB replication instance.• For Classe d'instance, conservez la valeur par défaut.• Pour Version du moteur, conservez la valeur par défaut.• Pour VPC, choisissez le VPC par défaut.

Version de l'API API Version 2016-01-01311

Page 319: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

• Pour Multi-AZ, choisissez Non.• Pour Accessible publiquement, activez cette option.

Lorsque tous les paramètres sont définis selon vos choix, choisissez Create replication instance (Créerune instance de réplication).

Note

Vous pouvez commencer à utiliser votre instance de réplication lorsque son état devientdisponible. Cela peut prendre plusieurs minutes.

Étape 4 : Créer des points de terminaison source et cible

Le point de terminaison source est le point de terminaison de l'installation MongoDB en cours d'exécutionsur votre instance Amazon EC2.

Pour créer un point de terminaison source

1. Ouvrez la console AWS DMS à l'adresse https://console.aws.amazon.com/dms/.2. Dans le volet de navigation, choisissez Endpoints.3. Choisissez Créer un point de terminaison et entrez les informations suivantes :

• Pour Type de point de terminaison, choisissez Source.• Pour ID du point de terminaison, entrez un nom facile à mémoriser, par exemple mongodb-source.• Pour Moteur source, choisissez mongodb.• Pour Nom du serveur, entrez le nom DNS public de votre instance Amazon EC2, par exempleec2-11-22-33-44.us-west-2.compute.amazonaws.com.

• Pour Port, entrez 27017.• Pour SSL mode (Mode SSL), choisissez none (aucun).• Pour Authentication mode (Mode d'authentification), choisissez none (aucun).• Pour Database name (Nom de la base de données), entrez zips-db.• Pour Authentication mechanism (Mécanisme d'authentification), choisissez default (valeur par

défaut).• Pour Metadata mode (Mode de métadonnées), choisissez document.

Lorsque tous les paramètres sont définis selon vos choix, choisissez Créer un point de terminaison.

Vous devez ensuite créer un point de terminaison cible. Ce point de terminaison est destiné à votre clusterAmazon DocumentDB, qui doit être déjà en cours d'exécution. Pour plus d'informations sur le lancementde votre cluster Amazon DocumentDB, consultez Mise en route dans le Manuel du développeur AmazonDocumentDB

Important

Avant de commencer, vous devez exécuter les actions suivantes :

• Vous devez avoir à votre disposition le nom d'utilisateur principal et le mot de passe principal devotre cluster Amazon DocumentDB.

• Vous devez aussi disposer du nom DNS et du numéro de port de votre cluster AmazonDocumentDB afin que AWS DMS puisse s'y connecter. Pour déterminer ces informations,utilisez la commande d'AWS CLI suivante, en remplaçant cluster-id par le nom de votrecluster Amazon DocumentDB.

Version de l'API API Version 2016-01-01312

Page 320: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

aws docdb describe-db-clusters \ --db-cluster-identifier cluster-id \ --query "DBClusters[*].[Endpoint,Port]"

• Téléchargez un ensemble de certificats que Amazon DocumentDB pourra utiliser pour vérifierles connexions SSL. Pour ce faire, entrez la commande suivante : Ici, aws-api-domaincomplète le domaine Amazon S3 dans votre région requis pour accéder au compartiment S3spécifié et au fichier rds-combined-ca-bundle.pem qu'il fournit.

wget https://s3.aws-api-domain/rds-downloads/rds-combined-ca-bundle.pem

Pour créer un point de terminaison cible

1. Dans le volet de navigation, choisissez Endpoints.2. Choisissez Créer un point de terminaison et entrez les informations suivantes :

• Pour Type de point de terminaison, choisissez Cible.• Pour ID du point de terminaison, entrez un nom facile à mémoriser, par exemple docdb-target.• Pour Target engine (Moteur cible), choisissez docdb.• Pour Server name (Nom du serveur), entrez le nom DNS de votre cluster Amazon DocumentDB.• Pour Port, entrez le numéro de port de votre cluster Amazon DocumentDB.• Pour SSL mode (Mode SSL), choisissez verify-full.• Pour le CA certificate (Certificat d’une autorité de certification), effectuez l'une des opérations

suivantes pour attacher le certificat SSL à votre point de terminaison :• S’il est disponible, choisissez le certificat rds-combined-ca-bundle existant dans le menu déroulant

Choose a certificate (Choisir un certificat).• Choisissez Add new CA certificate (Ajouter un nouveau certificat d'autorité de certification).

Ensuite, pour Certificate identifier (Identificateur de certificat), saisissez rds-combined-ca-bundle. Dans Import certificate file (Importer un fichier de certificat), choisissez Choose file(Choisir un fichier) et accédez au fichier rds-combined-ca-bundle.pem que vous aveztéléchargé précédemment. Sélectionnez et ouvrez le fichier. Choisissez Import certificate(Importer un certificat), puis choisissez rds-combined-ca-bundle dans le menu déroulant Choose acertificate (Choisir un certificat).

• Pour User name (Nom d'utilisateur), entrez le nom d'utilisateur principal de votre cluster AmazonDocumentDB.

• Pour Password (Mot de passe), entrez le mot de passe principal de votre cluster AmazonDocumentDB.

• Pour Database name (Nom de la base de données), entrez zips-db.

Lorsque tous les paramètres sont définis selon vos choix, choisissez Créer un point de terminaison.

Maintenant que vous avez créé les points de terminaison source et cible, testez-les pour vous assurer qu'ilsfonctionnent correctement. Pour vous assurer que AWS DMS peut accéder aux objets de base de donnéesà chaque point de terminaison, actualisez les schémas des points de terminaison.

Pour tester un point de terminaison

1. Dans le volet de navigation, choisissez Endpoints.2. Choisissez le point de terminaison source (mongodb-source), puis choisissez Test connection

(Tester la connexion).

Version de l'API API Version 2016-01-01313

Page 321: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de Amazon DocumentDB comme cible

3. Choisissez votre instance de réplication (mongodb2docdb), puis choisissez Run test (Exécuter letest). L'exécution du test prend quelques minutes et il en est de même pour le passage de l'état(Status) à successful (réussi).

Si l'état (Status) passe à failed (échec), consultez le message d'échec. Corrigez les erreurs quipeuvent être présentes et testez à nouveau le point de terminaison.

Note

Répétez cette procédure pour le point de terminaison cible (docdb-target).

Pour actualiser les schémas

1. Dans le volet de navigation, choisissez Endpoints.2. Choisissez le point de terminaison source (mongodb-source), puis choisissez Refresh schemas

(Actualiser les schémas).3. Choisissez votre instance de réplication (mongodb2docdb), puis choisissez Refresh schemas

(Actualiser les schémas).

Note

Répétez cette procédure pour le point de terminaison cible (docdb-target).

Étape 5 : Créer et exécuter une tâche de migration

Vous êtes maintenant prêt à lancer une tâche de migration AWS DMS pour migrer les données zips deMongoDB vers Amazon DocumentDB.

1. Ouvrez la console AWS DMS à l'adresse https://console.aws.amazon.com/dms/.2. Dans le volet de navigation, choisissez Tasks.3. Choisissez Create task (Créer une tâche) et indiquez les informations suivantes :

• Pour Task name (Nom de la tâche), entrez un nom facile à mémoriser, par exemple my-dms-task.• Pour Replication instance (Instance de réplication), choisissez l'instance de réplication que vous

avez créée à l'Étape 3 : Créer une instance de réplication AWS DMS (p. 311).• Pour Source endpoint (Point de terminaison source), choisissez le point de terminaison source que

vous avez créée à l'Étape 4 : Créer des points de terminaison source et cible (p. 312).• Pour Target endpoint (Point de terminaison cible), choisissez le point de terminaison cible que vous

avez créée à l'Étape 4 : Créer des points de terminaison source et cible (p. 312).• Pour Migration type (Type de migration), choisissez Migrate existing data (Migrer les données

existantes).• Pour Start task on create (Démarrer la tâche lors de la création), activez cette option.

Dans la section Task Settings (Paramètre de tâche), conservez toutes les valeurs par défaut desoptions.

Dans la section Table mappings (Mappages de table), choisissez l'onglet Guided (Guidé), puis entrezles informations suivantes :

• Pour Schema name is (Le nom du schéma est), choisissez Enter a schema (Entrer un schéma).• Pour Schema name is like (Le nom du schéma est similaire à), conservez la valeur par défaut (%).• Pour Table name is like (Le nom de la table est similaire à), conservez la valeur par défaut (%).

Version de l'API API Version 2016-01-01314

Page 322: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation de points de terminaison source et cible

Choisissez Add selection rule (Ajouter une règle de sélection) pour confirmer que les informations sontcorrectes.

Lorsque les paramètres vous conviennent, choisissez Create task (Créer une tâche).

AWS DMS commence alors la migration des données de MongoDB vers Amazon DocumentDB. L'étatde la tâche passe de Starting (Démarrage) à Running (En cours d'exécution). Vous pouvez surveillerl'avancement en choisissant Tasks (Tâches) dans la console AWS DMS. Après quelques minutes, l'étatpasse à Load complete (Chargement terminé).

Note

Une fois la migration terminée, vous pouvez utiliser le shell mongo pour vous connecter àvotre cluster Amazon DocumentDB et afficher les données zips. Pour plus d'informations,consultez Accès à votre cluster Amazon DocumentDB à l'aide du shell mongo dans le Manuel dudéveloppeur Amazon DocumentDB

Création de points de terminaison source et cibleVous pouvez créer des points de terminaison source et cible lorsque vous créez votre instance deréplication ou vous pouvez créer les points de terminaison après que votre instance de réplication a étécréée. Les magasins de données source et cible peuvent se trouver sur une instance Amazon ElasticCompute Cloud (Amazon EC2), une instance de base de données Amazon Relational Database Service(Amazon RDS) ou une base de données sur site. (Notez que l'un de vos points de terminaison doit être surun service AWS. Vous ne pouvez pas utiliser AWS DMS pour migrer d'une base de données sur site versune autre base de données sur site.)

La procédure suivante suppose que vous avez choisi l'assistant de la console AWS DMS. Notez que vouspouvez également effectuer cette étape en sélectionnant Endpoints (Points de terminaison) dans le voletde navigation de la console AWS DMS, puis en choisissant Create endpoint (Créer point de terminaison).Lorsque vous utilisez l'assistant de la console, vous créez les points de terminaison source et cible sur lamême page. Lorsque vous n'utilisez pas l'assistant de la console, vous créez chaque point de terminaisonséparément.

Pour spécifier un point de terminaison de base de données source ou cible l'aide de la consoleAWS

1. Sur la page Connecter les points de terminaison des bases de données source et cible, spécifiez vosinformations de connexion pour la base de données source ou cible. Le tableau suivant décrit lesparamètres.

Version de l'API API Version 2016-01-01315

Page 323: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation de points de terminaison source et cible

Pour cette option Procédez comme suit

Type de point de terminaison Choisissez si ce point de terminaison est le point determinaison source ou cible.

Select RDS DB Instance (Sélectionnerune instance de base de donnéesRDS)

Choisissez cette option si le point de terminaison est uneinstance de base de données Amazon RDS.

Identificateur de point de terminaison Tapez le nom que vous voulez utiliser pour identifier lepoint de terminaison. Vous pouvez inclure dans le nomdu type de point de terminaison, par exemple oracle-source ou PostgreSQL-target. Le nom doit êtreunique pour toutes les instances de réplication.

Moteur source et Moteur cible Choisissez le type de moteur de base de données quicorrespond au point de terminaison.

Nom du serveur Tapez le nom du serveur. Pour une base de données sursite, cela peut être l'adresse IP ou le nom d'hôte public.Pour une instance de base de données Amazon RDS,cela peut être le point de terminaison (égalementappelé nom DNS) pour l'instance de base de données,comme mysqlsrvinst.abcd12345678.us-west-2.rds.amazonaws.com.

Version de l'API API Version 2016-01-01316

Page 324: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation de points de terminaison source et cible

Pour cette option Procédez comme suit

Port Saisissez le port utilisé par la base de données.

Mode SSL Sélectionnez un mode SSL si vous souhaitez activer lechiffrement de connexion pour ce point de terminaison.Selon le mode que vous sélectionnez, vous pouvez êtreinvité à fournir les informations concernant le certificat et lecertificat du serveur.

Nom utilisateur Tapez le nom d'utilisateur avec les autorisations requisespour autoriser la migration des données. Pour plusd'informations sur les autorisations requises, consultez lasection relative à la sécurité pour le moteur de base dedonnées source ou cible dans ce guide de l'utilisateur.

Mot de passe : Tapez le mot de passe du compte avec les autorisationsrequises.

Nom de base de données Nom de la base de données que vous souhaitez utilisercomme point de terminaison.

2. Cliquez sur l'onglet Avancé, illustré ci-après, pour définir des valeurs pour la chaîne de connexion et laclé de chiffrement si vous en avez besoin. Vous pouvez tester la connexion au point de terminaison ensélectionnant Exécuter test.

Version de l'API API Version 2016-01-01317

Page 325: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation de points de terminaison source et cible

Pour cette option Procédez comme suit

Attributs de connexionsupplémentaires

Tapez les paramètres de connexion supplémentaires ici.Pour plus d'informations sur les attributs de connexionsupplémentaires, consultez la section de la documentationrelative à votre magasin de données.

KMS master key Sélectionnez la clé de chiffrement à utiliser pour chiffrer lesinformations de connexion et de stockage de réplication.Si vous choisissez (Default) aws/dms, la clé AWS KeyManagement Service (AWS KMS) par défaut associéeà votre compte et votre région est utilisée. Pour plusd'informations sur l'utilisation de la clé chiffrement,consultez la page Définition d'une clé de chiffrement etspécification des autorisations AWS KMS (p. 78).

Test endpoint connection (Tester laconnexion du point de terminaison)(facultatif)

Ajoutez le VPC et le nom de l'instance de réplication. Pourtester la connexion, choisissez Exécuter test.

Version de l'API API Version 2016-01-01318

Page 326: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Utilisation de tâches AWS DMSUne tâche AWS Database Migration Service (AWS DMS) est l'endroit où l'ensemble du travail est effectué.Vous spécifiez les tables (ou les vues) et les schémas à utiliser pour la migration, ainsi que tout traitementparticulier, tel que les exigences de journalisation, les données des tables de contrôle et la gestion deserreurs.

Lors de la création d'une tâche de migration, il y a plusieurs choses que vous devez connaître :

• Pour pouvoir créer une tâche, vous devez créer un point de terminaison source, un point de terminaisoncible et une instance de réplication.

• Vous pouvez spécifier plusieurs paramètres de tâche pour personnaliser votre tâche de migration. Vouspouvez les définir en utilisant la AWS Management Console, AWS Command Line Interface (AWS CLI)ou l'API AWS DMS. Il s'agit, entre autres, de spécifier la façon dont les erreurs de migration sont gérées,la journalisation et les informations sur la table de contrôle.

• Après avoir créé une tâche, vous pouvez l'exécuter immédiatement. Les tables cibles avec les définitionsde métadonnées nécessaires sont automatiquement créées et chargées, et vous pouvez spécifier laréplication continue.

• Par défaut AWS DMS commence votre tâche dès que vous la créez. Toutefois, dans certains cas, vouspouvez reporter le début de la tâche. Par exemple, lorsque vous utilisez l'AWS CLI, vous pouvez avoirun processus qui crée une tâche et un processus différent qui commence la tâche en fonction d'unévénement déclencheur. Selon les besoins, vous pouvez reporter le début de la tâche.

• Vous pouvez surveiller, arrêter ou redémarrer des tâches à l'aide de la console AWS DMS, de l'AWS CLIou de l'API AWS DMS.

Voici les actions que vous pouvez entreprendre lorsque vous utilisez une tâche AWS DMS.

Tâche Documentation

Création d'un rapport d'évaluation detâche

Vous pouvez créer un rapportd'évaluation de tâche qui présentetous les types de données non prisen charge qui peuvent entraîner desproblèmes lors de la migration. Vouspouvez exécuter ce rapport sur votretâche avant l'exécution de la tâche afinde découvrir les problèmes potentiels.

Création d'un rapport d'évaluation de tâche (p. 321)

Création d'une tâche

Lorsque vous créez une tâche, vousspécifiez la source, la cible et l'instancede réplication, ainsi que les paramètresde migration.

Création d'une tâche (p. 323)

Création d'une tâche de réplicationcontinue

Vous pouvez configurer une tâche afinde fournir une réplication continue entrela source et la cible.

Création de tâches pour la réplication continue à l'aide d'AWSDMS (p. 353)

Version de l'API API Version 2016-01-01319

Page 327: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Tâche Documentation

Application des paramètres de tâche

Chaque tâche possède des paramètresque vous pouvez configurer selon lesbesoins de votre migration de base dedonnées. Vous créez ces paramètresdans un fichier JSON ou, pour certainsparamètres, vous pouvez spécifier lesparamètres à l'aide de la console AWSDMS.

Spécification des paramètres de tâche pour les tâchesAWS Database Migration Service (p. 330)

Validation des données

La validation des données est unparamètre de tâche que vous pouvezutiliser pour qu'AWS DMS compare lesdonnées de votre magasin de donnéescible avec les données de votre magasinde données source.

Validation des tâches AWS DMS (p. 420).

Modification d'une tâche

Lorsqu'une tâche est arrêtée, vouspouvez modifier les paramètres de latâche.

Modification d'une tâche (p. 360)

Rechargement de tables pendant unetâche

Vous pouvez recharger une tablependant une tâche si une erreur seproduit pendant la tâche.

Rechargement de tables pendant une tâche (p. 360)

Utilisation d'un mappage de table

Le mappage de table utilise différentstypes de règles pour spécifier la sourcede données, le schéma source, lesdonnées et toutes les transformationsqui doivent se produire pendant la tâche.

Règles de sélectionRègles et actions de sélection (p. 369)

Règles de transformationRègles et actions de transformation (p. 373)

Application de filtres

Vous pouvez utiliser des filtres desource pour limiter le nombre et le typed'enregistrements transférés de votresource vers votre cible. Par exemple,vous pouvez spécifier que seuls lesemployés avec un emplacement desiège sont déplacés vers la base dedonnées cible. Vous appliquez des filtressur une colonne de données.

Utilisation de filtres de source (p. 402)

Version de l'API API Version 2016-01-01320

Page 328: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'un rapport d'évaluation de tâche

Tâche Documentation

Surveillance d'une tâche

Il existe plusieurs façons d'obtenir desinformations sur les performances d'unetâche et sur les tables utilisées par latâche.

Surveillance des tâches AWS DMS (p. 407)

Gestion des journaux de tâches

Vous pouvez consulter et supprimer desjournaux de tâches à l'aide de l'API AWSDMS ou de l'AWS CLI.

Gestion des journaux de tâches AWS DMS (p. 414)

Rubriques• Création d'un rapport d'évaluation de tâche (p. 321)• Création d'une tâche (p. 323)• Création de tâches pour la réplication continue à l'aide d'AWS DMS (p. 353)• Modification d'une tâche (p. 360)• Rechargement de tables pendant une tâche (p. 360)• Utilisation du mappage de table pour spécifier des paramètres de tâche (p. 363)

Création d'un rapport d'évaluation de tâcheLa fonction d'évaluation des tâches identifie les types de données qui peuvent ne pas être migréscorrectement. Au cours d'une tâche d'évaluation, AWS DMS lit le schéma de la base de données source etcrée la liste des types de données. Il compare ensuite cette liste à une liste prédéfinie de types de donnéespris en charge par AWS DMS. AWS DMS crée un rapport que vous pouvez examiner pour voir si votretâche de migration a des types de données non pris en charge.

Le rapport d'évaluation des tâches inclut un résumé qui répertorie les types de données non pris en chargeet le nombre de colonnes pour chacun d'eux. Il inclut une liste de structures de données en JSON pourchaque type de données non pris en charge. Vous pouvez utiliser le rapport pour modifier les types dedonnées source et améliorer le succès de la migration.

Il existe deux niveaux de types de données non pris en charge. Les types de données mentionnés dans lerapport comme « non pris en charge » ne peuvent pas faire l'objet d'une migration. Les types de donnéesmentionnés dans le rapport comme « partiellement pris en charge » peuvent être convertis en un autre typede données et ne pas être migrés comme vous l'escomptiez.

Voici un exemple de rapport d'évaluation de tâche.

{ "summary":{ "task-name":"test15", "not-supported":{ "data-type": [ "sql-variant" ], "column-count":3 }, "partially-supported":{

Version de l'API API Version 2016-01-01321

Page 329: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'un rapport d'évaluation de tâche

"data-type":[ "float8", "jsonb" ], "column-count":2 } }, "types":[ { "data-type":"float8", "support-level":"partially-supported", "schemas":[ { "schema-name":"schema1", "tables":[ { "table-name":"table1", "columns":[ "column1", "column2" ] }, { "table-name":"table2", "columns":[ "column3", "column4" ] } ] }, { "schema-name":"schema2", "tables":[ { "table-name":"table3", "columns":[ "column5", "column6" ] }, { "table-name":"table4", "columns":[ "column7", "column8" ] } ] } ] }, { "datatype":"int8", "support-level":"partially-supported", "schemas":[ { "schema-name":"schema1", "tables":[ { "table-name":"table1", "columns":[ "column9", "column10" ] },

Version de l'API API Version 2016-01-01322

Page 330: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

{ "table-name":"table2", "columns":[ "column11", "column12" ] } ] } ] } ]}

Vous pouvez afficher le dernier rapport d'évaluation de tâche à partir de l'onglet Assessment (Évaluation)sur la page Tasks (Tâches) de la console AWS. AWS DMS stocke les rapports d'évaluation de tâcheprécédents dans un compartiment Amazon S3. Le nom du compartiment Amazon S3 est au format suivant.

dms-<customerId>-<customerDNS>

Le rapport est stocké dans le compartiment d'un dossier nommé d'après le nom de la tâche. Le nomde fichier du rapport est la date de l'évaluation au format aaaa-mm-jj-hh-mm. Vous pouvez afficher etcomparer les précédents rapports d'évaluation des tâches depuis la console Amazon S3.

AWS DMS crée également un rôle AWS Identity and Access Management (IAM) pour permettrel'accès au compartiment S3 ; le nom du rôle est dms-access-for-tasks. Le rôle utilise la stratégieAmazonDMSRedshiftS3Role.

Vous pouvez activer la fonction d'évaluation des tâches à l'aide de la console AWS, de l'AWS CLI ou del'API DMS :

• Sur la console, choisissez Évaluation de tâche lorsque vous créez ou modifiez une tâche. Pour afficher lerapport d'évaluation de tâche à l'aide de la console, choisissez la tâche sur la page Tâches et choisissezl'onglet Résultats d'évaluation dans la section des détails.

• Les commandes de l'interface de ligne de commande sont start-replication-task-assessmentpour commencer une évaluation de tâche et describe-replication-task-assessment-resultspour recevoir le rapport d'évaluation de tâche au format JSON.

• L'API AWS DMS utilise l'action StartReplicationTaskAssessment pour commencer une évaluationde tâche et l'action DescribeReplicationTaskAssessment pour recevoir le rapport d'évaluation detâche au format JSON.

Création d'une tâcheIl y a plusieurs choses que vous devez faire pour créer une tâche de migration AWS DMS :

• Créez un point de terminaison source, un point de terminaison cible et une instance de réplication avantde pouvoir créer une tâche de migration.

• Sélectionnez une méthode de migration :• Migration de données vers la base de données cible – Ce processus crée des fichiers ou tables dans

la base de données cible et définit automatiquement les métadonnées nécessaires au niveau de lacible. Il remplit également les tables avec des données issues de la source. Les données des tablessont chargées en parallèle pour une efficacité améliorée. Ce processus correspond à l'option Migrateexisting data de la console AWS ; il s'appelle Full Loaddans l'API.

Version de l'API API Version 2016-01-01323

Page 331: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

• Capture de modifications lors de la migration – Ce processus capture les modifications apportées à labase de données source qui se produisent pendant que les données sont migrées de la source versla cible. Une fois la migration des données initialement demandées terminée, le processus de capturedes données modifiées (CDC) applique les modifications capturées à la base de données cible. Leschangements sont capturés et appliqués en tant qu'unités de transactions validées uniques et vouspouvez mettre à jour plusieurs tables cibles différents dans le cadre d'une opération de validation desource unique. Cette approche garantit l'intégrité transactionnelle dans la base de données cible. Ceprocessus correspond à l'option Migrate existing data and replicate ongoing changes de la consoleAWS ; il s'appelle full-load-and-cdc dans l'API.

• Réplication des modification des données uniquement dans la base de données source – Ceprocessus lit le fichier journal de récupération du système de gestion de base de données source(SGBD) et regroupe les entrées pour chaque transaction. Dans certains cas, AWS DMS ne peut pasappliquer les modifications apportées à la cible dans un délai raisonnable (par exemple, si la ciblen'est pas accessible). Dans ces cas, AWS DMS place en mémoire tampon les modifications sur leserveur de réplication aussi longtemps que nécessaire. Il ne lit pas à nouveau les journaux du SGBDsource, ce qui peut prendre du temps. Ce processus correspond à l'option Replicate data changes only(Répliquer uniquement les modifications de données) de la console AWS DMS.

• Déterminez la façon dont la tâche doit gérer les LOB (Large Binary Objects) sur la source. Pour plusd'informations, consultez Définition de la prise en charge LOB pour les bases de données source dansune tâche AWS DMS (p. 352).

• Spécifiez les paramètres de la tâche de migration. Il s'agit, entre autres, de la configuration dela journalisation, de la spécification des données qui sont écrites dans la table de contrôle de lamigration, de la manière dont les erreurs sont gérées et d'autres paramètres. Pour plus d'informationssur les paramètres de tâche, consultez Spécification des paramètres de tâche pour les tâchesAWS Database Migration Service (p. 330).

• Configurez le mappage de table pour définir les règles de sélection et de filtrage des données que vousmigrez. Pour plus d'informations sur le mappage de table, consultez la page Utilisation du mappage detable pour spécifier des paramètres de tâche (p. 363). Avant de spécifier votre mappage, consultez lasection de documentation relative au mappage de type de données pour votre base de données sourceet cible.

Vous pouvez choisir de démarrer une tâche dès que vous terminez de spécifier les informations pour cettetâche sur la page Créer une tâche. Sinon, vous pouvez démarrer la tâche à partir de la page Tableau debord une fois que vous avez terminé de spécifier les informations la concernant.

La procédure suivante part du principe que vous avez choisi l'assistant de la console AWS DMS et quevous avez indiqué vos informations d'instance de réplication et vos points de terminaison à l'aide del'assistant de la console. Vous pouvez également effectuer cette étape en sélectionnant Tasks (Tâches)dans le volet de navigation de la console AWS DMS, puis en choisissant Create task (Créer une tâche).

Pour créer une tâche de migration

1. Sur la page Créer tâche, spécifiez les options relatives à la tâche. Le tableau suivant décrit lesparamètres.

Version de l'API API Version 2016-01-01324

Page 332: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

Pour cette option Procédez comme suit

Nom de la tâche Tapez un nom pour la tâche.

Description de la tâche Tapez une description pour la tâche.

Point de terminaison source Affiche le point de terminaison source à utiliser.

Point de terminaison cible Affiche le point de terminaison cible à utiliser.

Instance de réplication Affiche l'instance de réplication à utiliser.

Type de migration Sélectionnez la méthode de migration que vous souhaitezutiliser. Vous pouvez choisir de migrer simplementles données existantes vers la base de données cibleou d'envoyer les modifications continues à la base dedonnées cible en plus des données migrées.

Démarrer tâche sur créer Lorsque cette option est sélectionnée, la tâche commencedès qu'elle a été créée.

2. Cliquez sur l'onglet Paramètres de tâche, illustré ci-après et précisez des valeurs pour votre table cible,la prise en charge LOB et pour activer la journalisation. Les paramètres de la tâche affichés dépendentde la valeur de Type de migration que vous sélectionnez. Par exemple, lorsque vous sélectionnezMigrate existing data, les options suivantes s'affichent :

Version de l'API API Version 2016-01-01325

Page 333: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

Version de l'API API Version 2016-01-01326

Page 334: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

Pour cette option Procédez comme suit

Mode de préparation des tables cibles Do nothing (Ne rien faire) – En mode Do nothing (Nerien faire), AWS DMS suppose que les tables cibles ontété précédemment créées sur la cible. Si la migrationest un chargement complet ou un chargement complet+ CDC, vous devez garantir que les tables cibles sontvides avant de commencer la migration. Le mode Donothing (Ne rien faire) est un choix approprié pour lestâches CDC uniquement lorsque ces points sont vrais :les tables cibles ont été pré-remplies à partir de la source.En outre, une réplication continue est appliquée pourmaintenir la synchronisation de la source et de la cible.Pour créer préalablement des tables, vous pouvez utiliserl'AWS Schema Conversion Tool (AWS SCT). Pour deplus amples informations, veuillez consulter Installation del'AWS SCT.

Drop tables on target (Supprimer les tables sur la cible)– En mode Drop tables on target (Supprimer les tablessur la cible), AWS DMS supprime les tables cibles et lesrecrée avant de commencer la migration. Cela permetde s'assurer que les tables cibles sont vides lorsque lamigration commence. AWS DMS crée uniquement lesobjets requis pour migrer efficacement les données : lestables, les clés primaires et, dans certains cas, les indexuniques. AWS DMS ne crée pas les index secondaires,les contraintes de clé non primaire ou les données decolonne par défaut. Si vous effectuez un chargementcomplet plus une tâche CDC ou CDC uniquement, nousvous recommandons de suspendre la migration à ce stade.Ensuite, créez des index secondaires prenant en charge lefiltrage des instructions de mise à jour et de suppression.

Vous devrez peut-être effectuer certaines configurationssur la base de données cible lorsque vous utiliserez lemode Drop tables on target (Supprimer les tables sur lacible). Par exemple, pour une cible Oracle, AWS DMS nepeut pas créer un schéma (utilisateur de base de données)pour des raisons de sécurité. Dans ce cas, vous devezcréer au préalable le schéma utilisateur afin qu'AWS DMSpuisse créer les tables au démarrage de la migration.Pour la plupart des autres types cibles, AWS DMS créele schéma et toutes les tables avec les paramètres deconfiguration qui conviennent.

Truncate (Tronquer) – En mode Truncate (Tronquer),AWS DMS tronque toutes les tables cibles avant ledémarrage de la migration. Le mode Truncate (Tronquer)convient particulièrement pour les migrations avec unchargement complet ou un chargement complet + CDC,dans lesquelles le schéma cible a été créé au préalable,avant le démarrage de la migration. Pour créer des tablesau préalable, vous pouvez utiliser AWS SCT. Pour de

Version de l'API API Version 2016-01-01327

Page 335: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

Pour cette option Procédez comme suitplus amples informations, veuillez consulter Installation del'AWS SCT.

Inclure les colonnes LOB dans laréplication

Don't include LOB columns (Ne pas inclure les colonnesLOB) – Les colonnes LOB sont exclues de la migration.

Full LOB mode (Mode LOB intégral) – Migre les LOBcomplets, quelle que soit leur taille. AWS DMS migre lesLOB sous forme de fragments par blocs contrôlés par leparamètre Max LOB size (Taille maximale du LOB). Cemode est plus lent que le mode LOB limité.

Limited LOB mode (Mode LOB limité) – Les LOB sonttronqués en fonction de la valeur du paramètre Max LOBsize (Taille maximale du LOB). Ce mode est plus rapideque le mode LOB complet.

Taille maximale du LOB (ko) En Limited LOB Mode (Mode LOB limité), les colonnesLOB qui dépassent le paramètre de Max LOB size (Taillemaximale du LOB) sont tronquées à la taille maximale deLOB Max LOB Size spécifiée.

Activer la validation Active la validation des données afin de vérifier que lesdonnées sont migrées de manière exacte de la source versla cible. Pour plus d'informations, consultez Validation destâches AWS DMS (p. 420).

Activer la journalisation Active la journalisation par Amazon CloudWatch.

Lorsque vous sélectionnez Migrate existing data and replicate comme Type de migration, les optionssuivantes s'affichent :

Version de l'API API Version 2016-01-01328

Page 336: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation d'une tâche

Pour cette option Procédez comme suit

Mode de préparation des tables cibles Do nothing (Ne rien faire) – Les données et métadonnéesdes tables cibles ne sont pas modifiées.

Drop tables on target (Supprimer les tables sur la cible)– Les tables sont supprimées et de nouvelles tables sontcréées à leur place.

Truncate (Tronquer) – Les tables sont tronquées sansincidence sur les métadonnées qu'elles contiennent.

Arrêter la tâche après la fin duchargement complet

Don't stop (Ne pas arrêter) – N'arrête pas la tâche, maisapplique immédiatement les modifications mises en cacheet continue.

Stop before applying cached changes (Arrêter avantd'appliquer les changements mis en cache) - Arrête latâche avant l'application des modifications mises en cache.En utilisant cette approche, vous pouvez ajouter desindex secondaires qui peuvent accélérer l'application desmodifications.

Stop after applying cached changes : arrête la tâche aprèsl'application des modifications mises en cache. En utilisantcette approche, vous pouvez ajouter des clés étrangères,des déclencheurs, etc., si vous utilisez une applicationtransactionnelle.

Version de l'API API Version 2016-01-01329

Page 337: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Pour cette option Procédez comme suit

Inclure les colonnes LOB dans laréplication

Don't include LOB columns (Ne pas inclure les colonnesLOB) – Les colonnes LOB sont exclues de la migration.

Full LOB mode (Mode LOB intégral) – Migre les LOBcomplets, quelle que soit leur taille. Les LOB sont migréssous forme de fragments par blocs contrôlés par la taille debloc du LOB. Cette méthode est plus lente que l'utilisationdu mode LOB limité.

Limited LOB mode (Mode LOB limité) – Tronque les LOB àla taille maximale. Cette méthode est plus rapide que FullLOB mode (Mode LOB intégral).

Max LOB size (KB) (Taille maximale duLOB (ko))

En Limited LOB Mode (Mode LOB limité), les colonnesLOB qui dépassent le paramètre de Max LOB size (Taillemaximale du LOB) sont tronquées à la taille maximale deLOB spécifiée.

Activer la validation Active la validation des données afin de vérifier que lesdonnées sont migrées de manière exacte de la source versla cible. Pour plus d'informations, consultez Validation destâches AWS DMS (p. 420).

Activer la journalisation Active la journalisation par CloudWatch.

3. Cliquez sur l'onglet Mappages de table illustré ci-après, afin de définir les valeurs de mappage deschéma et la méthode de mappage. Si vous sélectionnez Personnalisé, vous pouvez spécifier lesvaleurs de schéma et de table cible. Pour plus d'informations sur le mappage de table, consultez lapage Utilisation du mappage de table pour spécifier des paramètres de tâche (p. 363).

4. Une fois que vous avez fini avec les paramètres de la tâche, sélectionnez Create Task (Créer tâche).

Spécification des paramètres de tâche pour les tâchesAWS Database Migration ServiceChaque tâche possède des paramètres que vous pouvez configurer selon les besoins de votre migrationde base de données. Vous créez ces paramètres dans un fichier JSON ou, pour certains paramètres, vouspouvez spécifier les paramètres à l'aide de la console AWS DMS.

Il existe plusieurs types principaux de paramètres de tâche, comme présenté ci-dessous.

Rubriques

Version de l'API API Version 2016-01-01330

Page 338: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

• Paramètres de metadonnées des tâches cibles (p. 334)• Paramètres de tâche de chargement complet (p. 336)• Paramètres de la tâche de journalisation (p. 336)• Paramètres de tâche de la table de contrôle (p. 338)• Paramètres de tâche de mémoire tampon de flux (p. 340)• Paramètres de réglage du traitement des modifications (p. 341)• Paramètres de la tâche de validation des données (p. 342)• Paramètres de tâche pour la gestion du DDL de traitement des modifications (p. 344)• Paramètres de tâche de substitution de caractères (p. 344)• Paramètres de traitement des erreurs pour une tâche (p. 348)• Paramètres de tâche d'enregistrement (p. 351)

Paramètres de tâche Documentation

Création d'un rapport d'évaluation detâche

Vous pouvez créer un rapportd'évaluation de tâche qui présentetous les types de données non prisen charge qui peuvent entraîner desproblèmes lors de la migration. Vouspouvez exécuter ce rapport sur votretâche avant l'exécution de la tâche afinde découvrir les problèmes potentiels.

Création d'un rapport d'évaluation de tâche (p. 321)

Création d'une tâche

Lorsque vous créez une tâche, vousspécifiez la source, la cible et l'instancede réplication, ainsi que les paramètresde migration.

Création d'une tâche (p. 323)

Création d'une tâche de réplicationcontinue

Vous pouvez configurer une tâche afinde fournir une réplication continue entrela source et la cible.

Création de tâches pour la réplication continue à l'aide d'AWSDMS (p. 353)

Application des paramètres de tâche

Chaque tâche possède des paramètresque vous pouvez configurer selon lesbesoins de votre migration de base dedonnées. Vous créez ces paramètresdans un fichier JSON ou, pour certainsparamètres, vous pouvez spécifier lesparamètres à l'aide de la console AWSDMS.

Spécification des paramètres de tâche pour les tâchesAWS Database Migration Service (p. 330)

Validation des données

La validation des données est unparamètre de tâche que vous pouvez

Validation des tâches AWS DMS (p. 420)

Version de l'API API Version 2016-01-01331

Page 339: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Paramètres de tâche Documentationutiliser pour qu'AWS DMS compare lesdonnées de votre magasin de donnéescible avec les données de votre magasinde données source.

Modification d'une tâche

Lorsqu'une tâche est arrêtée, vouspouvez modifier les paramètres de latâche.

Modification d'une tâche (p. 360)

Rechargement de tables pendant unetâche

Vous pouvez recharger une tablependant une tâche si une erreur seproduit pendant la tâche.

Rechargement de tables pendant une tâche (p. 360)

Utilisation d'un mappage de table

Le mappage de table utilise différentstypes de règles afin de spécifier lesparamètres de tâche pour la source dedonnées, le schéma source, les donnéeset toutes les transformations qui doiventse produire pendant la tâche.

Règles de sélectionRègles et actions de sélection (p. 369)

Règles de transformationRègles et actions de transformation (p. 373)

Application de filtres

Vous pouvez utiliser des filtres desource pour limiter le nombre et le typed'enregistrements transférés de votresource vers votre cible. Par exemple,vous pouvez spécifier que seuls lesemployés avec un emplacement desiège sont déplacés vers la base dedonnées cible. Vous appliquez des filtressur une colonne de données.

Utilisation de filtres de source (p. 402)

Surveillance d'une tâche

Il existe plusieurs façons d'obtenir desinformations sur les performances d'unetâche et sur les tables utilisées par latâche.

Surveillance des tâches AWS DMS (p. 407)

Gestion des journaux de tâches

Vous pouvez consulter et supprimer desjournaux de tâches à l'aide de l'API AWSDMS ou de l'AWS CLI.

Gestion des journaux de tâches AWS DMS (p. 414)

Un fichier JSON de paramètres de tâche peut se présenter comme suit :

{ "TargetMetadata": {

Version de l'API API Version 2016-01-01332

Page 340: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

"TargetSchema": "", "SupportLobs": true, "FullLobMode": false, "LobChunkSize": 64, "LimitedSizeLobMode": true, "LobMaxSize": 32, "InlineLobMaxSize": 0, "LoadMaxFileSize": 0, "ParallelLoadThreads": 0, "ParallelLoadBufferSize":0, "ParallelLoadQueuesPerThread": 1, "ParallelApplyThreads": 0, "ParallelApplyBufferSize": 50, "ParallelApplyQueuesPerThread": 1, "BatchApplyEnabled": false, "TaskRecoveryTableEnabled": false }, "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, "StopTaskCachedChangesApplied": false, "StopTaskCachedChangesNotApplied": false, "MaxFullLoadSubTasks": 8, "TransactionConsistencyTimeout": 600, "CommitRate": 10000 }, "Logging": { "EnableLogging": false }, "ControlTablesSettings": { "ControlSchema":"", "HistoryTimeslotInMinutes":5, "HistoryTableEnabled": false, "SuspendedTablesTableEnabled": false, "StatusTableEnabled": false }, "StreamBufferSettings": { "StreamBufferCount": 3, "StreamBufferSizeInMB": 8 }, "ChangeProcessingTuning": { "BatchApplyPreserveTransaction": true, "BatchApplyTimeoutMin": 1, "BatchApplyTimeoutMax": 30, "BatchApplyMemoryLimit": 500, "BatchSplitSize": 0, "MinTransactionSize": 1000, "CommitTimeout": 1, "MemoryLimitTotal": 1024, "MemoryKeepTime": 60, "StatementCacheSize": 50 }, "ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableDropped": true, "HandleSourceTableTruncated": true, "HandleSourceTableAltered": true }, "LoopbackPreventionSettings": { "EnableLoopbackPrevention": true, "SourceSchema": "LOOP-DATA", "TargetSchema": "loop-data" }, "ValidationSettings": { "EnableValidation": true, "ThreadCount": 5 },

Version de l'API API Version 2016-01-01333

Page 341: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

"CharacterSetSettings": { "CharacterReplacements": [ { "SourceCharacterCodePoint": 35, "TargetCharacterCodePoint": 52 }, { "SourceCharacterCodePoint": 37, "TargetCharacterCodePoint": 103 } ], "CharacterSetSupport": { "CharacterSet": "UTF16_PlatformEndian", "ReplaceWithCharacterCodePoint": 0 } }, "ErrorBehavior": { "DataErrorPolicy": "LOG_ERROR", "DataTruncationErrorPolicy":"LOG_ERROR", "DataErrorEscalationPolicy":"SUSPEND_TABLE", "DataErrorEscalationCount": 50, "TableErrorPolicy":"SUSPEND_TABLE", "TableErrorEscalationPolicy":"STOP_TASK", "TableErrorEscalationCount": 50, "RecoverableErrorCount": 0, "RecoverableErrorInterval": 5, "RecoverableErrorThrottling": true, "RecoverableErrorThrottlingMax": 1800, "ApplyErrorDeletePolicy":"IGNORE_RECORD", "ApplyErrorInsertPolicy":"LOG_ERROR", "ApplyErrorUpdatePolicy":"LOG_ERROR", "ApplyErrorEscalationPolicy":"LOG_ERROR", "ApplyErrorEscalationCount": 0, "FullLoadIgnoreConflicts": true }}

Paramètres de metadonnées des tâches ciblesLes paramètres de métadonnées cibles sont les suivants :

• TargetSchema – nom du schéma de la table cible. Si cette option de métadonnées est vide, le schémade la table source est utilisé. AWS DMS ajoute automatiquement le préfixe du propriétaire de la base dedonnées cible à toutes les tables si aucun schéma source n'est défini. Cette option doit être vide pour lespoints de terminaison cibles MySQL-type.

• Paramètres LOB – Paramètres qui déterminent la façon dont les grands objets (LOB) sont gérés. Si vousdéfinissez SupportLobs=true, vous devez définir les éléments suivants à la valeur true :• FullLobMode – Si vous définissez cette option à la valeur true, vous devez saisir une valeur pour

l'option LobChunkSize. Entrez la taille, en kilo-octets, des blocs du LOB à utiliser lors de la réplicationdes données à la cible. L'option FullLobMode est la mieux adaptée pour les très grandes tailles deLOB, mais elle a tendance à ralentir le chargement.

• InlineLobMaxSize – Cette valeur détermine les LOB qu'AWS Database Migration Service transfèreen ligne lors d'un chargement complet. Le transfert de petits LOB est plus efficace que de lesrechercher dans une table source. Lors d'un chargement complet, AWS Database Migration Servicevérifie toutes les LOB et réalise un transfert en ligne pour les LOB de taille inférieure àInlineLobMaxSize. AWS Database Migration Service transfère tous les LOB supérieurs à la tailleInlineLobMaxSize dans FullLobMode. La valeur par défaut de InlineLobMaxSize est 0 et laplage est de 1 kilo-octets à 2 Go. Définissez une valeur pour InlineLobMaxSize uniquement si voussavez que la plupart des LOB sont inférieurs à la valeur spécifiée dans InlineLobMaxSize.

• LimitedSizeLobMode – Si vous définissez cette option à la valeur true, vous devez saisir unevaleur pour l'option LobMaxSize. Saisissez la taille maximale, en kilo-octets, pour un LOB individuel.

Version de l'API API Version 2016-01-01334

Page 342: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Pour plus d'informations sur les critères d'utilisation de ces paramètres LOB de tâche, consultezDéfinition de la prise en charge LOB pour les bases de données source dans une tâche AWSDMS (p. 352). Vous pouvez également contrôler la gestion des LOB pour les tables individuelles. Pourplus d'informations, consultez Règles table-settings et opérations (p. 382).

• LoadMaxFileSize – Option destinée aux points de terminaison cibles pour PostgreSQL et MySQL quidéfinit la taille maximale sur le disque des données stockées, déchargées, telles que les fichiers .csv.Cette option remplace l'attribut de connexion. Vous pouvez fournir des valeurs 0, qui indiquent que cetteoption ne remplace pas l'attribut de connexion, à 100 000 Ko.

• BatchApplyEnabled – Détermine si chaque transaction est appliquée individuellement ou si lesmodifications sont validées par lots. La valeur par défaut est false.

Le paramètre BatchApplyEnabled est utilisé avec le paramètreBatchApplyPreserveTransaction. Si BatchApplyEnabled est défini sur true, le paramètreBatchApplyPreserveTransaction détermine l'intégrité transactionnelle.

Si BatchApplyPreserveTransaction est défini sur true, l'intégrité transactionnelle est préservéeet un lot est assuré de contenir toutes les modifications effectuées dans une transaction à partir de lasource.

Si BatchApplyPreserveTransaction est défini sur false, il peut exister des écarts temporairesdans l'intégrité transactionnelle afin d'améliorer les performances.

Le paramètre BatchApplyPreserveTransaction s'applique uniquement aux points de terminaisoncible Oracle, et est approprié uniquement lorsque le paramètre BatchApplyEnabled est défini surtrue.

Lorsque les colonnes LOB sont incluses dans la réplication, vous pouvez utiliser BatchApplyEnableduniquement en mode LOB limité.

Pour plus d'informations sur l'utilisation de ces paramètres pour un chargement de capture des donnéesmodifiées (CDC), consultez Paramètres de réglage du traitement des modifications (p. 341).

• ParallelLoadThreads – Spécifie le nombre de threads que AWS DMS utilise pour charger chaquetable dans la base de données cible. La valeur maximale pour une cible MySQL est 16. La valeurmaximale pour un Amazon DynamoDB, Amazon Kinesis Data Streams, Apache Kafka, ou AmazonElasticsearch Service cible est 32. Vous pouvez demander une augmentation de cette limite maximale.Pour plus d'informations sur les paramètres qui activent le chargement parallèle des tables individuelles,consultez Règles table-settings et opérations (p. 382).

• ParallelLoadBufferSize – Spécifie le nombre maximal d'enregistrements à stocker dans lamémoire tampon utilisée par les threads de chargement parallèles pour charger les données sur la cible.La valeur par défaut est 50. La valeur maximale est 1 000. Ce paramètre n'est actuellement valide quelorsque DynamoDB, Kinesis, Apache Kafka ou Elasticsearch est la cible. Utilisez ce paramètre avecParallelLoadThreads. ParallelLoadBufferSize est valide uniquement dans le cas de plusieursthreads. Pour plus d'informations sur les paramètres qui activent le chargement parallèle des tablesindividuelles, consultez Règles table-settings et opérations (p. 382).

Note

La prise en charge des paramètres ParallelLoadThreads et ParallelLoadBufferSizeavec la cible Kinesis Data Streams est disponible dans AWS DMS versions 3.1.4 et ultérieures.

• ParallelLoadQueuesPerThread – Spécifie le nombre de files d'attente auxquelles chaque threadsimultané accède pour extraire les enregistrements de données des files d'attente et générer unchargement par lots pour la cible. La valeur par défaut est 1.

• ParallelApplyThreads – Spécifie le nombre de threads simultanés utilisés par AWS DMS pendantun chargement CDC pour transférer des enregistrements de données vers un point de terminaison cibleKinesis ou Kafka.

Version de l'API API Version 2016-01-01335

Page 343: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

• ParallelApplyBufferSize – Spécifie le nombre maximal d'enregistrements à stocker danschaque file d'attente de mémoire tampon pour que les threads simultanés soient poussés vers unpoint de terminaison Kinesis ou Kafka cible lors d'un chargement CDC. Utilisez cette option lorsqueParallelApplyThreads spécifie plusieurs threads.

• ParallelApplyQueuesPerThread – Spécifie le nombre de files d'attente auxquelles chaque threadaccède pour extraire les enregistrements de données des files d'attente et générer un chargement parlots pour un point de terminaison Kinesis et Kafka pendant le CDC.

Note

La prise en charge des paramètres ParallelLoadQueuesPerThread,ParallelApplyThreads ParallelApplyBufferSize etParallelApplyQueuesPerThread est disponible dans les versions AWS DMS 3.3.1 etultérieures.

Paramètres de tâche de chargement completLes paramètres de chargement complet sont les suivants :

• Pour indiquer comment gérer le chargement de la cible au démarrage du chargement complet, spécifiezl'une des valeurs suivantes pour l'option TargetTablePrepMode :• DO_NOTHING – les données et les metadonnées de la table cible existante ne sont pas concernées.• DROP_AND_CREATE – La table existante est supprimée et une nouvelle table est créée à la place.• TRUNCATE_BEFORE_LOAD – Les données sont tronquées sans impact sur les metadonnées de la

table.• Pour retarder la création d'une clé primaire ou d'un index unique jusqu'à la fin d'un chargement complet,

définissez l'option CreatePkAfterFullLoad. Lorsque cette option est sélectionnée, vous ne pouvez pas reprendre les tâches de chargement completnon terminées.

• Pour les tâches de chargement complet et CDC, vous pouvez définir les options suivantes pour Stoptask after full load completes :• StopTaskCachedChangesApplied – Définissez cette option à la valeur true pour arrêter une tâche

après la fin d'un chargement complet et pour appliquer les modifications mises en cache.• StopTaskCachedChangesNotApplied – Définissez cette option à la valeur true pour arrêter une

tâche avant l'application des modifications mises en cache.• Pour indiquer le nombre maximal de tables à charger en parallèle, définissez l'optionMaxFullLoadSubTasks. La valeur par défaut est 8 ; la valeur maximale 49.

• Vous pouvez définir le nombre de secondes pendant lesquelles AWS DMS attend lafermeture des transactions avant de commencer une opération de chargement complet.Pour ce faire, si les transactions sont ouvertes lorsque la tâche démarre, définissez l'optionTransactionConsistencyTimeout. La valeur par défaut est de 600 (10 minutes). AWS DMScommence le chargement complet une fois que la valeur de délai d'attente est atteinte, même si destransactions sont en cours. Une tâche de chargement complet n'attend pas 10 minutes, mais elledémarre immédiatement.

• Pour indiquer le nombre maximal d'événements qui peuvent être transférées ensemble, définissezl'option CommitRate.

Paramètres de la tâche de journalisationLa fonction de journalisation utilise Amazon CloudWatch pour consigner les informations au cours duprocessus de migration. Les paramètres de tâche de journalisation vous permettent de spécifier lesactivités de composant qui sont consignées et la quantité d'informations écrites dans le journal. Lesparamètres de tâche de journalisation sont écrits dans un fichier JSON.

Version de l'API API Version 2016-01-01336

Page 344: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Vous pouvez activer la journalisation CloudWatch de plusieurs manières. Vous pouvez sélectionner l'optionEnableLogging sur l'AWS Management Console lorsque vous créez une tâche de migration. Vouspouvez également définir l'option EnableLogging sur true lors de la création d'une tâche à l'aide del'API AWS DMS. Vous pouvez également spécifier "EnableLogging": true dans le code JSON de lasection de journalisation des paramètres de la tâche.

Note

Amazon CloudWatch s'intègre à AWS Identity and Access Management (IAM) afin que vouspuissiez spécifier quelles actions CloudWatch un utilisateur peut effectuer dans votre compteAWS. Pour plus d'informations, consultez ces pages de documentation Amazon CloudWatch :FAQ Amazon CloudWatchIdentity and Access Management pour Amazon CloudWatchJournalisation des appels d'API Amazon CloudWatch

Pour supprimer les journaux d'une tâche, vous pouvez spécifier "DeleteTaskLogs": true dans le codeJSON de la section de journalisation des paramètres de la tâche.

Vous pouvez spécifier la journalisation pour les activités de composant suivantes :

• SOURCE_UNLOAD – les données sont déchargées à partir de la base de données source.• SOURCE_CAPTURE – les données sont capturées à partir de la base de données source.• TARGET_LOAD – les données sont chargées dans la base de données cible.• TARGET_APPLY – Les données et les instructions DDL (data definition language) sont appliquées à la

base de données cible.• TASK_MANAGER – le gestionnaire des tâches déclenche un événement.

Après avoir spécifié une activité de composant, vous pouvez spécifier la quantité d'informations journalisée.La liste suivante est présentée dans l'ordre du niveau le plus bas d'information au niveau le plus élevé. Lesniveaux supérieurs englobent toujours les informations des niveaux inférieurs. Ces valeurs de gravité sont :

• LOGGER_SEVERITY_ERROR – les messages d'erreur sont écrits dans le journal.• LOGGER_SEVERITY_WARNING – les avertissements et les messages d'erreur sont écrits dans le

journal.• LOGGER_SEVERITY_INFO – les messages d'information, les avertissements et les messages d'erreur

sont écrits dans le journal.• LOGGER_SEVERITY_DEFAULT – Les messages d'information, les avertissements et les messages

d'erreur sont écrits dans le journal.• LOGGER_SEVERITY_DEBUG – les messages de débogage, les messages d'information, les

avertissement et les messages d'erreur sont écrits dans le journal.• LOGGER_SEVERITY_DETAILED_DEBUG – toutes les informations sont écrites dans le journal.

Par exemple, la section de code JSON suivante fournit les paramètres de tâche pour la journalisation detoutes les activités du composant.

… "Logging": { "EnableLogging": true, "LogComponents": [{ "Id": "SOURCE_UNLOAD", "Severity": "LOGGER_SEVERITY_DEFAULT" },{ "Id": "SOURCE_CAPTURE", "Severity": "LOGGER_SEVERITY_DEFAULT" },{ "Id": "TARGET_LOAD", "Severity": "LOGGER_SEVERITY_DEFAULT"

Version de l'API API Version 2016-01-01337

Page 345: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

},{ "Id": "TARGET_APPLY", "Severity": "LOGGER_SEVERITY_INFO" },{ "Id": "TASK_MANAGER", "Severity": "LOGGER_SEVERITY_DEBUG" }] }, …

Paramètres de tâche de la table de contrôleLes tables de contrôle fournissent des informations sur une tâche AWS DMS. Elles fournissent égalementdes statistiques utiles que vous pouvez utiliser pour planifier et gérer à la fois la tâche de migrationactuelle et les tâches futures. Vous pouvez appliquer ces paramètres de tâche dans un fichier JSON ouen choisissant Advanced Settings (Paramètres avancés) sur la page Create task (Créer une tâche) de laconsole AWS DMS. La table Application des exceptions (dmslogs.awsdms_apply_exceptions) esttoujours créée. Vous pouvez également choisir de créer des tables supplémentaires, en particulier lessuivantes :

• Statut de réplication (dmslogs.awsdms_status) – Cette table fournit des détails sur la tâche en cours.Il s'agit notamment de son statut, de la quantité de mémoire utilisée par la tâche et du nombre demodifications pas encore appliquées à la cible. Cette table indique également la position dans la base dedonnées source au niveau de laquelle AWS DMS effectue sa lecture. Elle indique en outre si la tâche estune tâche à chargement complet ou de capture de données modifiées (CDC).

• Tables suspendues (dmslogs.awsdms_suspended_tables) – cette table fournit une liste des tablessuspendues, ainsi que la raison pour laquelle elles ont été suspendues.

• Historique de réplication (dmslogs.awsdms_history) – Cette table fournit des informations sur l'historiquede réplication. Ces informations sont le nombre et le volume d'enregistrements traités pendant la tâche,la latence à la fin d'une tâche de CDC et d'autres statistiques.

La table Application des exceptions (dmslogs.awsdms_apply_exceptions) contient les paramètressuivants :

Colonne Type Description

TASK_NAME nvchar Nom de la tâche AWS DMS.

TABLE_OWNER nvchar Propriétaire de la table.

TABLE_NAME nvchar Nom de la table.

ERROR_TIME timestamp Heure à laquelle l'exception (erreur)s'est produite.

STATEMENT nvchar Déclaration en cours d'exécutionlorsque l'erreur s'est produite.

ERROR nvchar Nom et description de l'erreur.

La table Historique de réplication (dmslogs.awsdms_history) contient les paramètres suivants :

Colonne Type Description

SERVER_NAME nvchar Nom de la machine sur laquelles'exécute la tâche de réplication.

Version de l'API API Version 2016-01-01338

Page 346: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Colonne Type Description

TASK_NAME nvchar Nom de la tâche AWS DMS.

TIMESLOT_TYPE varchar L'une des valeurs suivantes :

• FULL LOAD• CHANGE PROCESSING (CDC)

Si la tâche exécute à la fois lesprocessus de chargement completet de capture de données modifiées,deux enregistrements d'historiquesont consignés dans l'intervalle.

TIMESLOT timestamp Horodatage de fin de l'intervalle.

TIMESLOT_DURATION int Durée de l'intervalle, en minutes.

TIMESLOT_LATENCY int Latence cible à la fin de l'intervalle,en secondes. Cette valeur s'appliqueuniquement aux intervalles CDC.

RECORDS int Nombre d'enregistrements traitéspendant l'intervalle.

TIMESLOT_VOLUME int Volume de données traitées, en Mo.

La table Statut de réplication (dmslogs.awsdms_status) contient le statut actuel de la tâche et de labase de données cible. Ses paramètres sont les suivants :

Colonne Type Description

SERVER_NAME nvchar Nom de la machine sur laquelles'exécute la tâche de réplication.

TASK_NAME nvchar Nom de la tâche AWS DMS.

TASK_STATUS varchar L'une des valeurs suivantes :

• FULL LOAD• CHANGE PROCESSING (CDC)

Le statut de la tâche est défini surFULL LOAD tant qu'au moins unetable est en chargement complet.Une fois que toutes les tables ont étéchargées, le statut de la tâche devientCHANGE PROCESSING si CDC estactivé.

STATUS_TIME timestamp Horodatage du statut de la tâche.

PENDING_CHANGES int Nombre d'enregistrements demodifications n'ayant pas étéappliquées à la cible.

Version de l'API API Version 2016-01-01339

Page 347: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Colonne Type Description

DISK_SWAP_SIZE int Quantité d'espace disque utilisépar des transactions anciennes oudéchargées.

TASK_MEMORY int Mémoire actuelle utilisée, en Mo.

SOURCE_CURRENT

_POSITION

varchar Position dans la base de donnéessource à partir de laquelle AWS DMSest en train de lire.

SOURCE_CURRENT

_TIMESTAMP

timestamp Horodatage dans la base de donnéessource à partir de laquelle AWS DMSest en train de lire.

SOURCE_TAIL

_POSITION

varchar Position de la transaction de départla plus ancienne non validée. Cettevaleur est la position la plus récenteà laquelle vous pouvez revenir sansperdre de modification.

SOURCE_TAIL

_TIMESTAMP

timestamp Horodatage de la transaction dedépart la plus ancienne non validée.Cette valeur est l'horodatage le plusrécent auquel vous pouvez revenirsans perdre de modification.

SOURCE_TIMESTAMP

_APPLIED

timestamp Horodatage de la dernière validationde transaction. Dans un processusd'application en bloc, cette valeur estl'horodatage de la validation de ladernière transaction du lot.

Les paramètres de table de contrôle supplémentaires sont les suivants :

• HistoryTimeslotInMinutes – Utilisez cette option pour indiquer la longueur de chaque intervalledans la table d'historique de réplication. La valeur par défaut est de 5 minutes.

• ControlSchema – Utilisez cette option pour indiquer le nom du schéma de base de données pour latable de contrôle AWS DMS cible. Si vous ne saisissez aucune information dans ce champ, les tablessont copiées à l'emplacement par défaut dans la base de données, par exemple :• PostgreSQL, Public• Oracle, schéma cible• SQLServer, dbo dans la base de données cible• MySQL, awsdms_control• MariaDB, awsdms_control• Redshift, Public• DynamoDB, créé en tant que tables individuelles dans la base de données

Paramètres de tâche de mémoire tampon de fluxVous pouvez définir des paramètres de tampon de flux à l'aide de l'AWS CLI, notamment les paramètressuivants :

Version de l'API API Version 2016-01-01340

Page 348: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

• StreamBufferCount – Utilisez cette option pour spécifier le nombre de mémoires tampon de fluxde données pour la tâche de migration. Le nombre de mémoires tampon de flux par défaut est 3.L'augmentation de la valeur de ce paramètre pourrait accélérer le processus d'extraction de données.Cependant, cette augmentation des performances dépend fortement de l'environnement de migration,notamment du système source et de la classe d'instance du serveur de réplication. La valeur par défautest suffisante pour la plupart des cas.

• StreamBufferSizeInMB – Utilisez cette option pour indiquer la taille maximale de chaque mémoiretampon de flux de données. La taille par défaut est de 8 Mo. Vous devrez peut-être augmenter lavaleur pour cette option lorsque vous utiliserez de très grands LOB. Vous devrez peut-être aussiaugmenter la valeur si vous recevez un message dans les fichiers-journaux indiquant que la taille dela mémoire tampon de flux est insuffisante. Afin de déterminer la taille de cette option, vous pouvezutiliser l'équation suivante : [Max LOB size (or LOB chunk size)]*[number of LOBcolumns]*[number of stream buffers]*[number of tables loading in parallel pertask(MaxFullLoadSubTasks)]*3

• CtrlStreamBufferSizeInMB – Utilisez cette option pour définir la taille de la mémoire tampon du fluxde contrôle. La valeur est en mégaoctets, et peut être comprise entre 1 et 8. La valeur par défaut est 5.Vous devrez peut-être l'augmenter lorsque vous utiliserez un très grand nombre de tables, par exempledes dizaines de milliers de tables.

Paramètres de réglage du traitement des modificationsLes paramètres suivants déterminent la façon dont AWS DMS gère les modifications pour les tables ciblesau cours de la capture de données modifiées (CDC). Plusieurs de ces paramètres dépendent de la valeurdu paramètre de métadonnées cibles BatchApplyEnabled. Pour plus d'informations sur le paramètreBatchApplyEnabled, consultez Paramètres de metadonnées des tâches cibles (p. 334).

Les paramètres de réglage du traitement des modifications sont les suivants :

Les paramètres ci-dessous s'appliquent uniquement lorsque le paramètre de métadonnées ciblesBatchApplyEnabled est défini sur true.

• BatchApplyPreserveTransaction – Si cette option est définie sur true, l'intégrité transactionnelleest préservée et un lot est assuré de contenir toutes les modifications effectuées dans une transactionà partir de la source. La valeur par défaut est true. Ce paramètre s'applique uniquement aux points determinaison cible Oracle.

Si elle est définie sur false, il peut exister des écarts temporaires dans l'intégrité transactionnelle afind'améliorer les performances. Il n'existe aucune garantie que toutes les modifications effectuées dansune transaction à partir de la source soient appliquées à la cible en un seul lot.

• BatchApplyTimeoutMin – Définit le délai minimal, en secondes, pendant lequel AWS DMS attendentre chaque application des modifications du lot. La valeur par défaut est 1.

• BatchApplyTimeoutMax – Définit le délai maximal, en secondes, pendant lequel AWS DMS attendentre chaque application des modifications du lot, avant l'expiration. La valeur par défaut est 30.

• BatchApplyMemoryLimit – Définit la quantité de mémoire maximale (en Mo) à utiliser pour leprétraitement en mode d'application par lots optimisée. La valeur par défaut est 500.

• BatchSplitSize – Définit le nombre maximal de modifications appliquées dans un même lot. La valeurpar défaut est 0, qui signifie qu'aucune limite n'est appliquée.

Les paramètres ci-dessous s'appliquent uniquement lorsque le paramètre de métadonnées ciblesBatchApplyEnabled est défini sur false.

• MinTransactionSize – Définit le nombre minimal de modifications à inclure dans chaque transaction.La valeur par défaut est 1000.

• CommitTimeout – Définit le délai maximal, en secondes, alloué à AWS DMS pour collecter destransactions par lots, avant l'expiration. La valeur par défaut est 1.

Version de l'API API Version 2016-01-01341

Page 349: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Le paramètre suivant s'applique lorsque le paramètre de métadonnées cibles BatchApplyEnabled estdéfini sur true ou false.

• HandleSourceTableAltered – Définissez cette option à la valeur true pour modifier la table ciblelorsque la table source est modifiée.

Les paramètres suivants s'appliquent uniquement lorsque la valeur BatchApplyEnabled est définie surfalse.

• LoopbackPreventionSettings – Ces paramètres permettent d’empêcher les boucles pour chaquetâche de réplication en cours dans n'importe quelle paire de tâches impliquées dans la réplicationbidirectionnelle. La Prévention de boucles empêche l'application de modifications identiques dansles deux sens de la réplication bidirectionnelle, ce qui peut corrompre les données. Pour de plusamples informations sur la réplication bidirectionnelle, veuillez consulter Effectuer une réplicationbidirectionnelle (p. 357).

AWS DMS tente de conserver les données de transaction en mémoire jusqu'à la validation complète de latransaction sur la source, la cible ou les deux. Toutefois, les transactions dont la taille dépasse la mémoireallouée ou qui ne sont pas validées dans le délai imparti sont écrites sur le disque.

Les paramètres suivants s'appliquent au réglage du traitement des modifications quel que soit ce mode detraitement.

• MemoryLimitTotal – Définit la taille maximale (en Mo) que la totalité des transactions peut occuper enmémoire avant leur écriture sur le disque. La valeur par défaut est 1024.

• MemoryKeepTime – Définit la durée maximale, en secondes, pendant laquelle chaque transaction peutrester en mémoire avant son écriture sur le disque. Cette durée est calculée à partir du moment où AWSDMS a commencé la capture de la transaction. La valeur par défaut est 60.

• StatementCacheSize – Définit le nombre maximal d'instructions préparées à stocker sur le serveuren vue d'une exécution ultérieure lors de l'application des modifications à la cible. La valeur par défautest 50. La valeur maximale est 200.

Paramètres de la tâche de validation des donnéesVous pouvez vérifier que vos données ont été migrées avec précision de la source vers la cible. Si vousactivez la validation pour une tâche, AWS DMS commence à comparer les données de la source et cellesde la cible immédiatement après l'exécution d'un chargement complet d'une table. Pour plus d'informationssur la validation des données d'une tâche, ses exigences, la portée de la prise en charge de sa base dedonnées et les métriques qu'elle fournit, consultez Validation des tâches AWS DMS (p. 420).

Les paramètres de validation des données et leurs valeurs incluent les éléments suivants :

• EnableValidation – Active la validation des données lorsque la valeur est true. Dans le cas contraire,la validation est désactivée pour la tâche. La valeur par défaut est false.

• FailureMaxCount – Spécifie le nombre maximal d'enregistrements pour lesquels la validation peutéchouer avant que celle-ci soit suspendue pour la tâche. La valeur par défaut est 10,000. Si voussouhaitez que la validation se poursuive quel que soit le nombre d'enregistrements pour lesquels elleéchoue, choisissez une valeur plus élevée que le nombre d'enregistrements dans la source.

• HandleCollationDiff – Lorsque cette option est définie sur true, la validation prend en compteles différences de classement des colonnes dans les points de terminaison PostgreSQL lors del'identification des enregistrements sources et cibles pour la comparaison. Sinon, les différences declassement des colonnes sont ignorées pour la validation. Dans les points de terminaison PostgreSQL,les classements de colonnes peuvent imposer l'ordre des lignes, ce qui est important pour la validationdes données. Définir HandleCollationDiff sur true permet de résoudre automatiquement ces

Version de l'API API Version 2016-01-01342

Page 350: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

différences de classement et évite les faux positifs dans la validation des données. La valeur par défautest false.

• RecordFailureDelayLimitInMinutes – Spécifie le délai avant que les détails d'une défaillance devalidation ne soit fournie. Normalement, AWS DMS utilise la latence de la tâche pour identifier le délairéel pour les modifications à apporter à la cible afin d'éviter les faux positifs. Ce paramètre remplace lavaleur de délai réel et vous permet de définir un délai plus important avant la création de rapports sur lesmétriques de validation. La valeur par défaut est 0.

• TableFailureMaxCount – Spécifie le nombre maximal de tables pour lesquelles la validation peutéchouer avant que la validation soit suspendue pour la tâche. La valeur par défaut est 1,000. Si voussouhaitez que la validation se poursuive quel que soit le nombre de tables pour lesquelles la validationéchoue, choisissez une valeur plus élevée que le nombre de tables dans la source.

• ThreadCount – Spécifie le nombre de threads d'exécution utilisés par AWS DMS au cours de lavalidation. Chaque thread sélectionne des données pas encore validées dans la source et dans la cibleà des fins de comparaison et de validation. La valeur par défaut est 5. Si vous définissez ThreadCountà un nombre plus élevé, AWS DMS peut effectuer la validation plus rapidement. Toutefois, AWS DMSexécute ensuite plusieurs requêtes simultanées, consommant plus de ressources sur la source et lacible.

• ValidationOnly – Lorsque cette option est définie sur true, l'exécution de la tâche affiche un aperçude la validation des données sans aucune migration ou réplication des données.

Pour pouvoir définir cette option, dans la console AWS DMS, définissez la tâche Type de migrationsur Replicate data changes only (Répliquer uniquement les modifications de données). Vous pouvezégalement définir le type de migration sur cdc dans l'API AWS DMS.

En adoptant cette approche, vous pouvez voir les résultats de la validation et résoudre les défaillancesavant de déplacer les données. Cette option peut s'avérer plus efficace que d'attendre que toutes lesdonnées sources aient été migrées vers la cible pour résoudre les défaillances. La valeur par défaut estfalse.

Par exemple, le code JSON suivant active la validation des données avec deux fois le nombre de threadspar défaut. Elle tient également compte des différences d'ordre d'enregistrement générées par lesdifférences de classement des colonnes dans les points de terminaison PostgreSQL. De plus, elle fournitun délai de rapport de validation pour tenir compte du temps supplémentaire nécessaire pour traiter lesdéfaillances de validation.

"ValidationSettings": { "EnableValidation": true, "ThreadCount": 10, "HandleCollationDiff": true, "RecordFailureDelayLimitInMinutes": 30 }

Note

Pour un point de terminaison Oracle, AWS DMS utilise DBMS_CRYPTO pour valider lesBLOB. Si votre point de terminaison Oracle utilise les BLOB, accordez l'autorisation d'exécuterDBMS_CRYPTO au compte utilisateur qui permet d'accéder au point de terminaison Oracle. Pource faire, exécutez l'instruction suivante.

grant execute on sys.dbms_crypto to <dms_endpoint_user>;

Version de l'API API Version 2016-01-01343

Page 351: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Paramètres de tâche pour la gestion du DDL de traitement desmodificationsLes paramètres suivants déterminent la façon dont AWS DMS gère les modifications de DDL (datadefinition language) pour les tables cibles au cours de la capture de données modifiées (CDC). Lesparamètres de tâche pour la gestion du DDL de traitement des modifications sont les suivants :

• HandleSourceTableDropped – Définissez cette option à la valeur true pour supprimer la table ciblelorsque la table source est supprimée

• HandleSourceTableTruncated – Définissez cette option à la valeur true pour tronque la table ciblelorsque la table source est tronquée

• HandleSourceTableAltered – Définissez cette option à la valeur true pour modifier la table ciblelorsque la table source est modifiée.

Paramètres de tâche de substitution de caractèresVous pouvez spécifier que votre tâche de réplication effectue des substitutions de caractères sur la basede données cible pour toutes les colonnes de la base de données source ayant le type de données AWSDMS STRING ou WSTRING. Vous pouvez configurer la substitution de caractères pour toute tâche avec despoints de terminaison provenant des bases de données source et cible suivantes :

• Bases de données source :• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• SAP Adaptive Server Enterprise (ASE)• IBM Db2 LUW

• Bases de données cible :• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• SAP Adaptive Server Enterprise (ASE)• Amazon Redshift

Note

AWS DMS prend en charge la substitution de caractères dans les versions 3.1.3 et ultérieures.

Vous pouvez spécifier des substitutions de caractères à l'aide du paramètre CharacterSetSettingsdans vos paramètres de tâche. Ces substitutions de caractères se produisent pour les caractères spécifiésà l'aide de la valeur du point de code Unicode en notation hexadécimale. Vous pouvez implémenter lessubstitutions en deux phases, dans l'ordre suivant, si les deux sont spécifiées :

1. Remplacement des caractères individuels – AWS DMS peut remplacer les valeurs des caractèressélectionnés dans la source par les valeurs de remplacement spécifiées des caractères correspondantsdans la cible. Utilisez le tableau CharacterReplacements dans CharacterSetSettingspour sélectionner tous les caractères source ayant les points de code Unicode que vous spécifiez.Utilisez également ce tableau pour spécifier les points de code de remplacement pour les caractèrescorrespondants dans la cible.

Version de l'API API Version 2016-01-01344

Page 352: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Pour sélectionner tous les caractères de la source qui ont un point de code donné, définissez uneinstance de SourceCharacterCodePoint dans le tableau CharacterReplacements sur cepoint de code. Spécifiez ensuite le point de code de remplacement pour tous les caractères cibleséquivalents en définissant l'instance correspondante de TargetCharacterCodePoint dans cetableau. Pour supprimer les caractères cibles au lieu de les remplacer, définissez les instancesappropriées de TargetCharacterCodePoint sur zéro (0). Vous pouvez remplacer ou supprimerautant de valeurs différentes de caractères cibles que vous le souhaitez en spécifiant des pairessupplémentaires de paramètres TargetCharacterCodePoint et SourceCharacterCodePointdans le tableau CharacterReplacements. Si vous spécifiez la même valeur pour plusieursinstances de SourceCharacterCodePoint, la valeur du dernier paramètre correspondant deTargetCharacterCodePoint s'applique à la cible.

Par exemple, supposons que vous spécifiiez les valeurs suivantes pour CharacterReplacements.

"CharacterSetSettings": { "CharacterReplacements": [ { "SourceCharacterCodePoint": 62, "TargetCharacterCodePoint": 61 }, { "SourceCharacterCodePoint": 42, "TargetCharacterCodePoint": 41 } ]}

Dans cet exemple, AWS DMS remplace tous les caractères ayant la valeur hexadécimale de pointde code source 62 dans la cible par les caractères ayant la valeur de point de code 61. AWS DMSremplace également tous les caractères ayant le point de code source 42 dans la cible par lescaractères ayant la valeur de point de code 41. En d'autres termes, AWS DMS remplace toutes lesinstances de la lettre 'b' dans la cible par la lettre 'a'. De même, AWS DMS remplace toutes lesinstances de la lettre 'B' dans la cible par la lettre 'A'.

2. Validation et remplacement des jeux de caractères – Une fois tous les remplacements de caractèresindividuels terminés, AWS DMS peut effectuer une vérification et s'assurer que tous les caractèrescibles ont des points de code Unicode valides dans le jeu de caractères unique que vous spécifiez. Vousutilisez CharacterSetSupport dans CharacterSetSettings pour configurer cette vérification etcette modification de caractères cibles. Pour spécifier le jeu de caractères de vérification, définissezCharacterSet dans CharacterSetSupport sur la valeur de chaîne du jeu de caractères lui-même.(Les valeurs possibles pour CharacterSet sont indiquées ci-après.) Vous pouvez faire en sortequ'AWS DMS modifie les caractères cibles non valides de l'une des manières suivantes :• Spécifiez un point de code Unicode de remplacement unique pour tous les caractères cibles non

valides, quel que soit leur point de code actuel. Pour configurer ce point de code de remplacement,définissez ReplaceWithCharacterCodePoint dans CharacterSetSupport sur la valeurspécifiée.

• Configurez la suppression de tous les caractères cibles non valides en définissantReplaceWithCharacterCodePoint sur zéro (0).

Par exemple, supposons que vous spécifiiez les valeurs suivantes pour CharacterSetSupport.

"CharacterSetSettings": { "CharacterSetSupport": { "CharacterSet": "UTF16_PlatformEndian", "ReplaceWithCharacterCodePoint": 0 }}

Version de l'API API Version 2016-01-01345

Page 353: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

Dans cet exemple, AWS DMS supprime tous les caractères de la cible qui ne sont pas valides dans lejeu de caractères "UTF16_PlatformEndian". Par conséquent, tous les caractères spécifiés avec lavaleur hexadécimale 2FB6 sont supprimés. Cette valeur n'est pas valide, car il s'agit d'un point de codeUnicode de 4 octets et les jeux de caractères UTF16 acceptent uniquement les caractères avec despoints de code de 2 octets.

Note

La tâche de réplication effectue toutes les substitutions de caractères spécifiées avant decommencer les transformations globales ou au niveau de la table que vous avez spécifiées via lemappage de table. Pour de plus amples informations sur le mappage de table, veuillez consulterUtilisation du mappage de table pour spécifier des paramètres de tâche (p. 363).

Les valeurs prises en charge par AWS DMS pour CharacterSet sont présentées dans le tableau suivant.

UTF-8 ibm-860_P100-1995 ibm-280_P100-1995

UTF-16 ibm-861_P100-1995 ibm-284_P100-1995

UTF-16BE ibm-862_P100-1995 ibm-285_P100-1995

UTF-16LE ibm-863_P100-1995 ibm-290_P100-1995

UTF-32 ibm-864_X110-1999 ibm-297_P100-1995

UTF-32BE ibm-865_P100-1995 ibm-420_X120-1999

UTF-32LE ibm-866_P100-1995 ibm-424_P100-1995

UTF16_PlatformEndian ibm-867_P100-1998 ibm-500_P100-1995

UTF16_OppositeEndian ibm-868_P100-1995 ibm-803_P100-1999

UTF32_PlatformEndian ibm-869_P100-1995 ibm-838_P100-1995

UTF32_OppositeEndian ibm-878_P100-1996 ibm-870_P100-1995

UTF-16BE,version=1 ibm-901_P100-1999 ibm-871_P100-1995

UTF-16LE,version=1 ibm-902_P100-1999 ibm-875_P100-1995

UTF-16,version=1 ibm-922_P100-1999 ibm-918_P100-1995

UTF-16,version=2 ibm-1168_P100-2002 ibm-930_P120-1999

UTF-7 ibm-4909_P100-1999 ibm-933_P110-1995

IMAP-mailbox-name ibm-5346_P100-1998 ibm-935_P110-1999

SCSU ibm-5347_P100-1998 ibm-937_P110-1999

BOCU-1 ibm-5348_P100-1997 ibm-939_P120-1999

CESU-8 ibm-5349_P100-1998 ibm-1025_P100-1995

ISO-8859-1 ibm-5350_P100-1998 ibm-1026_P100-1995

US-ASCII ibm-9447_P100-2002 ibm-1047_P100-1995

gb18030 ibm-9448_X100-2005 ibm-1097_P100-1995

Version de l'API API Version 2016-01-01346

Page 354: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

ibm-912_P100-1995 ibm-9449_P100-2002 ibm-1112_P100-1995

ibm-913_P100-2000 ibm-5354_P100-1998 ibm-1122_P100-1999

ibm-914_P100-1995 ibm-1250_P100-1995 ibm-1123_P100-1995

ibm-915_P100-1995 ibm-1251_P100-1995 ibm-1130_P100-1997

ibm-1089_P100-1995 ibm-1252_P100-2000 ibm-1132_P100-1998

ibm-9005_X110-2007 ibm-1253_P100-1995 ibm-1137_P100-1999

ibm-813_P100-1995 ibm-1254_P100-1995 ibm-4517_P100-2005

ibm-5012_P100-1999 ibm-1255_P100-1995 ibm-1140_P100-1997

ibm-916_P100-1995 ibm-5351_P100-1998 ibm-1141_P100-1997

ibm-920_P100-1995 ibm-1256_P110-1997 ibm-1142_P100-1997

iso-8859_10-1998 ibm-5352_P100-1998 ibm-1143_P100-1997

iso-8859_11-2001 ibm-1257_P100-1995 ibm-1144_P100-1997

ibm-921_P100-1995 ibm-5353_P100-1998 ibm-1145_P100-1997

iso-8859_14-1998 ibm-1258_P100-1997 ibm-1146_P100-1997

ibm-923_P100-1998 macos-0_2-10.2 ibm-1147_P100-1997

ibm-942_P12A-1999 macos-6_2-10.4 ibm-1148_P100-1997

ibm-943_P15A-2003 macos-7_3-10.2 ibm-1149_P100-1997

ibm-943_P130-1999 macos-29-10.2 ibm-1153_P100-1999

ibm-33722_P12A_P12A-2009_U2macos-35-10.2 ibm-1154_P100-1999

ibm-33722_P120-1999 ibm-1051_P100-1995 ibm-1155_P100-1999

ibm-954_P101-2007 ibm-1276_P100-1995 ibm-1156_P100-1999

euc-jp-2007 ibm-1006_P100-1995 ibm-1157_P100-1999

ibm-1373_P100-2002 ibm-1098_P100-1995 ibm-1158_P100-1999

windows-950-2000 ibm-1124_P100-1996 ibm-1160_P100-1999

ibm-950_P110-1999 ibm-1125_P100-1997 ibm-1164_P100-1999

ibm-1375_P100-2008 ibm-1129_P100-1997 ibm-1364_P110-2007

ibm-5471_P100-2006 ibm-1131_P100-1997 ibm-1371_P100-1999

ibm-1386_P100-2001 ibm-1133_P100-1997 ibm-1388_P103-2001

windows-936-2000 ISO_2022,locale=ja,version=0ibm-1390_P110-2003

ibm-1383_P110-1999 ISO_2022,locale=ja,version=1ibm-1399_P110-2003

ibm-5478_P100-1995 ISO_2022,locale=ja,version=2ibm-5123_P100-1999

euc-tw-2014 ISO_2022,locale=ja,version=3ibm-8482_P100-1999

Version de l'API API Version 2016-01-01347

Page 355: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

ibm-964_P110-1999 ISO_2022,locale=ja,version=4ibm-16684_P110-2003

ibm-949_P110-1999 ISO_2022,locale=ko,version=0ibm-4899_P100-1998

ibm-949_P11A-1999 ISO_2022,locale=ko,version=1ibm-4971_P100-1999

ibm-970_P110_P110-2006_U2 ISO_2022,locale=zh,version=0ibm-9067_X100-2005

ibm-971_P100-1995 ISO_2022,locale=zh,version=1ibm-12712_P100-1998

ibm-1363_P11B-1998 ISO_2022,locale=zh,version=2ibm-16804_X110-1999

ibm-1363_P110-1997 HZ ibm-37_P100-1995,swaplfnl

windows-949-2000 x11-compound-text ibm-1047_P100-1995,swaplfnl

windows-874-2000 ISCII,version=0 ibm-1140_P100-1997,swaplfnl

ibm-874_P100-1995 ISCII,version=1 ibm-1141_P100-1997,swaplfnl

ibm-1162_P100-1999 ISCII,version=2 ibm-1142_P100-1997,swaplfnl

ibm-437_P100-1995 ISCII,version=3 ibm-1143_P100-1997,swaplfnl

ibm-720_P100-1997 ISCII,version=4 ibm-1144_P100-1997,swaplfnl

ibm-737_P100-1997 ISCII,version=5 ibm-1145_P100-1997,swaplfnl

ibm-775_P100-1996 ISCII,version=6 ibm-1146_P100-1997,swaplfnl

ibm-850_P100-1995 ISCII,version=7 ibm-1147_P100-1997,swaplfnl

ibm-851_P100-1995 ISCII,version=8 ibm-1148_P100-1997,swaplfnl

ibm-852_P100-1995 LMBCS-1 ibm-1149_P100-1997,swaplfnl

ibm-855_P100-1995 ibm-37_P100-1995 ibm-1153_P100-1999,swaplfnl

ibm-856_P100-1995 ibm-273_P100-1995 ibm-12712_P100-1998,swaplfnl

ibm-857_P100-1995 ibm-277_P100-1995 ibm-16804_X110-1999,swaplfnl

ibm-858_P100-1997 ibm-278_P100-1995 ebcdic-xml-us

Paramètres de traitement des erreurs pour une tâcheVous pouvez définir le comportement de gestion des erreurs de votre tâche de réplication pendant lacapture des données modifiées en utilisant les paramètres suivants :

• DataErrorPolicy – Détermine l'action exécutée par AWS DMS lorsqu'une erreur se produit sur letraitement des données, au niveau de l'enregistrement. Certains exemples d'erreurs liées au traitementde données comprennent les erreurs de conversion, les erreurs dans la transformation et les donnéesincorrectes. La valeur par défaut est LOG_ERROR.• IGNORE_RECORD – La tâche continue et les données de ce dossier sont ignorées. Le compteur

d'erreurs pour la propriété DataErrorEscalationCount est incrémenté. Par conséquent, si vousdéfinissez une limite pour les erreurs pour une table, cette erreur est prise en compte dans cette limite.

• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.

Version de l'API API Version 2016-01-01348

Page 356: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.• DataTruncationErrorPolicy – Détermine l'action exécutée par AWS DMS lorsque les données sont

tronquées. La valeur par défaut est LOG_ERROR.• IGNORE_RECORD – La tâche continue et les données de ce dossier sont ignorées. Le compteur

d'erreurs pour la propriété DataErrorEscalationCount est incrémenté. Par conséquent, si vousdéfinissez une limite pour les erreurs pour une table, cette erreur est prise en compte dans cette limite.

• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.

• DataErrorEscalationPolicy – Détermine l'action exécutée par AWS DMS quand le nombremaximal d'erreurs (défini dans le paramètre DataErrorsEscalationCount) est atteint. La valeur pardéfaut est SUSPEND_TABLE.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.

• DataErrorEscalationCount – Définit le nombre maximal d'erreurs qui peuvent avoir lieu surles données pour un enregistrement spécifique. Lorsque ce nombre est atteint, les données de latable qui contient l'enregistrement d'erreur sont traitées conformément à la stratégie définie dansDataErrorEscalationPolicy. La valeur par défaut est 0.

• TableErrorPolicy – Détermine l'action exécutée par AWS DMS lorsqu'une erreur se produit lors dutraitement de données ou de métadonnées d'une table spécifique. Cette erreur s'applique uniquementaux données générales de la table. Il ne s'agit pas d'une erreur liée à un enregistrement spécifique. Lavaleur par défaut est SUSPEND_TABLE.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.

• TableErrorEscalationPolicy – Détermine l'action exécutée par AWS DMS quand le nombremaximal d'erreurs (défini à l'aide du paramètre TableErrorEscalationCount) est atteint. Leparamètre par défaut et le seul paramètre utilisateur est STOP_TASK, avec lequel la tâche est arrêtée etune intervention manuelle est requise.

• TableErrorEscalationCount – Nombre maximal d'erreurs qui peuvent avoir lieu sur les donnéesou les métadonnées générales pour une table spécifique. Lorsque ce nombre est atteint, les donnéesde la table sont traitées conformément à la stratégie définie dans TableErrorEscalationPolicy. Lavaleur par défaut est 0.

• RecoverableErrorCount – Nombre maximal de tentatives pour redémarrer une tâche lorsqu'uneerreur d'environnement se produit. Une fois que le système a tenté de redémarrer la tâche le nombre defois indiqué, la tâche est arrêtée et une intervention manuelle est requise. La valeur par défaut est -1, quiindique à AWS DMS d'essayer de redémarrer la tâche indéfiniment. Définissez cette valeur sur 0 pour nejamais essayer de redémarrer une tâche. Si une erreur fatale se produit, AWS DMS cesse d'essayer deredémarrer la tâche après six tentatives.

• RecoverableErrorInterval – Nombre de secondes pendant lesquelles AWS DMS attend entre lestentatives de redémarrage d'une tâche. La valeur par défaut est 5.

• RecoverableErrorThrottling – Lorsque ce paramètre activé, l'intervalle entre les tentatives deredémarrage d'une tâche est augmenté chaque fois qu'un redémarrage est tenté. La valeur par défautest true.

• RecoverableErrorThrottlingMax – Nombre de secondes pendant lesquelles AWS DMS attendentre les tentatives de redémarrage d'une tâche si RecoverableErrorThrottling est activé. Lavaleur par défaut est 1800.

• ApplyErrorDeletePolicy – Détermine l'action exécutée par AWS DMS quand un conflit lié à uneopération DELETE a lieu. La valeur par défaut est IGNORE_RECORD.

Version de l'API API Version 2016-01-01349

Page 357: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

• IGNORE_RECORD – La tâche continue et les données de ce dossier sont ignorées. Le compteurd'erreurs pour la propriété ApplyErrorEscalationCount est incrémenté. Par conséquent, si vousdéfinissez une limite pour les erreurs pour une table, cette erreur est prise en compte dans cette limite.

• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.

• ApplyErrorInsertPolicy – Détermine l'action exécutée par AWS DMS quand un conflit lié à uneopération INSERT a lieu. La valeur par défaut est LOG_ERROR.• IGNORE_RECORD – La tâche continue et les données de ce dossier sont ignorées. Le compteur

d'erreurs pour la propriété ApplyErrorEscalationCount est incrémenté. Par conséquent, si vousdéfinissez une limite pour les erreurs pour une table, cette erreur est prise en compte dans cette limite.

• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.• INSERT_RECORD – S'il existe un enregistrement cible avec la même clé primaire que l'enregistrement

source inséré, l'enregistrement cible est mis à jour.• ApplyErrorUpdatePolicy – Détermine l'action exécutée par AWS DMS quand un conflit lié à une

opération UPDATE a lieu. La valeur par défaut est LOG_ERROR.• IGNORE_RECORD – La tâche continue et les données de ce dossier sont ignorées. Le compteur

d'erreurs pour la propriété ApplyErrorEscalationCount est incrémenté. Par conséquent, si vousdéfinissez une limite pour les erreurs pour une table, cette erreur est prise en compte dans cette limite.

• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.• UPDATE_RECORD – Si l'enregistrement cible est manquant, celui-ci est inséré dans la table cible. La

sélection de cette option nécessite qu'une journalisation supplémentaire complète soit activée pourtoutes les colonnes de la table source quand Oracle est la base de données source.

• ApplyErrorEscalationPolicy – Détermine l'action exécutée par AWS DMS quand le nombremaximal d'erreurs (défini à l'aide du paramètre ApplyErrorsEscalationCount) est atteint.• LOG_ERROR – La tâche continue et l'erreur est écrite dans le journal de la tâche.• SUSPEND_TABLE – La tâche continue, mais les données de la table avec l'enregistrement d'erreur sont

mises à un état d'erreur et les données ne sont pas répliquées.• STOP_TASK – La tâche s'arrête et une intervention manuelle est requise.

• ApplyErrorEscalationCount – Définit le nombre maximal de conflits APPLY qui peuvent se produirepour une table spécifique pendant une opération de traitement des modifications. Lorsque ce nombreest atteint, les données de la table sont traitées conformément à la stratégie définie dans le paramètreApplyErrorEscalationPolicy. La valeur par défaut est 0.

• ApplyErrorFailOnTruncationDdl – Définissez ce paramètre sur true pour que la tâche échouelorsqu'une troncature est exécutée sur l'une des tables suivies pendant la capture des donnéesmodifiées. Le message d'échec est : « Troncature DDL détectée. » La valeur par défaut est false.

Cette approche ne fonctionne pas avec PostgreSQL ou tout autre point de terminaison source qui neréplique pas la troncature de table DDL.

• FailOnNoTablesCaptured – Définissez ce paramètre sur true pour qu'une tâche échoue lorsque lesrègles de transformation définies pour une tâche ne trouvent pas de tables au lancement de la tâche. Lavaleur par défaut est false.

• FailOnTransactionConsistencyBreached – Cette option s'applique aux tâches à l'aide d'Oraclecomme source avec la capture des données modifiées. Définissez le paramètre sur true pour qu'une

Version de l'API API Version 2016-01-01350

Page 358: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurParamètres de tâche

tâche échoue lorsqu'une transaction est ouverte plus longtemps que le délai d'expiration spécifié etpuisse être supprimée.

Lorsqu'une tâche de capture des données modifiées commence avec Oracle, AWS DMS attend untemps limité pour que la transaction ouverte la plus ancienne se ferme avant de démarrer la capturedes données modifiées. Si la transaction ouverte la plus ancienne n'est pas fermée avant que le délaid'expiration ne soit écoulé, la capture des données est démarrée normalement, quoi qu'il en soit, et latransaction est ignorée. Si ce paramètre a la valeur true, la tâche échoue.

• FullLoadIgnoreConflicts – Définissez le paramètre sur true pour qu'AWS DMS ignore les erreursde « zéro ligne affectée » et de « doublon » des erreurs lors de l'application des événements mis encache. Si la valeur est false, AWS DMS rapporte toutes les erreurs au lieu de les ignorer. La valeur pardéfaut est true.

Paramètres de tâche d'enregistrementVous pouvez enregistrer les paramètres d'une tâche en tant que fichier JSON, au cas où vous souhaiteriezréutiliser les paramètres pour une autre tâche.

Par exemple, le fichier JSON suivant contient les paramètres enregistrés pour une tâche.

{ "TargetMetadata": { "TargetSchema": "", "SupportLobs": true, "FullLobMode": false, "LobChunkSize": 64, "LimitedSizeLobMode": true, "LobMaxSize": 32, "BatchApplyEnabled": true }, "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, "StopTaskCachedChangesApplied": false, "StopTaskCachedChangesNotApplied": false, "MaxFullLoadSubTasks": 8, "TransactionConsistencyTimeout": 600, "CommitRate": 10000 }, "Logging": { "EnableLogging": false }, "ControlTablesSettings": { "ControlSchema":"", "HistoryTimeslotInMinutes":5, "HistoryTableEnabled": false, "SuspendedTablesTableEnabled": false, "StatusTableEnabled": false }, "StreamBufferSettings": { "StreamBufferCount": 3, "StreamBufferSizeInMB": 8 }, "ChangeProcessingTuning": { "BatchApplyPreserveTransaction": true, "BatchApplyTimeoutMin": 1, "BatchApplyTimeoutMax": 30, "BatchApplyMemoryLimit": 500, "BatchSplitSize": 0, "MinTransactionSize": 1000,

Version de l'API API Version 2016-01-01351

Page 359: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDéfinition de la prise en charge LOB

"CommitTimeout": 1, "MemoryLimitTotal": 1024, "MemoryKeepTime": 60, "StatementCacheSize": 50 }, "ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableDropped": true, "HandleSourceTableTruncated": true, "HandleSourceTableAltered": true }, "ErrorBehavior": { "DataErrorPolicy": "LOG_ERROR", "DataTruncationErrorPolicy":"LOG_ERROR", "DataErrorEscalationPolicy":"SUSPEND_TABLE", "DataErrorEscalationCount": 50, "TableErrorPolicy":"SUSPEND_TABLE", "TableErrorEscalationPolicy":"STOP_TASK", "TableErrorEscalationCount": 50, "RecoverableErrorCount": 0, "RecoverableErrorInterval": 5, "RecoverableErrorThrottling": true, "RecoverableErrorThrottlingMax": 1800, "ApplyErrorDeletePolicy":"IGNORE_RECORD", "ApplyErrorInsertPolicy":"LOG_ERROR", "ApplyErrorUpdatePolicy":"LOG_ERROR", "ApplyErrorEscalationPolicy":"LOG_ERROR", "ApplyErrorEscalationCount": 0, "FullLoadIgnoreConflicts": true }}

Définition de la prise en charge LOB pour les bases dedonnées source dans une tâche AWS DMSLes grands objets binaires (LOB) peuvent parfois être difficiles à migrer d'un système à l'autre. AWS DMSpropose un certain nombre d'options pour faciliter l'ajustement de colonnes LOB. Pour déterminer quelstypes de données et à quel moment ceux-ci sont considérés comme des LOB par AWS DMS consultez ladocumentation AWS DMS.

Lorsque vous migrez des données d'une base de données vers une autre, vous pouvez saisir l'occasionpour repenser la manière dont vos LOB sont stockés, en particulier pour les migrations hétérogènes. Sivous souhaitez le faire, vous n'avez pas besoin de migrer les données LOB.

Si vous choisissez d'inclure les objets LOB, vous pouvez choisir ensuite les autres paramètres LOB :

• Le mode LOB détermine la façon dont les objets LOB sont gérés :• Mode LOB complet – En mode LOB complet, AWS DMS migre tous les LOB de la source vers la cible,

quelle que soit leur taille. Dans cette configuration, AWS DMS n'a aucun informations sur la taillemaximale de LOB à attendre. Par conséquent, les LOB sont migrés un par un, morceau par morceau.Le mode LOB complet peut être très lent.

• Mode LOB limité – En mode LOB limité, vous définissez une taille de LOB maximale devant êtreacceptée par AWS DMS. Vous permettez ainsi à AWS DMS de pré-allouer de la mémoire et decharger les données LOB en bloc. Les LOB qui dépassent la taille de LOB maximale sont tronquéset un avertissement est publié dans le fichier journal. En mode LOB limité, vous bénéficiez de gainsde performance significatifs par rapport au mode LOB complet. Nous vous recommandons d'utiliser lemode LOB limité dans la mesure du possible.

Version de l'API API Version 2016-01-01352

Page 360: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCréation de plusieurs tâches

Note

Avec Oracle, les LOB sont traités comme des types de données VARCHAR si possible. Cetteapproche signifie qu'AWS DMS les extrait de la base de données en bloc, ce qui est beaucoupplus rapide que les autres méthodes. La taille maximale d'un VARCHAR dans Oracle est de64 ko. Par conséquent, une taille LOB limitée inférieur à 64 ko est optimale quand Oracle estvotre base de données source.

• Lorsqu'une tâche est configurée pour s'exécuter en Max LOB size (K) (Taille maximale du LOB (K)),l'option détermine la taille de LOB maximale acceptée par AWS DMS. Les grands objets (LOB) quidépassent cette valeur sont tronqués à cette valeur.

• Lorsqu'une tâche est configurée pour utiliser le mode LOB complet, AWS DMS extrait les LOB morceaupar morceau. L'option Taille de bloc du LOB (ko) détermine la taille de chaque élément. Lorsque vousdéfinissez cette option, portez une attention particulière à la taille de paquet maximale autorisée par votreconfiguration réseau. Si la taille de bloc LOB dépasse la taille maximale autorisée pour les paquets, vouspourriez voir des erreurs de déconnexion.

Pour plus d'informations sur les paramètres de tâche pour spécifier ces options, consultez Paramètres demetadonnées des tâches cibles (p. 334)

Création de plusieurs tâchesDans certains scénarios de migration, vous pouvez avoir à créer plusieurs tâches de migration. Les tâchesfonctionnent indépendamment les unes des autres et peuvent s'exécuter simultanément. Chaque tâchepossède ses propres chargement initial, CDC et procédure de lecture des journaux. Les tables reliées parle biais du langage de manipulation de données (DML) doivent faire partie de la même tâche.

Voici quelques raisons de créer plusieurs tâches pour une migration :

• Les tables cibles pour les tâches résident dans différentes bases de données, par exemple lorsque vousdistribuez ou divisez un système en plusieurs systèmes.

• Vous souhaitez diviser la migration d'une grande table en plusieurs tâches grâce au filtrage.

Note

Etant donné que chaque tâche possède son propre processus de capture des modificationset de lecture de journaux, les modifications ne sont pas coordonnées entre les tâches. Parconséquent, lorsque vous utilisez plusieurs tâches pour effectuer une migration, assurez-vous queles transactions sources sont entièrement contenues dans une tâche unique.

Création de tâches pour la réplication continue àl'aide d'AWS DMS

Vous pouvez créer une tâche AWS DMS qui capture les modifications en continu apportées à la sourcede données. Pour ce faire, vous pouvez capturer pendant que vous migrez vos données. Vous pouvezégalement créer une tâche qui capture les modifications continues une fois que vous avez terminé lamigration initiale (chargement complet) vers un magasin de données cible pris en charge. Ce processusest appelé la réplication continue ou capture des données modifiées (CDC). AWS DMS utilise ce processuslors de la réplication des modifications continues à partir d'un magasin de données source. Lors de ceprocessus, les modifications apportées aux journaux de base de données sont collectées à l'aide de l'APInative du moteur de base de données.

Version de l'API API Version 2016-01-01353

Page 361: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRéplication à partir d'un point de départ CDC

Note

Vous pouvez migrer des vues à l'aide de tâches de chargement complet uniquement. Si votretâche est une tâche CDC uniquement ou une tâche de chargement complet qui démarre lacapture des données modifiées (CDC) une fois terminée, la migration inclut uniquement lestables de la source. Si vous utilisez une tâche de chargement complet uniquement, vous pouvezmigrer des vues ou une combinaison de tables et de vues. Pour plus d'informations, consultez Spécification d'une sélection de table et de transformations par mappage de table à l'aide deJSON (p. 368).

Chaque moteur source possède une configuration requise spécifique pour communiquer ce flux demodifications à un compte d'utilisateur donné. La plupart des moteurs ont besoin d'une configurationsupplémentaire pour que le processus de capture puisse exploiter les données modifiées de manièresignificative, sans perte de données. Par exemple, Oracle nécessite l'ajout d'une journalisationsupplémentaire et MySQL nécessite une journalisation binaire au niveau des lignes.

Pour lire les modifications continues à partir de la base de données source, AWS DMS utilise des actionsd'API propres au moteur pour lire les modifications à partir des journaux de transactions du moteur source.Voici quelques exemples montrant la façon dont AWS DMS exécute cette opération :

• Pour Oracle, AWS DMS utilise l'API Oracle LogMiner ou Binary Reader (API bfile) pour lire lesmodifications en continu. AWS DMS lit les modifications en continu dans les journaux redo en ligne ouarchivés en fonction du SCN (numéro de modification système).

• Pour Microsoft SQL Server, AWS DMS utilise MS-Replication ou MS-CDC pour écrire desinformations dans le journal des transactions SQL Server. Il utilise ensuite la fonction fn_dblog() oufn_dump_dblog() dans SQL Server pour lire les modifications dans le journal des transactions enfonction du LSN (numéro de séquence de journal).

• Pour MySQL, AWS DMS lit les modifications à partir des journaux binaires basés sur les lignes et migreces modifications vers la cible.

• Pour PostgreSQL, AWS DMS configure des emplacements de réplication logique et utilise le plug-intest_decoding pour lire les modifications à partir de la source et les migrer vers la cible.

• Pour Amazon RDS en tant que source, nous vous recommandons de vérifier que les sauvegardes sontactivées pour configurer CDC. Nous vous recommandons également de vous assurer que la base dedonnées source est configurée pour conserver les journaux de modification pendant une durée suffisante(24 heures suffisent généralement).—

Il existe deux types de tâches de réplication continue :

• Chargement complet + CDC – La tâche migre les données existantes, puis met à jour la base dedonnées cible en fonction des modifications apportées à la base de données source.

• CDC uniquement – La tâche migre les modifications en continu une fois que les données sont sur votrebase de données cible.

Exécution de la réplication à partir d'un point de départCDCVous pouvez démarrer une tâche de réplication continue AWS DMS (tâche de capture des donnéesmodifiées (CDC) uniquement) à partir de plusieurs points, Tel est le cas des éléments suivants :

• À partir d'une heure de début CDC personnalisée – Vous pouvez utiliser la AWS Management Consoleou l'AWS CLI pour fournir à AWS DMS un horodatage auquel vous voulez que la réplication démarre.AWS DMS lance alors une tâche de réplication continue à partir de cette heure de début CDC. AWSDMS convertit l'horodatage (au format UTC) à un point de départ natif, par exemple un LSN pour SQLServer ou un SCN pour Oracle. AWS DMS utilise des méthodes spécifiques à chaque moteur pour

Version de l'API API Version 2016-01-01354

Page 362: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRéplication à partir d'un point de départ CDC

déterminer où exactement démarrer la tâche de migration en fonction du flux de modifications du moteursource.

Note

PostgreSQL comme source ne prend pas en charge une heure de début CDC personnalisée.Cela est dû au fait que le moteur de base de données PostgreSQL n'a aucun moyen de fairecorrespondre un horodatage à un LSN ou un SCN, à la différence d'Oracle et SQL Server.

• À partir d'un point de départ CDC natif, – Vous pouvez également démarrer à partir d'un point natif dansle journal des transactions du moteur source. Dans certains cas, cette approche peut être préférable, carun horodatage peut indiquer plusieurs points natifs dans le journal des transactions. AWS DMS prend encharge cette fonctionnalité pour les points de terminaison source suivants :• SQL Server• PostgreSQL• Oracle• MySQL

Définition d'un point de départ natif CDCUn point de départ natif CDC est un point dans le journal du moteur de base de données qui définit unmoment auquel vous pouvez commencer la capture des données modifiées (CDC). À titre d'exemple,supposons qu'un vidage des données en bloc a été appliqué à la cible à partir d'un instant dans lepassé. Dans ce cas, vous pouvez rechercher le point de départ natif pour la tâche de réplication continueexclusivement à partir d'un point avant le vidage.

Voici des exemples montrant comment trouver le point de départ natif CDC à partir de moteurs sources prisen charge :

SQL Server

Dans SQL Server, un LSN (numéro de séquence de journal) comporte trois parties :• Numéro de séquence VLF (fichier journal virtuel)• Décalage de départ d'un bloc de journaux• Numéro de l'emplacement

Voici un exemple de LSN : 00000014:00000061:0001

Pour obtenir le point de départ d'une tâche de migration SQL Server en fonction de vos paramètres desauvegarde du journal des transactions, utilisez la fonction fn_dblog() ou fn_dump_dblog() dansSQL Server.

Pour utiliser un point de départ natif CDC avec SQL Server, créez une publication sur une table faisantpartie de la réplication continue. Pour de plus amples informations sur la création d'une publication,consultez Création d'une publication SQL Server pour bénéficier de la réplication continue (p. 154).AWS DMS crée la publication automatiquement lorsque vous utilisez CDC sans point de départ CDCnatif.

PostgreSQL

Vous utilisez un point de contrôle de récupération CDC pour votre base de données sourcePostgreSQL. Cette valeur de point de contrôle est générée en différents points pendant l’exécutiond'une tâche de réplication continue pour votre base de données source (la tâche parent). Pour de plusamples informations sur les points de contrôle en général, veuillez consulter Utilisation d'un point decontrôle comme point de départ CDC (p. 357).

Pour identifier le point de contrôle à utiliser comme point de départ natif, utilisez la vue de votre basede données pg_replication_slots ou les détails de la présentation de la tâche parent dans laAWS Management Console.

Version de l'API API Version 2016-01-01355

Page 363: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRéplication à partir d'un point de départ CDC

Pour trouver les détails de la présentation de votre tâche parent sur la console

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS DMS à l'adressehttps://console.aws.amazon.com/iam/v2/.

2. Dans le volet de navigation de la console, choisissez, Database migration tasks (Tâches demigration de base de données).

3. Choisissez votre tâche parent dans la liste de la page Tâches de migration de base de données.Vous ouvrez ainsi la page de la tâche parent et affichez les détails de la présentation.

4. Trouvez la valeur du point de contrôle sous Capture de données modifiées (CDC), Position dedépart de la capture de données modifiées (CDC) et Point de contrôle de récupération de lacapture des données modifiées (CDC).

La valeur qui apparaît est similaire celle ci-dessous.

checkpoint:V1#1#000004AF/B00000D0#0#0#*#0#0

Ici, le composant 4AF/B00000D0 est ce dont vous avez besoin pour spécifier ce point dedépart CDC natif. Définissez le paramètre CdcStartPosition de l’API DMS sur cette valeurlorsque vous créez la tâche CDC pour commencer la réplication à ce point de départ pour votresource PostgreSQL. Pour de plus amples informations sur l'utilisation de l'AWS CLI pour créercette tâche CDC, veuillez consulter Utilisation de la CDC avec une instance DB RDS pourPostgreSQL (p. 170).

Oracle

Un SCN (numéro de modification système) est un horodatage interne, logique, utilisé par les bases dedonnées Oracle. Les SCN classent les événements qui se produisent au sein de la base de données,ce qui est nécessaire pour répondre aux propriétés ACID d'une transaction. Les bases de donnéesOracle utilisent des SCN pour marquer l'emplacement où toutes les modifications ont été écrites sur ledisque afin qu'une action de récupération n'applique pas les modifications déjà écrites. Oracle utiliseégalement les SCN pour marquer le point où il n'existe pas de redo pour un ensemble de données,afin que la récupération puisse s'arrêter. Pour plus d'informations sur Oracle SCNs, consultez ladocumentation Oracle.

Pour obtenir le SCN actuel dans une base de données Oracle, exécutez la commande suivante :

SELECT current_scn FROM V$DATABASE

MySQL

Avant la version MySQL 5.6.3, le LSN pour MySQL était un entier non signé de 4 octets. Dans laversion MySQL 5.6.3, lorsque la limite de taille du fichier journal redo est passée de 4 Go à 512 Go,le LSN est devenu un entier non signé à 8 octets. L'augmentation indique qu'il était nécessaired'augmenter le nombre d'octets pour stocker des informations supplémentaires sur la taille. Lesapplications reposant sur MySQL 5.6.3 ou sur une version ultérieure et qui utilisent les LSN doiventutiliser des variables de 64 bits plutôt que 32 bits pour stocker et comparer les valeurs LSN. Pour plusd'informations sur les LSN MySQL, consultez la documentation MySQL.

Pour obtenir le LSN actuel dans une base de données MySQL, exécutez la commande suivante :

mysql> show master status;

La requête renvoie le nom d'un fichier binlog, la position, ainsi que plusieurs autres valeurs. Le point dedépart natif CDC est une combinaison du nom du fichier binlog et de la position, par exemple mysql-

Version de l'API API Version 2016-01-01356

Page 364: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurEffectuer une réplication bidirectionnelle

bin-changelog.000024:373. Dans cet exemple, mysql-bin-changelog.000024 est le nom dufichier binlog et 373, la position où AWS DMS doit démarrer la capture des modifications.

Utilisation d'un point de contrôle comme point de départ CDCUne tâche de réplication continue migre les modifications, et AWS DMS met de temps en temps encache des informations spécifiques de AWS DMS. Le point de contrôle créé par AWS DMS contient desinformations qui permettent au moteur de réplication de connaître le point de récupération pour le flux desmodifications. Vous pouvez utiliser le point de contrôle pour revenir dans la chronologie des modificationset récupérer une tâche de migration ayant échoué. Vous pouvez également utiliser un point de contrôlepour démarrer une autre tâche de réplication continue pour une autre cible à tout moment.

Vous pouvez obtenir les informations de point de contrôle de l'une des deux manières suivantes :

• Exécutez la commande API DescribeReplicationTasks et consultez les résultats. Vous pouvezfiltrer les informations par tâche et rechercher le point de contrôle. Vous pouvez récupérer le dernier pointde contrôle lorsque la tâche est arrêtée ou en échec.

• Affichez la table de métadonnées nommée awsdms_txn_state sur l'instance cible. Vous pouvezinterroger la table pour obtenir les informations de point de contrôle. Pour créer la table de métadonnées,définissez le paramètre TaskRecoveryTableEnabled sur Yes lorsque vous créez une tâche. Ceparamètre indique à AWS DMS d'écrire en continu des informations de point de contrôle dans la table demétadonnées cible. Ces informations sont perdues si une tâche est supprimée.

Voici un exemple de point de contrôle dans la table de métadonnées :checkpoint:V1#34#00000132/0F000E48#0#0#*#0#121

Arrêt d'une tâche à un point de validation ou de serveurGrâce à l'introduction des points de départ CDC natifs, AWS DMS peut également arrêter une tâche auxpoints suivants :

• Heure de validation sur la source• Heure du serveur sur l'instance de réplication

Vous pouvez modifier une tâche et définir une heure au format UTC pour arrêter au moment souhaité. Latâche s'arrête automatiquement en fonction de l'heure de validation ou du serveur que vous définissez. Parailleurs, si vous souhaitez arrêter la tâche de migration à une heure précise au moment de la création de latâche, vous pouvez définir une heure d'arrêt lorsque vous créez la tâche.

Effectuer une réplication bidirectionnelleVous pouvez utiliser des tâches AWS DMS pour effectuer une réplication bidirectionnelle entre deuxsystèmes. Dans la réplication bidirectionnelle, vous répliquez des données de la même table (ou d’unensemble de tables) entre deux systèmes dans les deux sens.

Par exemple, vous pouvez copier une table EMPLOYE de la base de données A vers la base de donnéesB et répliquer les modifications apportées à la table de la base de données A vers la base de données B.Vous pouvez également répliquer les modifications apportées à la table EMPLOYE de la base de donnéesB vers A. Ainsi, vous effectuez une réplication bidirectionnelle.

Note

La réplication bidirectionnelle AWS DMS n'est pas conçue comme une solution multi-maîtrecomplète incluant un nœud principal, la résolution des conflits, etc.

Version de l'API API Version 2016-01-01357

Page 365: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurEffectuer une réplication bidirectionnelle

Utilisez la réplication bidirectionnelle pour des cas dans lesquels les données sur différents nœuds sontséparées au niveau opérationnel. En d'autres termes, supposons qu’un élément de données soit modifiépar une application fonctionnant sur le nœud A, et que ce dernier effectue une réplication bidirectionnelleavec le nœud B. Cet élément de données sur le nœud A n'est jamais modifié par une applicationfonctionnant sur le nœud B.

AWS DMS versions 3.3.1 et supérieures prend en charge la réplication bidirectionnelle sur ces moteurs debase de données :

• Oracle• SQL Server• MySQL• PostgreSQL• Amazon Aurora avec compatibilité MySQL• Aurora avec compatibilité PostgreSQL

Création de tâches de réplication bidirectionnellePour activer la réplication bidirectionnelle AWS DMS, configurez les points de terminaison source et ciblepour les deux bases de données (A et B). Par exemple, configurez un point de terminaison source pour labase de données A, un point de terminaison source pour la base de données B, un point de terminaisoncible pour la base de données A et un point de terminaison cible pour la base de données B.

Ensuite, créez deux tâches : une tâche pour la source A pour déplacer les données vers la cible B, etune autre tâche pour la source B pour déplacer les données vers la cible A. Assurez-vous également quechaque tâche est configurée pour empêcher les boucles. Vous pourrez ainsi empêcher l'application demodifications identiques aux cibles des deux tâches, ce qui corrompt les données d'au moins une d'entreelles. Pour plus d'informations, consultez Empêcher les boucles (p. 358).

Pour l'approche la plus simple, commencez par des jeux de données identiques sur les bases de donnéesA et B. Ensuite, créez deux tâches CDC uniquement, une tâche pour répliquer les données de A vers B etune autre tâche pour répliquer les données de B vers A.

Pour instancier un nouveau jeu de données (base de données) sur le nœud B à partir du nœud A à l’aidede AWS DMS, procédez comme suit :

1. Utilisez une charge complète et une tâche CDC pour déplacer les données de la base de données Avers B. Assurez-vous qu'aucune application ne modifie les données de la base de données B pendantce temps.

2. Lorsque la charge complète est terminée et avant que les applications ne soient autorisées à modifierles données de la base de données B, notez l'heure ou la position de départ de la CDC de la base dedonnées B. Pour obtenir des instructions, veuillez consulter Exécution de la réplication à partir d'un pointde départ CDC (p. 354).

3. Créez une tâche CDC uniquement qui déplace les données de la base de données B vers A à l'aide decette heure de début ou de cette position de départ CDC.

Note

Une seule tâche dans une paire bidirectionnelle peut être totalement chargée et CDC.

Empêcher les bouclesPour afficher la prévention des boucles, supposons que dans une tâche T1 AWS DMS lit les journaux desmodifications à partir de la base de données source A et applique les modifications à la base de donnéescible B.

Version de l'API API Version 2016-01-01358

Page 366: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurEffectuer une réplication bidirectionnelle

Ensuite, une deuxième tâche, T2, lit les journaux des modifications à partir de la base de données sourceB et les applique à la base de données cible A. Avant que T2 ne fasse cela, DMS doit s'assurer que lesmodifications apportées à la base de données cible B à partir de la base de données source A ne sont pasapportées à la base de données source B. En d'autres termes, DMS doit s'assurer que ces modificationsne sont pas reprises (en boucle) dans la base de données cible A. Dans le cas contraire, les données de labase de données A peuvent être corrompues.

Pour éviter les boucles de modifications, ajoutez les paramètres de tâche suivants à chaque tâche deréplication bidirectionnelle. Ainsi, vous vous assurez que la corruption des données pour cause de bouclesne se produit dans aucun sens.

{. . .

"LoopbackPreventionSettings": { "EnableLoopbackPrevention": Boolean, "SourceSchema": String, "TargetSchema": String },

. . .}

Les paramètres de tâche LoopbackPreventionSettings déterminent si une transaction est nouvelle oureprise de la tâche de réplication opposée. Lorsqu'une transaction est appliquée par AWS DMS à une basede données cible, elle met à jour une table DMS (awsdms_loopback_prevention) avec une indicationde la modification. Avant d'appliquer chaque transaction à une cible, DMS ignore toute transaction quiinclut une référence à cette table awsdms_loopback_prevention. Par conséquent, il n'applique pas lamodification.

Inclure ces paramètres de tâche avec chaque tâche de réplication dans une paire bidirectionnelle. Cesparamètres permettent la prévention des boucles. Ils spécifient également le schéma de chaque base dedonnées source et cible dans la tâche qui inclut la table awsdms_loopback_prevention pour chaquepoint de terminaison.

Pour permettre à chaque tâche d'identifier une reprise et de le supprimer, définissezEnableLoopbackPrevention sur true. Pour spécifier un schéma dans la source qui inclutawsdms_loopback_prevention, définissez SourceSchema sur le nom de ce schéma dans la base dedonnées source. Pour spécifier un schéma sur la cible qui inclut la même table, définissez TargetSchemasur le nom de ce schéma dans la base de données cible.

Dans l'exemple suivant, les paramètres TargetSchema et SourceSchema pour une tâche de réplicationT1 et sa tâche de réplication opposée T2 sont spécifiés avec des paramètres opposés.

Les paramètres de la tâche T1 sont les suivants.

{. . .

"LoopbackPreventionSettings": { "EnableLoopbackPrevention": true, "SourceSchema": "LOOP-DATA", "TargetSchema": "loop-data" },

. . .}

Les paramètres de la tâche opposée T2 sont les suivants.

Version de l'API API Version 2016-01-01359

Page 367: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification d'une tâche

{. . .

"LoopbackPreventionSettings": { "EnableLoopbackPrevention": true, "SourceSchema": "loop-data", "TargetSchema": "LOOP-DATA" },

. . .}

Note

Lorsque vous utilisez l’AWS CLI, utilisez uniquement les commandes modify-replication-task ou create-replication-task pour configurer LoopbackPreventionSettings dansvos tâches de réplication bidirectionnelle.

Limites de la réplication bidirectionnelleLa réplication bidirectionnelle pour AWS DMS présente les limites suivantes :

• La prévention des boucles suit uniquement les instructions en langage de manipulation de données(DML). AWS DMS ne prend pas en charge la prévention des boucles de langage de définition dedonnées (DDL). Pour ce faire, configurez l'une des tâches dans une paire bidirectionnelle pour filtrer lesinstructions DDL.

• Les tâches qui utilisent la prévention de boucles ne prennent pas en charge la validation desmodifications dans des lots. Pour configurer une tâche avec la prévention de boucles, assurez-vous dedéfinir BatchApplyEnabled sur false.

• La réplication bidirectionnelle DMS n'inclut pas la détection ou la résolution des conflits. Pour détecterdes incohérences de données, utilisez la validation des données sur les deux tâches.

Modification d'une tâcheVous pouvez modifier une tâche si vous avez besoin changer des paramètres de tâche, un mappage detable ou d'autres paramètres. Vous modifiez une tâche dans la console DMS en sélectionnant la tâche,puis en choisissant Modify. Vous pouvez également utiliser l'AWS CLI ou la commande d'API AWS DMSModifyReplicationTask.

Quelques limitations s'appliquent à la modification d'une tâche, Il s'agit des licences suivantes :

• Vous ne pouvez pas modifier le point de terminaison source ou cible d'une tâche.• Vous ne pouvez pas modifier le type de migration d'une tâche.• Les tâches qui ont été exécutées doivent avoir l'état Stopped (Arrêté) ou Failed (Échec) pour être

modifiée.

Rechargement de tables pendant une tâchePendant l'exécution d'une tâche, vous pouvez recharger une base de données cible à l'aide de donnéesprovenant de la source. Vous pouvez souhaiter recharger une table si, pendant la tâche, une erreur seproduit ou si des données sont modifiées à cause d'opérations de partition (par exemple, lors de l'utilisationd'Oracle). Vous pouvez recharger jusqu'à 10 tables à partir d'une tâche.

Version de l'API API Version 2016-01-01360

Page 368: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAWS Management Console

Pour recharger une table, les conditions suivantes doivent être appliquées :

• La tâche doit être en cours d'exécution.• La méthode de migration de la tâche doit être Full Load ou Full Load with CDC.• Les doublons de tables ne sont pas autorisés.• AWS DMS conserve la définition de table lue précédemment et ne la recrée pas au cours de l'opération

de rechargement. Toutes les instructions DDL telles que ALTER TABLE ADD COLUMN, DROPCOLUMN apportées à la table avant le rechargement de la table peuvent entraîner l'échec de l'opérationde rechargement.

AWS Management ConsolePour recharger une table à l'aide de la console AWS DMS

1. Connectez-vous à la AWS Management Console et choisissez AWS DMS. Si vous êtes connecté entant qu'utilisateur AWS Identity and Access Management (IAM), vous devez disposer des autorisationsappropriées pour accéder à AWS DMS. Pour plus d'informations sur les autorisations requises,consultez Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Choisissez Tasks dans le volet de navigation.3. Choisissez la tâche en cours d'exécution contenant la table que vous souhaitez recharger.4. Choisissez l'onglet Table Statistics (Statistiques de la table).

Version de l'API API Version 2016-01-01361

Page 369: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAWS Management Console

5. Choisissez la table que vous souhaitez recharger. Si la tâche n'est plus en cours d'exécution, vous nepouvez pas recharger la table.

6. Choisissez Reload table data (Recharger les données de la table).

Version de l'API API Version 2016-01-01362

Page 370: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMappage de table

Lorsqu’AWS DMS se prépare à recharger une table, la console modifie l'état de la table, qui devient Tableis being reloaded (La table est en cours de rechargement).

Utilisation du mappage de table pour spécifier desparamètres de tâche

Le mappage de table utilise différents types de règles pour spécifier la source de données, le schémasource, les données et toutes les transformations qui doivent se produire pendant la tâche. Vous pouvezutiliser le mappage de table pour spécifier des tables individuelles d'une base de données à migreret le schéma à utiliser pour la migration. Vous pouvez également utiliser des filtres pour spécifier lesdonnées d'une colonne de table précise que vous souhaitez répliquer. Vous pouvez également utiliser destransformations pour modifier les schémas, tables ou vues sélectionnés avant qu'ils ne soient écrits dans labase de données cible.

Spécification d'une sélection de table et detransformations par mappage de table à partir de laconsoleVous pouvez utiliser la AWS Management Console pour effectuer le mappage de table, notamment laspécification de la sélection de table et des transformations. Dans la console, utilisez la section Where pourspécifier le schéma, la table et l'action (include ou exclude). Utilisez la section Filter pour spécifier le nomde la colonne dans une table et les conditions que vous souhaitez appliquer à une tâche de réplication.Ensemble, ces deux actions créent une règle de sélection.

Vous pouvez inclure des transformations dans un mappage de table une fois que vous avez spécifié aumoins une règle de sélection. Vous pouvez utiliser les transformations pour renommer un schéma ou unetable, ajouter un préfixe ou un suffixe à un schéma ou une table ou supprimer une colonne d'une table.

L'exemple suivant montre comment configurer des règles de sélection pour une table appelée Customersdans un schéma appelé EntertainmentAgencySample. Vous créez des règles de sélection et destransformations sous l'onglet Guided (Guide). Cet onglet s'affiche uniquement lorsque vous disposez d'unpoint de terminaison source comportant des informations de schéma et de table.

Pour spécifier une sélection de table, des critères de filtre et des transformations à l'aide de laconsole AWS

1. Connectez-vous à la AWS Management Console et choisissez AWS DMS. Si vous êtes connecté entant qu'utilisateur AWS Identity and Access Management (IAM), vous devez disposer des autorisationsappropriées pour accéder à AWS DMS. Pour plus d'informations sur les autorisations requises,consultez Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Sur la page Dashboard, choisissez Tasks.3. Choisissez Créer tâche.4. Entrez les informations sur la tâche, notamment Task name, Replication instance, Source endpoint,

Target endpoint et Migration type. Choisissez Guided dans la section Table mappings (Mappages detable).

Version de l'API API Version 2016-01-01363

Page 371: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de transformations

par mappage de table à partir de la console

5. Dans la section Table mapping, choisissez le nom de schéma et le nom de table. Vous pouvez utiliserle signe « % » comme caractère générique lorsque vous spécifiez le nom de table. Spécifiez l'action àexécuter pour inclure ou exclure les données définies par le filtre.

Version de l'API API Version 2016-01-01364

Page 372: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de transformations

par mappage de table à partir de la console

6. Spécifiez des informations de filtre à l'aide des liens Add column filter (Ajouter un filtre de colonne) etAjouter une condition.

a. Choisissez Add column filter pour spécifier une colonne et des conditions.b. Choisissez Ajouter une condition pour ajouter des conditions supplémentaires.

L'exemple suivant montre un filtre pour la table Customers qui inclut les AgencyIDs entre 01 et 85.

Version de l'API API Version 2016-01-01365

Page 373: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de transformations

par mappage de table à partir de la console

7. Lorsque vous avez créé les sélections voulues, choisissez Add selection rule (Ajouter une règle desélection).

8. Une fois que vous avez créé au moins une règle de sélection, vous pouvez ajouter une transformationà la tâche. Choisissez Add transformation rule (Ajouter une règle de transformation).

9. Choisissez la cible que vous souhaitez transformer et saisissez les informations supplémentairesrequises. L'exemple suivant montre une transformation qui supprime la colonne AgencyStatus de latable Customer.

Version de l'API API Version 2016-01-01366

Page 374: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de transformations

par mappage de table à partir de la console

10. Choisissez Add transformation rule.11. (Facultatif) Ajoutez des règles de sélection ou des transformations supplémentaires en choisissant

Add selection rule (Ajouter une règle de sélection) ou Add transformation rule (Ajouter une règle detransformation). Lorsque vous avez terminé, sélectionnez Create task.

Version de l'API API Version 2016-01-01367

Page 375: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Spécification d'une sélection de table et detransformations par mappage de table à l'aide deJSONVous pouvez créer des mappages de table au format JSON. Si vous créez une tâche de migration à l'aided'AWS DMS Management Console, vous pouvez entrer le JSON directement dans la zone mapping detable. Si vous utilisez l'interface de ligne de commande ou l'API pour effectuer les migrations, vous pouvezcréer un fichier JSON pour spécifier les mappages de table à appliquer lors de la migration.

Vous pouvez spécifier les tables, les vues et les schémas que vous souhaitez utiliser. Vous pouvezégalement effectuer des transformations de tables, de vues et de schémas, et spécifier des paramètresdéfinissant la façon dont AWS DMS charge des tables et des vues individuelles. Vous créez des règles demappage de table pour ces options à l'aide des types de règles suivants :

• Règles selection – Identifiez les types et les noms des tables, des vues et des schémas source àcharger. Pour de plus amples informations, veuillez consulter Règles et actions de sélection (p. 369).

• Règles transformation – Spécifiez certaines modifications ou certains ajouts apportés à des tables etdes schémas source particuliers dans la source avant qu'ils ne soient chargés dans la cible. Pour de plusamples informations, veuillez consulter Règles et actions de transformation (p. 373).

• Règles table-settings – Spécifiez la façon dont les tâches DMS chargent les données des tablesindividuelles. Pour plus d'informations, consultez Règles table-settings et opérations (p. 382).

Note

Pour les cibles Amazon S3, vous pouvez aussi baliser les objets S3 mappés sur des tables et desschémas sélectionnés à l'aide du type de règle post-processing et de l'action de règle add-tag. Pour plus d'informations, consultez Balisage d'objet Amazon S3 (p. 246).

Version de l'API API Version 2016-01-01368

Page 376: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Règles et actions de sélectionLe mappage de tables vous permet de spécifier les tables, vues ou schémas que vous voulez utiliser grâceaux actions et règles de sélection. Pour les règles de mappage de tables qui utilisent le type de règle desélection, vous pouvez appliquer les valeurs suivantes :

Paramètre Valeurs possibles Description

rule-type selection Règle de sélection. Définissez au moinsune règle de sélection lorsque vousspécifiez un mapping de table.

rule-id Valeur numérique. Valeur numérique unique pour identifierla règle.

rule-name Valeur alphanumérique. Nom unique pour identifier la règle.

rule-action include, exclude, explicit Valeur qui inclut ou exclut le ou lesobjets sélectionnés par la règle. Siexplicit est spécifié, vous pouvezsélectionner et inclure un seul objetcorrespondant à une table et un schémaexplicitement spécifiés.

object-locator Objet avec les paramètres suivants :

• schema-name – Nom du schéma.• table-name – Nom de la table.• (Facultatif) table-type – table| view | all, pour indiquersi table-name fait uniquementréférence aux tables, aux vues ou auxdeux à la fois. La valeur par défaut esttable.

AWS DMS charge les vuesuniquement dans une tâche dechargement complet. Si vous n'avezque des tâches de chargementcomplet et de capture des donnéesmodifiées (CDC), configurez au moinsune tâche de chargement completuniquement pour charger vos vues.

Nom de chaque schéma et dechaque table ou vue auxquels la règles'applique. Vous pouvez égalementspécifier si une règle inclut uniquementdes tables, uniquement des vues ouà la fois des tables et des vues. Sirule-action a pour valeur includeou exclude, vous pouvez utiliserle signe « % » comme caractèregénérique pour tout ou partie de lavaleur des paramètres schema-name ettable-name. Ainsi, vous pouvez fairecorrespondre ces éléments :

• Une table ou une vue unique dans unseul schéma

• Une table ou une vue unique danstout ou partie des schémas

• Certaines tables ou vues, ou toutesles tables et vues, dans un seulschéma

• Certaines tables ou vues, ou toutesles tables et vues, dans tout ou partiedes schémas

Si rule-action a pour valeurexplicit, vous pouvez uniquementspécifier le nom exact d'une table oud'une vue unique et de son schéma(sans caractères génériques).Les sources prises en charge pour lesvues sont les suivantes :

Version de l'API API Version 2016-01-01369

Page 377: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Paramètre Valeurs possibles Description• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• IBM Db2 LUW• SAP Adaptive Server Enterprise

(ASE)

Note

AWS DMS ne charge jamaisune vue source dans unevue cible. Une vue sourceest chargée dans une tableéquivalente de la cible avec lemême nom que la vue dans lasource.

load-order Nombre entier positif. La valeurmaximale est 2 147 483 647.

Priorité pour le chargement des tableset des vues. Les tables et les vues avecdes valeurs plus élevées sont chargéesen premier.

filters Tableau d'objets. Un ou plusieurs objets pour filtrer lasource. Vous spécifiez des paramètresd'objet pour filtrer sur une seule colonnede la source. Vous spécifiez plusieursobjets pour filtrer sur plusieurs colonnes.Pour plus d'informations, consultezUtilisation de filtres de source (p. 402).

Example Migrer toutes les tables dans un schéma

L'exemple suivant migre toutes les tables d'un schéma nommé Test de la source vers votre point determinaison cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" } ]}

Version de l'API API Version 2016-01-01370

Page 378: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Example Migrer certaines tables d'un schéma

L'exemple suivant migre toutes les tables, sauf celles commençant par DMS, d'un schéma nommé Test dela source vers votre point de terminaison cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "DMS%" }, "rule-action": "exclude" } ]}

Example Migration d'une table unique spécifiée dans un schéma unique

L'exemple suivant migre la table Customer du schéma NewCust de votre source vers votre point determinaison cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "NewCust", "table-name": "Customer" }, "rule-action": "explicit" } ]}

Note

Vous pouvez explicitement procéder à une sélection dans plusieurs tables et schémas enspécifiant plusieurs règles de sélection.

Example Migration des tables dans un ordre défini

L'exemple suivant migre deux tables. La table loadfirst (de priorité 2) est migrée avant latable loadsecond.

{

Version de l'API API Version 2016-01-01371

Page 379: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "loadfirst" }, "rule-action": "include", "load-order": "2" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "loadsecond" }, "rule-action": "include", "load-order": "1" } ] }

Example Migrer certaines vues d'un schéma

L'exemple suivant migre certaines vues d'un schéma nommé Test de votre source vers des tableséquivalentes dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "view_DMS%", "table-type": "view" }, "rule-action": "include" } ]}

Example Migrer toutes les tables et vues d'un schéma

L'exemple suivant migre toutes les tables et vues d'un schéma nommé report de votre source vers destables équivalentes dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "report", "table-name": "%", "table-type": "all" },

Version de l'API API Version 2016-01-01372

Page 380: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rule-action": "include" } ]}

Règles et actions de transformationLes actions de transformation permettent de spécifier les transformations que vous souhaitez appliquer auschéma, à la table ou à la vue sélectionné(e). Les règles de transformation sont facultatives.

Pour les règles de mappage de tables qui utilisent le type de règle de transformation, vous pouvezappliquer les valeurs suivantes :

Paramètre Valeurs possibles Description

rule-type transformation Valeur qui applique la règle à chaqueobjet spécifié par la règle de sélection.Utilisez, transformation saufindication contraire.

rule-id Valeur numérique. Valeur numérique unique pour identifierla règle.

rule-name Valeur alphanumérique. Nom unique pour identifier la règle.

object-locator Objet avec les paramètres suivants :

• schema-name – Nom du schéma.• table-name – Nom de la table ou de

la vue.• table-tablespace-name – Nom

d'un espace de table de table existant• index-tablespace-name – Nom

d'un espace de table d'index existant• column-name – Nom d'un domaine

existant.

Nom de chaque schéma, table ou vue,espace de table,espace de table d'indexet colonne auxquels la règle s'applique.Vous pouvez utiliser le signe « % »comme caractère générique pour tout oupartie de la valeur de chaque paramètreobject-locator. Ainsi, vous pouvezfaire correspondre ces éléments :

• Une table ou une vue unique dans unseul schéma

• Une table ou une vue unique danstout ou partie des schémas

• Certaines tables ou vues, ou toutesles tables et vues, dans un seulschéma

• Certaines tables ou vues, ou toutesles tables et vues, dans tout ou partiedes schémas

En outre, les paramètres index-tablespace-name ou table-tablespace-name sont disponiblesuniquement pour correspondre à unpoint de terminaison source Oracle.Vous pouvez spécifier table-tablespace-name ou index-tablespace-name dans une règle,mais pas les deux. Vous pouvez doncétablir une correspondance avec un deséléments suivants :

Version de l'API API Version 2016-01-01373

Page 381: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Paramètre Valeurs possibles Description• Un, plusieurs ou tous les espaces de

table de table• Un, plusieurs ou tous les espaces de

table d'index

rule-action rename

remove-column

convert-lowercase, convert-uppercase

add-prefix, remove-prefix,replace-prefix

add-suffix, remove-suffix,replace-suffix

define-primary-key

change-data-type

Transformation à appliquer à l'objet.Toutes les actions de règle detransformation sont sensibles à la casse.

La valeur change-data-typepour rule-action est uniquementdisponible pour les cibles de règlecolumn.

rule-target schema, table, column, table-tablespace, index-tablespace

Type d'objet que vous transformez.

La valeur table-tablespace ouindex-tablespace est disponibleuniquement pour un point determinaison cible Oracle. De plus, vousdevez spécifier la valeur qui correspondau paramètre correspondant que vousspécifiez pour object-locator :table-tablespace-name ou index-tablespace-name.

value Valeur alphanumérique qui suit lesrègles de dénomination pour le type decible.

Nouvelle valeur pour les actions quinécessitent une entrée, par exemplerename.

old-value Valeur alphanumérique qui suit lesrègles de dénomination pour le type decible.

Ancienne valeur pour les actions qui ontbesoin d'être remplacées, par exemplereplace-prefix.

Version de l'API API Version 2016-01-01374

Page 382: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

Paramètre Valeurs possibles Description

data-type type – Type de données à utiliser.

Il peut aussi s'agir du nom du type dedonnées existant à remplacer lorsquela valeur pour column-name est "%" etqu'un paramètre data-type est inclusdans object-locator.

AWS DMS prend en charge lestransformations de type de donnéesde colonne pour les types de donnéesDMS suivants : "bytes", "date","time", "datetime", "int1","int2", "int4", "int8","numeric", "real4", "real8","string", "uint1", "uint2","uint4", "uint8", "wstrin,"blob", "nclob", "clob","boolean", "set", "list""map", "tuple"

Voici un exemple de paramètre data-type inclus dans object-locatorlorsque la valeur de column-name est"%" :

. . ."object-locator": { "schema-name": "dbo", "table-name": "dms", "column-name": "%", "data-type": "int2"},"data-type": { "type": "int8" }

primary-key-def

Objet avec les paramètres suivants :

• name – Nom d'une nouvelle cléprimaire ou d'un index unique pour latable ou la vue.

• (Facultatif) origin – type de cléunique pour définir primary-key(valeur par défaut) ou unique-index.

• columns – Tableau de chaînesrépertoriant les noms de colonneselon l'ordre dans lequel ilsapparaissent dans la clé primaire oudans l'index unique.

Ce paramètre peut définir le nom, le typeet le contenu d'une clé unique dans latable ou la vue transformée. C'est le caslorsque l'action de la règle est définie surdefine-primary-key et que la ciblede la règle est définie sur table. Pardéfaut, la clé unique est définie en tantque clé primaire.

Example Renommer un schéma

L'exemple suivant renomme un schéma Test de votre source en Test1 dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2",

Version de l'API API Version 2016-01-01375

Page 383: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "Test" }, "value": "Test1" } ]}

Example Renommer une table

L'exemple suivant renomme une table Actor de votre source en Actor1 dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table", "object-locator": { "schema-name": "Test", "table-name": "Actor" }, "value": "Actor1" } ]}

Example Renommer une colonne

L'exemple suivant renomme une colonne de la table Actor en remplaçant first_name dans votre sourcepar fname dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "4", "rule-name": "4", "rule-action": "rename",

Version de l'API API Version 2016-01-01376

Page 384: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name" : "first_name" }, "value": "fname" } ]}

Example Renommer un espace de table de table Oracle

L'exemple suivant renomme l'espace de table de table nommé SetSpace d'une table nommée Actordans votre source Oracle en SceneTblSpace dans votre point de terminaison cible Oracle.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name: "SetSpace" }, "value": "SceneTblSpace" } ]}

Example Renommer un espace de table d'index Oracle

L'exemple suivant renomme l'espace de table d'index nommé SetISpace d'une table nommée Actordans votre source Oracle en SceneIdxSpace dans votre point de terminaison cible Oracle.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, {

Version de l'API API Version 2016-01-01377

Page 385: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name: "SetISpace" }, "value": "SceneIdxSpace" } ]}

Example Supprimer une colonne

L'exemple suivant transforme la table nommée Actor dans votre source pour en supprimer toutes lescolonnes commençant par les caractères col dans votre cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }

Example Convertir en minuscules

L'exemple suivant convertit un nom de table ACTOR dans votre source en actor dans votre cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-lowercase",

Version de l'API API Version 2016-01-01378

Page 386: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "ACTOR" } }]}

Example Convertir en majuscules

L'exemple suivant convertit toutes les colonnes de toutes les tables et tous les schémas en les faisantpasser de lettres minuscules dans votre source à des lettres majuscules dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ]}

Example Ajouter un préfixe

L'exemple suivant transforme toutes les tables de votre source en leur ajoutant le préfixe DMS_ dans votrecible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "test",

Version de l'API API Version 2016-01-01379

Page 387: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"table-name": "%" }, "value": "DMS_" }] }

Example Remplacer un préfixe

L'exemple suivant transforme toutes les colonnes contenant le préfixe Pre_ dans votre source enremplaçant le préfixe par NewPre_ dans votre cible.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "replace-prefix", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" }, "value": "NewPre_", "old-value": "Pre_" } ]}

Example Supprimer un suffixe

L'exemple suivant transforme toutes les tables de votre source en leur supprimant le suffixe _DMS dansvotre cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": {

Version de l'API API Version 2016-01-01380

Page 388: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSpécification d'une sélection de table et de

transformations par mappage de table à l'aide de JSON

"schema-name": "test", "table-name": "%" }, "value": "_DMS" }]}

Example Définir une clé primaire

L'exemple suivant définit une clé primaire nommée ITEM-primary-key sur trois colonnes de la tableITEM migrée vers votre point de terminaison cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": ITEM-primary-key, "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }]}

Example Définir un index unique

L'exemple suivant définit un index unique nommé ITEM-unique-idx sur trois colonnes de la table ITEMmigrée vers votre point de terminaison cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key",

Version de l'API API Version 2016-01-01381

Page 389: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

"rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": ITEM-unique-idx, "origin": unique-index, "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }]}

Example Modification du type de données de la colonne cible

L'exemple suivant remplace le type de données d'une colonne cible nommée SALE_AMOUNT à partir d'untype de données existant par int8.

{ "rule-type": "transformation", "rule-id": "1", "rule-name": "RuleName 1", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "dbo", "table-name": "dms", "column-name": "SALE_AMOUNT" }, "data-type": { "type": "int8" }}

Règles table-settings et opérationsVous utilisez les paramètres de table pour spécifier les paramètres que vous souhaitez appliquer à la tableou à la vue sélectionnée pour une opération spécifiée. Les règles table-settings sont facultatives.

Pour les règles de mappage de tables qui utilisent le type de règle des paramètres de table (table-settings),vous pouvez appliquer les paramètres suivants.

Paramètre Valeurs possibles Description

rule-type table-settings Valeur qui applique la règle à latable ou une vue spécifiée par larègle de sélection.

rule-id Valeur numérique. Valeur numérique unique pouridentifier la règle.

rule-name Valeur alphanumérique. Nom unique pour identifier larègle.

object-locator Objet avec les paramètressuivants :

Nom d’un schéma et d’une tableou d'une vue spécifiques (les

Version de l'API API Version 2016-01-01382

Page 390: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description• schema-name – Nom du

schéma.• table-name – Nom de la

table ou de la vue.

caractères génériques ne sontpas autorisés).

Version de l'API API Version 2016-01-01383

Page 391: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description

parallel-load Objet avec les paramètressuivants :

• type – Spécifie si lechargement parallèle estactivé. Si c'est le cas, ceparamètre spécifie égalementle mécanisme permettantd'identifier les partitions detable ou de vue, les sous-partitions ou d'autres segmentsà charger en parallèle. Lespartitions sont des segmentsqui sont déjà définis etidentifiés par le nom dans latable ou la vue source. Pourles points de terminaisonOracle uniquement, lessous-partitions sont unniveau supplémentaire desegments qui sont déjàdéfinis et identifiés par lenom dans la table ou la vuesource. Vous pouvez identifierd'autres segments dans larègle table-settings enspécifiant des limites dans laplage de valeurs pour une ouplusieurs colonnes de la tableou de la vue.

• partitions – Quand typeest partitions-list,cette valeur spécifie toutesles partitions à charger enparallèle.

• subpartitions – Pour lespoints de terminaison Oracleuniquement, lorsque typeest partitions-list cettevaleur spécifie toutes lessous-partitions à charger enparallèle.

• columns– Quand type estranges, cette valeur spécifieles noms des colonnes utiliséspour identifier les segmentsbasés sur une plage à chargeren parallèle.

• boundaries – Lorsquetype est ranges, cettevaleur spécifie les valeursdes columns utilisées pouridentifier les segments basés

Spécifie une opérationde chargement parallèle(multithread) dans la table oula vue identifiée par l'optionobject-locator. Dans ce cas,vous pouvez charger en parallèleselon l'une de ces méthodes :

• À l'aide des segments spécifiéspar toutes les partitions ousous-partitions disponibles.

• À l'aide des partitions et sous-partitions sélectionnées.

• À l'aide des segments baséssur une plage que vousspécifiez.

Pour plus d'informations surla charge parallèle, consultezUtilisation du chargementparallèle pour les tables et vuessélectionnées (p. 390).

Version de l'API API Version 2016-01-01384

Page 392: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Descriptionsur une plage à charger enparallèle.

Version de l'API API Version 2016-01-01385

Page 393: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description

type L’une des options suivantes pourparallel-load :

• partitions-auto – Toutesles partitions de la table oude la vue sont chargées enparallèle. Chaque partition estallouée à son propre thread.

• subpartitions-auto –(points de terminaison Oracleuniquement) Toutes les sous-partitions de la table ou de lavue sont chargées en parallèle.Chaque sous-partition estallouée à son propre thread.

• partitions-list – Toutesles partitions spécifiées dela table ou de la vue sontchargées en parallèle. Pourles points de terminaisonOracle uniquement, toutesles sous-partitions spécifiéesde la table ou de la vue sontchargées en parallèle. Chaquepartition et sous-partition quevous spécifiez sont allouéesà son propre thread. Vousidentifiez les partitions et lessous-partitions à chargeren parallèle par noms departition (partitions)et noms de sous-partition(subpartitions).

• ranges – Tous les segmentsspécifiés de la table oude la vue sont chargés enparallèle. Chaque segmentde table ou de vue que vousidentifiez est alloué à sonpropre thread. Vous spécifiezces segments par noms decolonne (columns) et valeursde colonne (boundaries).

• none – La table ou la vueest chargée dans une tâcheà thread unique (valeur pardéfaut), quelles que soient sespartitions ou sous-partitions.Pour plus d'informations,consultez Création d'unetâche (p. 323).

Mécanisme pour identifier lespartitions de table ou de vue, lessous-partitions ou les segments àcharger en parallèle.

Version de l'API API Version 2016-01-01386

Page 394: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description

Note

PostgreSQL en tantque source ne prenden charge que ce typede charge parallèle.

partitions Lorsque type est partitions-list, il s’agit d’un tableau dechaînes qui spécifient les nomsdes partitions à charger enparallèle.

Noms des partitions à charger enparallèle.

subpartitions (Points de terminaison Oracleuniquement) Lorsque type estpartitions-list, il s’agit d’untableau de chaînes qui spécifientles noms des sous-partitions àcharger en parallèle.

Noms des sous-partitions àcharger en parallèle.

columns Lorsque type a pour valeurranges, tableau de chaînesdéfinies sur les noms descolonnes utilisées pour identifierles segments de table ou de vuebasés sur une plage qui sontchargés en parallèle.

Spécifie les noms de colonneutilisés pour identifier lessegments de table ou de vuebasés sur une plage à charger enparallèle.

boundaries Lorsque type est ranges,tableau de tableaux de valeursde colonne. Chaque tableaude valeurs de colonne contientdes valeurs de colonne dansla quantité et l'ordre spécifiéspar columns. Un tableau devaleurs de colonne spécifie lalimite supérieure d'un segmentde table ou de vue. Chaquetableau de valeurs de colonnesupplémentaire ajoute la limitesupérieure pour un segment detable ou de vue supplémentaire.Tous ces segments de table oude vue basés sur une plage sontchargés en parallèle.

Valeurs de colonne qui identifientles partitions de table ou de vuebasées sur une plage à chargeren parallèle.

Version de l'API API Version 2016-01-01387

Page 395: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description

lob-settings Objet avec les paramètressuivants :

• mode – Spécifie le mode degestion de migration des LOB.

• bulk-max-size – Spécifie lataille maximale des élémentsde données LOB, en fonctiondu paramètre mode.

Valeur qui spécifie la gestionLOB pour la table ou la vueidentifiée par l'option object-locator. La tâche de gestionLOB spécifiée remplace tousles paramètres de tâcheLOB de cette table ou decette vue uniquement. Pourplus d'informations sur lesparamètres LOB, consultezSpécification des paramètresLOB pour une table ou une vuesélectionnée (p. 394).

Version de l'API API Version 2016-01-01388

Page 396: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles Description

mode Spécifie le traitement demigration des LOB dans la tableou la vue sélectionnée à l'aidedes valeurs suivantes :

• limited – (Par défaut) Cettevaleur définit la migration enmode LOB limité, avec tousles LOB migrés en ligne, ainsique tous les autres typesde données des colonnesde la table ou de la vue.Utilisez cette valeur lors dela réplication des LOB depetite taille (100 Mo ou moins).Spécifiez également unevaleur bulk-max-size (zéron'est pas valide). Tous lesLOB ayant migré supérieursà bulk-max-size sonttronqués à la taille que vousdéfinissez.

• unlimited – Cette valeurdéfinit la migration en modeLOB complet. Utilisez cettevaleur lorsque la totalité ou lamajorité des LOB que voussouhaitez répliquer ont unetaille supérieure à 1 Go. Sivous spécifiez une valeurbulk-max-size égale à zéro,tous les LOB sont migrés enmode LOB complet standard.Dans cette forme de modeunlimited, tous les LOBsont migrés séparément àpartir des autres types dedonnées de colonne à l'aided'une recherche dans latable ou la vue source. Sivous spécifiez une valeurbulk-max-size supérieureà zéro, tous les LOB sontmigrés en mode LOB completcombinaison. Dans cette formede mode unlimited, lesLOB supérieurs à bulk-max-size sont migrés à l'aide d'unerecherche dans la table oula vue source, similaire aumode LOB complet standard.Sinon, les LOB inférieursou égaux à cette taille sontmigrés en ligne, comme dansle mode LOB limité. Aucun

Spécifie le mécanisme utilisépour migrer les LOB.

Version de l'API API Version 2016-01-01389

Page 397: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Paramètre Valeurs possibles DescriptionLOB est jamais tronqué enmode unlimited, quelle quesoit la forme que vous utilisez.

• none – Tous les LOB de tableou de vue sont migrés selonles paramètres LOB de tâche.

Pour plus d'informations surles paramètres LOB de tâche,consultez Paramètres demetadonnées des tâchescibles (p. 334).

Pour plus d'informations surla manière de migrer les LOBet sur la façon de spécifier lesparamètres LOB de tâche,consultez Définition de la priseen charge LOB pour les basesde données source dans unetâche AWS DMS (p. 352).

bulk-max-size L'effet de cette valeur dépend dumode.

Spécifie la taille maximaledes LOB en kilo-octets parincréments. Spécifiez cette optionuniquement si vous avez besoinde répliquer des LOB de petitetaille ou si le point de terminaisoncible ne prend pas en charge lataille de LOB illimitée.

Utilisation du chargement parallèle pour les tables et vuessélectionnéesPour accélérer la migration et la rendre plus efficace, vous pouvez utiliser le chargement parallèle pour lestables et vues sélectionnées. En d'autres termes, vous pouvez migrer une seule table ou vue segmentéeen utilisant plusieurs threads en parallèle. Pour ce faire, AWS DMS fractionne une tâche de chargementcomplet en threads, avec chaque segment de table alloué à son propre thread.

À l'aide de ce processus de chargement parallèle, plusieurs threads peuvent décharger plusieurs tableset vues en parallèle à partir du point de terminaison source. Ensuite, plusieurs threads peuvent migrer etcharger les mêmes tables et vues en parallèle vers le point de terminaison cible. Pour certains moteurs debase de données, vous pouvez segmenter les tables et vues par partitions ou sous-partitions existantes.Sinon, vous pouvez segmenter n'importe quelle table ou vue par des plages de valeurs de colonne quevous spécifiez.

Le chargement parallèle est pris en charge pour les points de terminaison source suivants :

• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• IBM Db2

Version de l'API API Version 2016-01-01390

Page 398: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

• SAP Adaptive Server Enterprise (ASE)

La charge parallèle à utiliser avec les règles de définition de table est prise en charge pour les points determinaison cibles suivants :

• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• Amazon Redshift• SAP Adaptive Server Enterprise (ASE)

Pour spécifier le nombre maximal de tables et de vues à charger en parallèle, utilisez le paramètre detâche MaxFullLoadSubTasks. Pour spécifier le nombre maximal de threads par table ou par vuepour une tâche de chargement parallèle, utilisez le paramètre de tâche ParallelLoadThreads.Pour spécifier la taille du tampon de chargement parallèle pour une tâche, utilisez le paramètre detâche ParallelLoadBufferSize. La disponibilité et les paramètres de ParallelLoadThreadsetParallelLoadBufferSize dépendent du point de terminaison cible.

Pour plus d'informations sur les paramètres ParallelLoadThreads et ParallelLoadBufferSize,consultez Paramètres de metadonnées des tâches cibles (p. 334). Pour plus d'informations sur leparamètre MaxFullLoadSubTasks, consultez Paramètres de tâche de chargement complet (p. 336).Pour obtenir des informations spécifiques sur les points de terminaison cible, consultez les rubriquesconnexes.

Pour utiliser le chargement parallèle, créez une règle de mappage de table de type table-settingsavec l'option parallel-load. Dans la règle table-settings, vous pouvez spécifier les critèresde segmentation d'une table ou d'une vue unique que vous voulez charger en parallèle. Pour ce faire,définissez le paramètre type de l'option parallel-load sur l'une de plusieurs options. Le choix effectuédépendra de la façon dont vous souhaitez segmenter la table ou la vue pour le chargement parallèle :

• Par partitions – Chargez toutes les partitions de table ou de vue existantes à l'aide du typepartitions-auto. Ou chargez uniquement les partitions sélectionnées à l'aide du type partitions-list avec un tableau partitions spécifié.

• (Points de terminaison Oracle uniquement) Par sous-partitions – Chargez toutes les sous-partitionsde table ou de vue existantes à l'aide du type subpartitions-auto. Ou chargez uniquement lessous-partitions sélectionnées en utilisant le type partitions-list avec un tableau subpartitionsspécifié.

• Par segments que vous définissez – Chargez les segments de table ou de vue que vous définissez àl'aide des limites colonne-valeur. Pour ce faire, utilisez le type ranges avec les tableaux columns etboundaries spécifiés.

Note

PostgreSQL en tant que source ne prend en charge que ce type de charge parallèle.

Pour identifier les tables ou vues supplémentaires à charger en parallèle, spécifiez les objets table-settings supplémentaires avec les options parallel-load.

Les procédures suivantes décrivent comment coder le JSON pour chaque type de chargement parallèle, duplus simple au plus complexe.

Version de l'API API Version 2016-01-01391

Page 399: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Pour spécifier toutes les partitions de table ou de vue, ou toutes les sous-partitions de table ou devue

• Spécifiez parallel-load avec le type partitions-auto ou le type subpartitions-auto (maispas les deux).

Chaque partition ou sous-partition de table ou de vue est alors allouée automatiquement à son proprethread.

Note

Le chargement parallèle comporte des partitions ou sous-partitions uniquement si elles sontdéjà définies pour la table ou la vue.

Pour spécifier des partitions ou des sous-partitions de table ou de vue sélectionnées, ou les deux

1. Spécifiez parallel-load avec le type partitions-list.2. (Facultatif) Incluez les partitions en spécifiant une liste de noms de partitions comme valeur de

partitions.

Chaque partition spécifiée est alors allouée à son propre thread.3. (Facultatif, pour les points de terminaison Oracle uniquement) Incluez les sous-partitions en définissant

un tableau de noms de sous-partitions comme valeur de subpartitions.

Chaque sous-partition spécifiée est alors allouée à son propre thread.

Note

Le chargement parallèle comporte des partitions ou sous-partitions uniquement si elles sontdéjà définies pour la table ou la vue.

Vous pouvez spécifier des segments de table ou de vue en tant que plages de valeurs de colonne. Lorsquevous procédez ainsi, vous devez être conscient de ces caractéristiques de la colonne :

• La spécification de colonnes indexées améliore considérablement les performances.• Vous pouvez spécifier jusqu'à 10 colonnes.• Vous ne pouvez pas utiliser de colonnes pour définir les frontières de segment avec les types de

données AWS DMS suivants : DOUBLE, FLOAT, BLOB, CLOB et NCLOB• Les enregistrements avec des valeurs null ne sont pas répliqués.

Pour spécifier des segments de table ou de vue en tant que plages de valeurs de colonne

1. Spécifiez parallel-load avec le type ranges.2. Définissez une limite entre les segments de table ou de vue en spécifiant une liste de noms de colonne

comme valeur de columns. Faites la même chose pour chaque colonne pour laquelle vous souhaitezdéfinir une limite entre les segments de table ou de vue.

Notez que l'ordre des colonnes est significatif. Ici, la première colonne est la plus significative et ladernière colonne est la moins significative pour la définition de chaque limite, comme décrit ci-après.

3. Pour définir les plages de données pour tous les segments de table ou de vue, spécifiez un tableau delimites comme valeur pour boundaries. Un tableau de limites est un tableau de tableaux de valeursde colonne. Pour ce faire, effectuez les étapes suivantes :

a. Spécifiez chaque élément d'un tableau de valeurs de colonne comme valeur qui correspond àchaque colonne. Un tableau de valeurs de colonne représente la limite supérieure de chaque

Version de l'API API Version 2016-01-01392

Page 400: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

segment de table ou de vue que vous souhaitez définir. Spécifiez chaque colonne dans le mêmeordre que celui où vous avez spécifié cette colonne dans le tableau columns.

Note

Entrez les valeurs des colonnes DATE au format pris en charge par la source.b. Spécifiez chaque tableau de valeurs de colonne comme limite supérieure, dans l'ordre, de bas

en haut de chaque segment vers le segment suivant de la table ou de la vue. S'il existe deslignes au-dessus de la limite supérieure que vous spécifiez, ces lignes complètent le segmentsupérieur de la table ou de la vue. Par conséquent, le nombre de segments basés sur une plageest potentiellement supérieur au nombre de limites de segment dans le tableau de limites. Chaquesegment basé sur une plage de ce type est alloué à son propre thread.

Note

Toutes les données non null sont répliquées, même si vous ne définissez pas de plagesde données pour toutes les colonnes de la table ou de la vue.

Par exemple, supposons que vous définissez trois tableaux de valeurs de colonne pour les colonnesCOL1, COL2 et COL3 comme suit.

COL1 COL2 COL3

10 30 105

20 20 120

100 12 99

Vous avez défini trois limites de segment pour un total possible de quatre segments.

Pour identifier les plages de lignes à répliquer pour chaque segment, l'instance de réplication appliqueune recherche à ces trois colonnes pour chacun des quatre segments : La recherche est similaire à cequi suit :

Segment 1

Répliquez toutes les lignes où les conditions suivantes sont réunies : les valeurs des deuxpremières colonnes sont inférieures ou égales aux valeurs de limite supérieure de segment 1correspondantes. En outre, les valeurs de la troisième colonne sont inférieures aux valeurs delimite supérieure de segment 1.

Segment 2

Répliquez toutes les lignes (sauf les lignes segment 1) où les conditions suivantes sont réunies :les valeurs des deux premières colonnes sont inférieures ou égales aux valeurs de limitesupérieure de segment 2 correspondantes. En outre, les valeurs de la troisième colonne sontinférieures aux valeurs de limite supérieure de segment 2.

Segment 3

Répliquez toutes les lignes (sauf les lignes segment 2) où les conditions suivantes sont réunies :les valeurs des deux premières colonnes sont inférieures ou égales aux valeurs de limitesupérieure de segment 3 correspondantes. En outre, les valeurs de la troisième colonne sontinférieures aux valeurs de limite supérieure de segment 3 .

Segment 4

Répliquer toutes les lignes restantes (sauf les lignes de Segment 1, 2 et 3).Version de l'API API Version 2016-01-01393

Page 401: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Dans ce cas, l'instance de réplication crée une clause WHERE pour charger chaque segment commesuit :

Segment 1

((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2= 30) AND (COL3 < 105)))

Segment 2

NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND(COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND(COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))

Segment 3

NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND(COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND(COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))

Segment 4

NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND(COL2 = 12) AND (COL3 < 99)))

Spécification des paramètres LOB pour une table ou une vuesélectionnéeVous pouvez définir des paramètres LOB de tâche pour une ou plusieurs tables en créant une règle demappage de table de type table-settings avec l'option lob-settings pour un ou plusieurs objetstable-settings.

La spécification des paramètres LOB pour les tables ou vues sélectionnées est prise en charge pour lespoints de terminaison source suivants :

• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• IBM Db2, selon les paramètres mode et bulk-max-size, décrits ci-après• SAP Adaptive Server Enterprise (ASE), selon les paramètres mode et bulk-max-size, comme décrit

ci-après.

La spécification des paramètres LOB pour les tables ou vues sélectionnées est prise en charge pour lespoints de terminaison cible suivants :

• Oracle• Microsoft SQL Server• MySQL• PostgreSQL• SAP ASE, selon les paramètres mode et bulk-max-size, comme décrit ci-après.

Version de l'API API Version 2016-01-01394

Page 402: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Note

Vous ne pouvez utiliser les types de données LOB qu'avec les tables et les vues qui incluent uneclé primaire.

Pour utiliser des paramètres LOB pour une table ou une vue sélectionnée, créez une règle de mappage detable de type table-settings avec l'option lob-settings. Cette option indique le traitement des LOBpour la table ou la vue identifiée par l'option object-locator. Dans la règle table-settings, vouspouvez spécifier un objet lob-settings avec les paramètres suivants :

• mode – Spécifie le mécanisme de traitement de la migration des LOB pour la table ou la vue sélectionnéecomme suit :• limited – Le mode LOB limité par défaut est le plus rapide et le plus efficace. Utilisez ce mode

uniquement si tous vos LOB sont petits (moins de 100 Mo) ou si le point de terminaison cible ne prendpas en charge une taille de LOB illimitée. De plus, si vous utilisez limited, tous les LOB doivent setrouver dans la limite de taille que vous avez définie pour bulk-max-size.

Dans ce mode, pour une tâche de chargement complet, l'instance de réplication migre tous les LOBen ligne avec les autres types de données de colonne dans le cadre d'un stockage de table ou de vueprincipal. Toutefois, l'instance tronque les LOB supérieurs à votre valeur bulk-max-size à la taillespécifiée. Pour un chargement de capture des données modifiées (CDC), l'instance migre tous lesLOB à l'aide d'une recherche de table source, quelle que soit la taille des LOB, comme dans le modeLOB complet standard. Il procède ainsi quelle que soit la taille du LOB.

Note

Vous ne pouvez migrer des vues que pour les tâches de chargement complet.• unlimited – Le mécanisme de migration pour ce mode LOB complet dépend de la valeur que vous

définissez pour bulk-max-size comme suit :• Mode LOB complet standard – Lorsque vous définissez bulk-max-size sur zéro, l'instance de

réplication migre tous les LOB à l'aide du mode LOB complet standard. Ce mode nécessite unerecherche dans la table ou la vue source afin de migrer tous les LOB, quelle que soit leur taille. Celaentraîne généralement une migration un peu plus lente que pour le mode LOB limité. Utilisez cemode uniquement si la totalité ou la plupart de vos LOB sont volumineux (1 Go ou plus).

• Mode LOB complet avec combinaison – Lorsque vous définissez bulk-max-size sur une valeurdifférente de zéro, ce mode LOB complet utilise une combinaison du mode LOB limité et du modeLOB complet standard. En d'autres termes, si une taille de LOB est incluse dans votre valeur bulk-max-size, l'instance migre le LOB en ligne comme dans le mode LOB limité. Si la taille de LOB estsupérieure à cette valeur, l’instance migre le LOB à l'aide d'une recherche dans la table ou la vuesource comme dans le mode LOB complet standard. Pour un chargement de capture des donnéesmodifiées (CDC), l'instance migre tous les LOB à l'aide d'une recherche de table source, quelle quesoit la taille des LOB, comme dans le mode LOB complet standard. Il procède ainsi quelle que soit lataille du LOB.

Note

Vous ne pouvez migrer des vues que pour les tâches de chargement complet.

Ce mode entraîne une vitesse de migration constituant un compromis entre le mode LOB limité plusrapide et le mode LOB complet standard plus lent. Utilisez ce mode uniquement lorsque vous avezune combinaison de LOB de petites et grandes tailles et que la plupart des LOB sont petits.

Ce mode LOB complet avec combinaison n'est disponible que pour les points de terminaisonsuivants :• IBM Db2 en tant que source• SAP ASE comme source ou cible

Version de l'API API Version 2016-01-01395

Page 403: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Quelle que soit la façon dont vous spécifiez le mode unlimited, l'instance migre tous les LOBentièrement, sans troncature.

• none – L'instance de réplication migre les LOB de la table ou la vue sélectionnée à l'aide de vosparamètres LOB de tâche. Vous pouvez utiliser cette option pour comparer les résultats de la migrationavec et sans paramètres LOB pour la table ou la vue sélectionnée.

Si la table ou la vue spécifiée a des LOB inclus dans la réplication, vous ne pouvez définir le paramètrede tâche BatchApplyEnabled sur true qu'en cas d'utilisation du mode LOB limited.

Dans certains cas, il se peut que vous définissiez BatchApplyEnabled sur trueet BatchApplyPreserveTransaction sur false. Dans ce cas, l'instance définitBatchApplyPreserveTransaction sur true si la table ou la vue a des LOB et que les points determinaison source et cible sont Oracle.

• bulk-max-size – Définissez cette valeur sur zéro ou sur une valeur différente de zéro en kilo-octets,selon le mode comme décrit dans les éléments précédents. En mode limited, vous devez définir unevaleur différente de zéro pour ce paramètre.

L'instance convertit les LOB au format binaire. Par conséquent, pour spécifier le LOB de plus grandetaille que vous devez répliquer, multipliez sa taille par trois. Par exemple, si la taille du LOB le plus grandest de 2 Mo, définissez bulk-max-size sur 6 000 (6 Mo).

Exemples de paramètres de tableVous trouverez ci-dessous des exemples qui illustrent l'utilisation des paramètres de table.

Example Charger une table segmentée par partitions

L'exemple suivant charge une table SALES de votre source plus efficacement en la chargeant en parallèlesur la base de toutes ses partitions.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-auto" } } ]}

Version de l'API API Version 2016-01-01396

Page 404: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

Example Charger une table segmentée par sous-partitions

L'exemple suivant charge une table SALES dans votre source Oracle plus efficacement en la chargeant enparallèle sur la base de toutes ses sous-partitions.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "subpartitions-auto" } } ]}

Example Charger une table segmentés par une liste de partitions

L'exemple suivant charge une table SALES de votre source en la chargeant en parallèle sur la base d’uneliste de partitions particulière. Ici, les partitions spécifiées sont nommées à partir de valeurs commençantpar des parties de l'alphabet, par exemple, ABCD, EFGH, etc.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST",

Version de l'API API Version 2016-01-01397

Page 405: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

"UVWXYZ" ] } } ]}

Example Charger une table Oracle segmentée par une liste sélectionnée de partitions et sous-partitions

L'exemple suivant charge une table SALES de votre source Oracle en la chargeant en parallèle sur la based’une liste sélectionnée de partitions et sous-partitions. Ici, les partitions spécifiées sont nommées à partirde valeurs commençant par des parties de l'alphabet, par exemple, ABCD, EFGH, etc. Les sous-partitionsspécifiées sont nommés à partir de valeurs commençant par des chiffres, par exemple, 01234 et 56789.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ], "subpartitions": [ "01234", "56789" ] } } ]}

Example Charger une table segmentée par des plages de valeurs de colonne

L'exemple suivant charge une table SALES de votre source en la chargeant en parallèle par les segmentsspécifiés par les plages de valeurs de colonne SALES_NO et REGION.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1",

Version de l'API API Version 2016-01-01398

Page 406: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

"object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } } ]}

Ici, deux colonnes sont spécifiées pour les plages de segment avec les noms SALES_NO et REGION.Deux limites sont spécifiées avec deux ensembles de valeurs de colonne (["1000","NORTH"] et["3000","WEST"]).

Ces deux limites identifient donc les trois segments de table suivants à charger en parallèle :

Segment 1

Lignes avec des valeurs SALES_NO inférieures ou égales à 1 000 et REGION inférieures à « NORTH ».En d'autres termes, les chiffres de vente jusqu'à 1 000 dans la région EAST.

Segment 2

Lignes autres que Segment 1 avec des valeurs SALES_NO inférieures ou égales à 3 000 et REGIONinférieures à « WEST ». En d'autres termes, les chiffres de vente compris entre 1 000 et 3 000 dansles régions NORTH et SOUTH.

Segment 3

Toutes les lignes restantes autres que Segment 1 et Segment 2. En d'autres termes, les chiffres devente supérieurs à 3 000 dans la région WEST.

Example Charger deux tables : une segmentée par plages et une autre segmentée par partitions

L'exemple suivant charge une table SALES en parallèle par les limites de segment que vous identifiez.Il charge également une table ORDERS en parallèle par l'ensemble de ses partitions, comme avec lesexemples précédents.

{

Version de l'API API Version 2016-01-01399

Page 407: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

"rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } }, { "rule-type": "table-settings", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "HR", "table-name": "ORDERS" }, "parallel-load": { "type": "partitions-auto" } } ]}

Example Charger une table avec des LOB à l’aide du mode LOB limité

L'exemple suivant charge une table ITEMS incluant des LOB de votre source à l'aide du mode LOB limité(valeur par défaut) avec une taille maximale non tronquée de 100 Mo. Les LOB qui dépassent cette taillesont tronqués à 100 Mo. Tous les LOB sont chargés en ligne avec tous les autres types de données decolonne.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {

Version de l'API API Version 2016-01-01400

Page 408: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRègles table-settings et opérations

"schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "bulk-max-size": "100000" } } ]}

Example Charger une table avec des LOB à l’aide du mode LOB complet standard

L'exemple suivant charge une table ITEMS de votre source, y compris tous ses LOB sans troncation àl’aide du mode LOB complet standard. Tous les LOB, quelle que soit leur taille, sont chargés séparémentdes autres types de données à l'aide d'une recherche de chaque LOB dans la table source.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited" "bulk-max-size": "0" } } ]}

Example Charger une table avec des LOB à l’aide du mode LOB complet avec combinaison

L'exemple suivant charge une table ITEMS de votre source, y compris tous ses LOB sans troncation àl’aide du mode LOB complet avec combinaison Tous les LOB dont la taille est inférieure à 100 Mo sontchargés en ligne avec les autres types de données, comme dans le mode LOB limité. Tous les LOBsupérieurs à 100 Mo sont chargés séparément des autres types de données. Ce chargement distinct utiliseune recherche pour chaque LOB dans la table source, comme dans le mode LOB complet standard.

{ "rules": [{

Version de l'API API Version 2016-01-01401

Page 409: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de filtres de source

"rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited" "bulk-max-size": "100000" } } ]}

Example Charger une table avec des LOB à l'aide des paramètres LOB de tâche

L'exemple suivant charge une table ITEMS de votre source, y compris tous les LOB, à l'aide de sesparamètres LOB de tâche. Le paramètre bulk-max-size avec la valeur 100 Mo est ignoré et conservéuniquement pour une réinitialisation rapide au mode limited ou unlimited.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "none" "bulk-max-size": "100000" } } ]}

Utilisation de filtres de sourceVous pouvez utiliser des filtres de source pour limiter le nombre et le type d'enregistrements transférésde votre source vers votre cible. Par exemple, vous pouvez spécifier que seuls les employés avec un

Version de l'API API Version 2016-01-01402

Page 410: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de filtres de source

emplacement de siège sont déplacés vers la base de données cible. Les filtres font partie d'une règle desélection. Vous appliquez des filtres sur une colonne de données.

Les filtres de source doivent respecter les contraintes suivantes :

• Une règle de sélection peut avoir aucun filtre ou un ou plusieurs filtres.• Chaque filtre peut avoir une ou plusieurs conditions de filtre.• Si plusieurs filtres sont utilisés, la liste des filtres est combinée comme si elle utilisait l'opérateur AND

entre les filtres.• Si plusieurs conditions de filtre sont utilisées au sein d'un seul filtre, la liste des conditions de filtre est

combinée comme si elle utilisait un opérateur OR entre les conditions de filtre.• Les filtres sont appliqués uniquement quand rule-action = 'include'.• Filtres nécessitent un nom de colonne et une liste de conditions de filtre. Les conditions de filtre doivent

avoir un opérateur et une valeur de filtre.• Les noms de colonnes, de tables, de vues et de schémas sont sensibles à la casse.

Les limitations suivantes s'appliquent à l'utilisation des filtres de source :

• Les filtres ne calculent pas les colonnes de langues écrites de droite à gauche.• N'appliquez pas de filtre aux colonnes LOB.• Appliquez uniquement des filtres aux colonnes immuables . Sinon, lorsque des filtres source sont

appliqués à des colonnes modifiables, cela peut entraîner un comportement contraire. Par exemple :

Un filtre permettant d'exclure ou d'inclure des lignes spécifiques dans une colonne exclut ou incluttoujours les lignes spécifiées, même si les lignes sont modifiées ultérieurement. Par exemple, si vouschoisissez d'exclure ou d'inclure les lignes 1 à 10 dans la colonne A et qu'elles deviennent ultérieurementles lignes 11 à 20, elles continueront d'être exclues ou incluses même lorsque les données ne sont plusles mêmes.

De plus, lorsqu'une ligne qui se trouve en dehors de la portée du filtre est mise à jour ultérieurement (oumise à jour et supprimée) et qu'elle doit ensuite être exclue ou incluse comme défini par le filtre, elle n'estpas répliquée sur la cible.

Création de règles de filtre de source en JSONVous pouvez créer des filtres sources à l'aide du paramètre JSON filters d'une règle de sélection. Leparamètre filters spécifie un tableau d'un ou plusieurs objets JSON. Chaque objet a des paramètresqui spécifient le type de filtre source, le nom de colonne et les conditions de filtre. Ces conditions de filtrecomprennent un ou plusieurs opérateurs de filtre et des valeurs de filtre.

Le tableau suivant illustre les paramètres utilisés pour spécifier le filtrage de la source dans un objetfilters.

Paramètre Value

filter-type source

column-name Nom de la colonne source à laquelle vous voulez appliquer le filtre. Lenom est sensible à la casse.

filter-conditions Tableau d'un ou plusieurs objets contenant un paramètre filter-operator et un paramètre de valeur appropriée, en fonction de lavaleur de filter-operator.

Version de l'API API Version 2016-01-01403

Page 411: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de filtres de source

Paramètre Value

filter-operator Ce paramètre peut avoir une des valeurs suivantes :

• ste – inférieur ou égal à• gte – supérieur ou égal à• eq – égal à• between – égal à ou entre deux valeurs

value ou

start-value

end-value

Valeur du paramètre filter-operator. Si filter-operator a unevaleur autre que between, utilisez value. Si filter-operator estdéfini sur between, fournissez deux valeurs, une pour start-value etune pour end-value.

Les exemples suivants illustrent des manières courantes d'utiliser des filtres de source.

Example Filtre unique

Le filtre suivant réplique tous les employés où empid >= 100 dans la base de données cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "gte", "value": "100" }] }] }]}

Example Plusieurs opérateurs de filtre

Le filtre suivant s'applique à plusieurs opérateurs de filtre dans une seule colonne de données. Le filtreréplique tous les employés où (empid <=10) OU (empid is between 50 and 75) OU (empid >=100) dans la base de données cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" },

Version de l'API API Version 2016-01-01404

Page 412: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de filtres de source

"rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "ste", "value": "10" }, { "filter-operator": "between", "start-value": "50", "end-value": "75" }, { "filter-operator": "gte", "value": "100" }] }] }] }

Example Plusieurs filtres

Le filtre suivant applique plusieurs filtres dans deux colonnes d'une table. Le filtre réplique tous lesemployés où (empid <= 100) ET (dept= tech) dans la base de données cible.

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "ste", "value": "100" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "eq", "value": "tech" }] }] }]}

Filtrage par heure et dateLorsque vous sélectionnez les données à importer, vous pouvez spécifier une date et une heure dans voscritères de filtre. AWS DMS utilise le format de date YYYY-MM-DD et le format d'heure YYYY-MM-DDHH:MM:SS pour le filtre. Les fonctions de comparaison AWS DMS respectent les conventions SQLite. Pourplus d'informations sur les types de donnée SQLite et les comparaisons de dates, consultez Datatypes InSQLite Version 3 dans la documentation SQLite.

Version de l'API API Version 2016-01-01405

Page 413: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de filtres de source

L'exemple suivant montre comment filtrer sur une date. Il réplique tous les employés où empstartdate>= January 1, 2002 dans la base de données cible.

Example Filtre de date unique

{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empstartdate", "filter-conditions": [{ "filter-operator": "gte", "value": "2002-01-01" }] }] }]}

Version de l'API API Version 2016-01-01406

Page 414: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtat de la tâche

Surveillance des tâches AWS DMSVous pouvez surveiller la progression d'une tâche en vérifiant le statut de la tâche et en surveillant la tablede contrôle de la tâche. Pour plus d'informations sur les tables de contrôle, consultez Paramètres de tâchede la table de contrôle (p. 338).

Vous pouvez également surveiller l'avancement de vos tâches à l'aide d'Amazon CloudWatch. AWSManagement Console, l'interface de ligne de commande AWS ou l'API AWS DMS vous permettent desurveiller la progression d'une tâche, ainsi que les ressources et la connectivité réseau utilisées.

Enfin, vous pouvez surveiller le statut de vos tables source dans une tâche en consultant l'état de la table.

Notez que la colonne « Date de la dernière mise à jour » de la console DMS indique uniquement l'heure àlaquelle AWS DMS a mis à jour pour la dernière fois l'enregistrement des statistiques pour une table. Ellen'indique pas l'heure de la dernière mise à jour de la table.

Pour plus d'informations, consultez les rubriques suivantes.

Rubriques• État de la tâche (p. 407)• État d'une table pendant des tâches (p. 408)• Surveillance des tâches de réplication à l'aide d'Amazon CloudWatch (p. 409)• Métriques du service de migration des données (p. 411)• Gestion des journaux de tâches AWS DMS (p. 414)• Journalisation des appels d'API AWS DMS avec AWS CloudTrail (p. 415)

État de la tâcheL’état de la tâche indique la condition de la tâche. Le tableau suivant montre les états possibles qu'unetâche peut avoir :

État de la tâche Description

Création AWS DMS crée la tâche.

En cours d'exécution La tâche exécute les tâches de migration spécifiées.

Arrêté(e) La tâche est arrêtée.

Stopping La tâche est en cours d'arrêt. Ceci est généralement uneindication d'une intervention d'un utilisateur dans la tâche.

Suppression en cours La tâche est cours de suppression, généralement suite à unedemande d'intervention de l'utilisateur.

Échec La tâche a échoué. Consultez les fichiers journaux de latâche pour plus d'informations.

Démarrage en cours La tâche se connecte à l'instance de réplication et auxpoints de terminaison source et cible. Les filtres et lestransformations sont appliqués.

Prêt La tâche est prête à s'exécuter. Cet état suit généralementl'état « Création ».

Version de l'API API Version 2016-01-01407

Page 415: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtat d'une table pendant des tâches

État de la tâche Description

Modification La tâche est en cours de modification, généralementen raison d'une action de l'utilisateur qui a modifié lesparamètres de la tâche.

La barre d’état des tâches donne une estimation de la progression de la tâche. La qualité de cetteestimation dépend de la qualité des statistiques de table de la base de données source ; meilleures sont lesstatistiques de table, plus précise sera l'estimation. Pour les tâches avec une seule table ne disposant pasde statistiques de lignes estimées, nous ne pouvons par fournir une estimation complète en pourcentage.Dans ce cas, l'état de la tâche et l'indication des lignes chargées peuvent servir à confirmer que la tâcheest bien en cours d'exécution et de progression.

État d'une table pendant des tâchesLa console AWS DMS met à jour les informations concernant l'état de vos tables lors de la migration. Letableau suivant illustre les valeurs d’état possibles :

État Description

La table n'existe pas AWS DMS ne peut pas trouver la table sur le point determinaison source.

Avant chargement Le processus de chargement complet a été activé, mais il n'apas encore commencé.

Version de l'API API Version 2016-01-01408

Page 416: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSurveillance des tâches de réplication

à l'aide d'Amazon CloudWatch

État Description

Chargement complet Le processus de chargement complet est en cours.

Table terminée Le chargement complet est terminé.

Table annulée Le chargement de la table a été annulé.

Erreur de table Une erreur s'est produite lors du chargement de la table.

Surveillance des tâches de réplication à l'aided'Amazon CloudWatch

Vous pouvez utiliser les alarmes ou les événements Amazon CloudWatch pour suivre plus précisément lamigration. Pour plus d'informations sur Amazon CloudWatch, consultez Que sont Amazon CloudWatch,les événements Amazon CloudWatch Events et les journaux Amazon CloudWatch Logs ? dans le Guidede l'utilisateur Amazon CloudWatch. Notez que l'utilisation d'Amazon CloudWatch implique des fraissupplémentaires.

La console AWS DMS affiche les statistiques CloudWatch de base pour chaque tâche, notamment lestatut, le pourcentage de réalisation, le temps écoulé et les statistiques de table, comme illustré ci-après.Sélectionnez la tâche de réplication, puis cliquez sur l'onglet Supervision des tâches.

Version de l'API API Version 2016-01-01409

Page 417: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurSurveillance des tâches de réplication

à l'aide d'Amazon CloudWatch

La console AWS DMS affiche les statistiques de performances pour chaque table, notamment le nombred'insertions, de suppressions et de mises à jour, lorsque vous sélectionnez l'onglet Table statistics(Statistiques de table).

Version de l'API API Version 2016-01-01410

Page 418: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMétriques du service de migration des données

En outre, si vous sélectionnez une instance de réplication dans la page Instance de réplication, vouspouvez afficher les métriques de performance pour l'instance en sélectionnant l'onglet Supervision.

Métriques du service de migration des donnéesAWS DMS fournit des statistiques pour les éléments suivants :

• Métriques de l'hôte – Statistiques de performances et d'utilisation pour l'hôte de réplication, fournies parAmazon CloudWatch. Pour consulter une liste complète des métriques disponibles, consultez la pagemétriques des instances de réplication (p. 412).

• Métriques de la tâche de réplication – Statistiques pour les tâches de réplication, notamment lesmodifications entrantes et validées, ainsi que la latence entre l'hôte de réplication et les bases dedonnées source et cible. Pour consulter une liste complète des métriques disponibles, consultez la pagemétriques de tâches de réplication (p. 413).

• Métriques de table – Statistiques pour les tables en cours de migration, notamment le nombred'insertions, de mise à jour, de suppression et d'instructions DDL terminées.

Version de l'API API Version 2016-01-01411

Page 419: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurmétriques des instances de réplication

Les métriques de tâche sont divisées en statistiques entre l'hôte de réplication et le point de terminaisonsource et en statistiques entre l'hôte de réplication et le point de terminaison cible. Vous pouvez déterminerles statistiques totales d'une tâche en additionnant deux statistiques associées. Par exemple, vouspouvez déterminer la latence totale, ou attente de réplique, d'une tâche, en combinant les valeurs deCDCLatencySource et de CDCLatencyTarget.

Les valeurs de métriques de tâche peuvent être influencées par l'activité en cours dans votre base dedonnées source. Par exemple, si une transaction a commencé mais n'a pas été validée, la métriqueCDCLatencySource continue à augmenter jusqu'à ce que cette transaction soit validée.

Pour l'instance de réplication, la métrique FreeableMemory nécessite une clarification. La mémoirelibérable n'est pas une indication relative à la mémoire réelle disponible. Il s'agit de la mémoireactuellement en cours d'utilisation et pouvant être libérée et affectée à d'autres utilisations ; il s'agit d'unecombinaison des mémoires tampon et de cache en cours d'utilisation sur l'instance de réplication.

Bien que la métrique FreeableMemory ne reflète pas la mémoire réelle disponible, la combinaison desmétriques FreeableMemory et SwapUsage peut indiquer si l'instance de réplication est surchargée.

Surveillez les conditions suivantes pour ces deux métriques.

• La métrique FreeableMemory approche la valeur zéro.

• La métrique SwapUsage augmente ou fluctue.

Si vous rencontrez une de ces deux conditions, cela indique que vous devez envisager un transfert versune instance de réplication plus importante. Vous devez également envisager de réduire le nombre et letype de tâches exécutées sur l'instance de réplication. Les tâches de chargement complet nécessitentdavantage de mémoire que les tâches qui répliquent seulement des modifications.

métriques des instances de réplicationLa supervision de l'instance de réplication comprend les métriques Amazon CloudWatch pour lesstatistiques suivantes :

CPUUtilization

Quantité d'UC utilisée.

Unités : pourcentageFreeStorageSpace

Quantité d'espace de stockage disponible.

Unités : octetsFreeableMemory

Quantité de mémoire vive disponible.

Unités : octetsWriteIOPS

Nombre moyen d'opérations d'E/S d'écriture de disque par seconde.

Unités : nombre/secondeReadIOPS

Nombre moyen d'opérations d'E/S de lecture de disque par seconde.

Unités : nombre/secondeWriteThroughput

Nombre moyen d'octets écrits sur le disque par seconde.

Version de l'API API Version 2016-01-01412

Page 420: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurmétriques de tâches de réplication

Unités : octets/secondeReadThroughput

Nombre moyen d'octets lus sur le disque par seconde.

Unités : octets/secondeWriteLatency

Temps moyen nécessaire pour les opérations d'E/S (sortie) par disque.

Unités : millisecondesReadLatency

Temps moyen nécessaire pour les opérations d'E/S (entrée) par disque.

Unités : millisecondesSwapUsage

Quantité d'espace d'échange utilisé sur l'instance de réplication.

Unités : octetsNetworkTransmitThroughput

Trafic de réseau sortant (transmission) sur l'instance de réplication, comprenant le trafic de base dedonnées client et le trafic AWS DMS, utilisé pour la surveillance et la réplication.

Unités : octets/secondeNetworkReceiveThroughput

Trafic de réseau entrant (réception) sur l'instance de réplication, notamment le trafic de base dedonnées client et le trafic AWS DMS, utilisé pour la surveillance et la réplication.

Unités : octets/seconde

métriques de tâches de réplicationLa supervision de la tâche de réplication comprend les métriques pour les statistiques suivantes :

FullLoadThroughputBandwidthSource

Bande passante du réseau entrant à partir d'un chargement total depuis la source en kilo-octets (Ko)par seconde.

FullLoadThroughputBandwidthTarget

Bande passante de réseau sortant à partir d'un chargement total pour la cible en Ko par seconde.FullLoadThroughputRowsSource

Modifications entrantes à partir d'un chargement total depuis la source, exprimées en lignes parseconde.

FullLoadThroughputRowsTarget

Modifications sortantes à partir d'un chargement total depuis la source, exprimées en lignes parseconde.

CDCIncomingChanges

Nombre total d'événements de modification qui attendent, à un moment donné, d'être appliqués à lacible. Notez que cela est différent de la mesure du taux de modifications de transaction du point de

Version de l'API API Version 2016-01-01413

Page 421: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurGestion des journaux AWS DMS

terminaison source. Une valeur élevée pour cette métrique indique généralement qu'AWS DMS n'estpas en mesure d'appliquer les modifications capturées dans un délai raisonnable, ce qui entraîne unelatence cible importante.

CDCChangesMemorySource

Quantité de lignes s'accumulant dans une mémoire et attendant leur validation à partir de la source.CDCChangesMemoryTarget

Quantité de lignes s'accumulant dans une mémoire et attendant leur validation dans la cible.CDCChangesDiskSource

Quantité de lignes s'accumulant sur un disque et attendant leur validation à partir de la source.CDCChangesDiskTarget

Quantité de lignes s'accumulant sur un disque et attendant leur validation dans la cible.CDCThroughputBandwidthSource

Bande passante réseau pour la source, en Ko par seconde. CDCThroughputBandwidth enregistrela bande passante sur des points d'échantillonnage. Si aucun trafic réseau n'est trouvé, la valeur estzéro. Étant donné que CDC ne délivre pas de transactions de longue durée, le trafic réseau peut nepas être enregistré.

CDCThroughputBandwidthTarget

Bande passante réseau pour la cible, en Ko par seconde. CDCThroughputBandwidth enregistre labande passante sur des points d'échantillonnage. Si aucun trafic réseau n'est trouvé, la valeur estzéro. Étant donné que CDC ne délivre pas de transactions de longue durée, le trafic réseau peut nepas être enregistré.

CDCThroughputRowsSource

Modifications de tâche entrante à partir de la source en lignes par seconde.CDCThroughputRowsTarget

Modifications de tâche sortante pour la cible en lignes par seconde.CDCLatencySource

Intervalle, en secondes, entre le dernier événement capturé à partir du point de terminaison source etl'horodatage système actuel de l'instance AWS DMS. Si aucune modification n'a été capturée à partirde la source en raison de la portée des tâches, AWS DMS définit cette valeur à zéro.

CDCLatencyTarget

Intervalle, en secondes, entre le premier horodatage d'événement en attente de validation sur la cibleet l'horodatage actuel de l'instance AWS DMS. Cette valeur se produit si des transactions ne sont pastraitées par la cible. Dans le cas contraire, la latence cible est la même que la latence source si toutesles transactions sont appliquées. La latence cible ne doit jamais être inférieure à la latence source.

Gestion des journaux de tâches AWS DMSAWS DMS utilise Amazon CloudWatch pour journaliser les informations de tâche pendant le processusde migration. Vous pouvez utiliser l'interface de ligne de commande (CLI) AWS ou l'API AWS DMS pourafficher des informations sur les journaux de tâches. Pour ce faire, utilisez la commande de l'interfacede ligne de commande (CLI) AWS describe-replication-instance-task-logs ou l'action d'APIAWS DMS DescribeReplicationInstanceTaskLogs.

Par exemple, la commande de l'interface de ligne de commande (CLI) AWS ci-dessous affiche lesmétadonnées des journaux de tâches au format JSON.

Version de l'API API Version 2016-01-01414

Page 422: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurJournalisation des appels d'API

AWS DMS avec AWS CloudTrail

$ aws dms describe-replication-instance-task-logs \ --replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY

Voici un exemple de réponse de la commande.

{ "ReplicationInstanceTaskLogs": [ { "ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY", "ReplicationTaskName": "mysql-to-ddb", "ReplicationInstanceTaskLogSize": 3726134 } ], "ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY"}

Dans cette réponse, l'instance de réplication est associée à un seul journal de tâches (mysql-to-ddb). Lataille de ce journal est de 3 726,124 octets.

Vous pouvez utiliser les informations renvoyés par describe-replication-instance-task-logspour diagnostiquer et résoudre les problèmes liés aux journaux de tâches. Par exemple, si vous autorisezune journalisation détaillée du débogage pour une tâche, le journal de la tâche croîtra rapidement. L'espacede stockage disponible sur l'instance de réplication risque alors d'être entièrement consommé et le statutde l'instance passera à storage-full.— En décrivant les journaux de tâches, vous pouvez identifierceux dont vous n'avez plus besoin et les supprimer pour libérer de l'espace de stockage.

Note

Arrêtez l'exécution de la tâche associée avant de supprimer un journal. Un journal ne peut pas êtresupprimé à l'aide de l'interface de ligne de commande AWS ou de la console AWS DMS pendantl'exécution de la tâche associée.

Pour supprimer les journaux pour une tâche, définissez le paramètre de tâche DeleteTaskLogs sur true.Par exemple, le code JSON suivant supprime les journaux d'une tâche lorsque celle-ci est modifiée viala commande modify-replication-task de l'interface de ligne de commande (CLI) AWS ou l'actionModifyReplicationTask de l'API AWS DMS.

{ "Logging": { "DeleteTaskLogs":true }}

Journalisation des appels d'API AWS DMS avecAWS CloudTrail

AWS DMS est intégré à AWS CloudTrail, un service qui fournit un enregistrement des actions réalisées parun utilisateur, un rôle ou un service AWS dans AWS DMS. CloudTrail capture tous les appels d'API pourAWS DMS sous la forme d'événements, y compris des appels depuis la console AWS DMS et depuis des

Version de l'API API Version 2016-01-01415

Page 423: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurInformations AWS DMS dans CloudTrail

appels de code aux API AWS DMS. Si vous créez un journal de suivi, vous pouvez diffuser en continu lesévénements CloudTrail sur un compartiment Amazon S3, y compris les événements pour AWS DMS. Sivous ne configurez pas de journal de suivi, vous pouvez toujours afficher les événements les plus récentsdans la console CloudTrail dans Event history (Historique des événements). À l'aide des informationscollectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à AWS DMS, l'adresse IPsource à partir de laquelle la demande a été effectuée, l'auteur de la demande et la date de la demande,ainsi que d'autres informations.

Pour en savoir plus sur CloudTrail, consultez AWS CloudTrail User Guide.

Informations AWS DMS dans CloudTrailCloudTrail est activé sur votre compte AWS lorsque vous créez le compte. Lorsqu'une activité a lieudans AWS DMS, cette activité est enregistrée dans un événement CloudTrail avec d'autres événementsde service AWS dans Historique des événements. Vous pouvez afficher, rechercher et téléchargerles événements récents dans votre compte AWS. Pour plus d'informations, consultez Affichage desévénements avec l'historique des événements CloudTrail.

Pour un enregistrement continu des événements dans votre compte AWS, y compris les événements pourAWS DMS, créez un journal de suivi. Un journal de suivi permet à CloudTrail de livrer les fichiers journauxdans un compartiment Amazon S3. Par défaut, lorsque vous créez un journal de suivi dans la console, ils'applique à toutes les régions. Le journal de suivi consigne les événements de toutes les régions dansla partition AWS et livre les fichiers journaux dans le compartiment Amazon S3 de votre choix. En outre,vous pouvez configurer d'autres services AWS pour analyser plus en profondeur les données d'événementcollectées dans les journaux CloudTrail et agir sur celles-ci. Pour plus d'informations, consultez :

• Présentation de la création d'un journal de suivi• Intégrations et services pris en charge par CloudTrail• Configuration des Notifications de Amazon SNS pour CloudTrail• Réception de fichiers journaux CloudTrail de plusieurs régions et Réception de fichiers journaux

CloudTrail de plusieurs comptes

Toutes les actions AWS DMS sont consignées par CloudTrail et sont documentées dans leAWS Database Migration Service API Reference. Par exemple, les appels adressés aux actionsCreateReplicationInstance, TestConnection et StartReplicationTask génèrent des entréesdans les fichiers journaux CloudTrail.

Chaque événement ou entrée du journal contient des informations sur la personne qui a généré lademande. Les informations relatives à l'identité permettent de déterminer les éléments suivants :

• Si la demande a été effectuée avec les informations d'identification utilisateur racine ou IAM.• Si la demande a été effectuée avec des informations d'identification de sécurité temporaires pour un rôle

ou un utilisateur fédéré.• Si la requête a été effectuée par un autre service AWS.

Pour plus d'informations, consultez la section Élément userIdentity CloudTrail.

Présentation des entrées des fichiers journaux AWSDMSUn journal de suivi est une configuration qui active la livraison d'événements en tant que fichiers journauxà un compartiment Amazon S3 que vous spécifiez. Les fichiers journaux CloudTrail contiennent une ouplusieurs entrées de journal. Un événement représente une demande individuelle à partir d'une sourcequelconque et comprend des informations sur l'action demandée, la date et l'heure, les paramètres de la

Version de l'API API Version 2016-01-01416

Page 424: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation des entrées des fichiers journaux AWS DMS

demande, etc. Les fichiers journaux CloudTrail ne sont pas des séries ordonnées retraçant les appels d'APIpublics. Ils ne suivent aucun ordre précis.

L'exemple suivant montre une entrée de journal CloudTrail qui illustre l'actionRebootReplicationInstance.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:johndoe", "arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe", "accountId": "123456789012", "accessKeyId": "ASIAYFI33SINADOJJEZW", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-01T16:42:09Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:role/admin", "accountId": "123456789012", "userName": "admin" } } }, "eventTime": "2018-08-02T00:11:44Z", "eventSource": "dms.amazonaws.com", "eventName": "RebootReplicationInstance", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "console.amazonaws.com", "requestParameters": { "forceFailover": false, "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE" }, "responseElements": { "replicationInstance": { "replicationInstanceIdentifier": "replication-instance-1", "replicationInstanceStatus": "rebooting", "allocatedStorage": 50, "replicationInstancePrivateIpAddresses": [ "172.31.20.204" ], "instanceCreateTime": "Aug 1, 2018 11:56:21 PM", "autoMinorVersionUpgrade": true, "engineVersion": "2.4.3", "publiclyAccessible": true, "replicationInstanceClass": "dms.t2.medium", "availabilityZone": "us-east-1b", "kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", "replicationSubnetGroup": { "vpcId": "vpc-1f6a9c6a", "subnetGroupStatus": "Complete", "replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M", "subnets": [ { "subnetIdentifier": "subnet-cbfff283", "subnetAvailabilityZone": {

Version de l'API API Version 2016-01-01417

Page 425: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation des entrées des fichiers journaux AWS DMS

"name": "us-east-1b" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-d7c825e8", "subnetAvailabilityZone": { "name": "us-east-1e" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-6746046b", "subnetAvailabilityZone": { "name": "us-east-1f" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-bac383e0", "subnetAvailabilityZone": { "name": "us-east-1c" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-42599426", "subnetAvailabilityZone": { "name": "us-east-1d" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-da327bf6", "subnetAvailabilityZone": { "name": "us-east-1a" }, "subnetStatus": "Active" } ], "replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a", "replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a" }, "replicationInstanceEniId": "eni-0d6db8c7137cb9844", "vpcSecurityGroups": [ { "vpcSecurityGroupId": "sg-f839b688", "status": "active" } ], "pendingModifiedValues": {}, "replicationInstancePublicIpAddresses": [ "18.211.48.119" ], "replicationInstancePublicIpAddress": "18.211.48.119", "preferredMaintenanceWindow": "fri:22:44-fri:23:14", "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE", "replicationInstanceEniIds": [ "eni-0d6db8c7137cb9844" ], "multiAZ": false, "replicationInstancePrivateIpAddress": "172.31.20.204", "patchingPrecedence": 0 }

Version de l'API API Version 2016-01-01418

Page 426: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation des entrées des fichiers journaux AWS DMS

}, "requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5", "eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

Version de l'API API Version 2016-01-01419

Page 427: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Validation des tâches AWS DMSRubriques

• Statistiques des tâches de réplication (p. 421)• Revalidation de tables pendant une tâche (p. 423)• Dépannage (p. 423)• Limites (p. 424)

AWS DMS fournit la prise en charge de la validation des données, afin de garantir que vos données ontété migrées avec précision depuis la source vers la cible. Si vous l'activez pour une tâche, AWS DMScommence à comparer les données de la source et celles de la cible immédiatement après l'exécution d'unchargement complet d'une table.

La validation des données est facultative. AWS DMS compare les enregistrements source et cible, etrapporte tout écart. En outre, pour une tâche avec capture des données modifiées activée, AWS DMScompare les modifications incrémentielles et rapporte toute différence.

Lors de la validation des données, AWS DMS compare chaque ligne de la source avec sa lignecorrespondante de la cible et vérifie que ces lignes contiennent les mêmes données. Pour ce faire, AWSDMS émet les requêtes appropriées pour récupérer les données. Notez que ces requêtes consommentdes ressources supplémentaires au niveau de la source et de la cible, ainsi que d'autres ressources réseausupplémentaires.

La validation de données fonctionne avec les bases de données suivantes lorsque AWS DMS les prend encharge en tant que points de terminaison source et cible :

• Oracle• PostgreSQL• MySQL• MariaDB• Microsoft SQL Server• Amazon Aurora (MySQL)• Amazon Aurora (PostgreSQL)• IBM Db2 LUW

Pour plus d'informations sur les points de terminaison pris en charge, consultez Utilisation de points determinaison AWS DMS (p. 120).

La validation des données nécessite du temps supplémentaire, au-delà de celui requis pour la migrationelle-même. Le temps supplémentaire requis dépend de la quantité de données ayant migré.

Les paramètres de validation des données sont les suivants :

• EnableValidation – Active ou désactive la validation de données.• FailureMaxCount – Spécifie le nombre maximal d'enregistrements pour lesquels la validation peut

échouer avant que celle-ci soit suspendue pour la tâche.• HandleCollationDiff – Prend en compte les différences de classement des colonnes dans les

points de terminaison PostgreSQL lors de l'identification des enregistrements sources et cibles pour lacomparaison.

• RecordFailureDelayLimitInMinutes – Spécifie le délai avant que les détails d'une défaillance devalidation ne soit fournie.

Version de l'API API Version 2016-01-01420

Page 428: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurStatistiques des tâches de réplication

• TableFailureMaxCount – Spécifie le nombre maximal de tables pour lesquelles la validation peutéchouer avant que la validation soit suspendue pour la tâche.

• ThreadCount – Ajuste le nombre de threads d'exécution utilisés par AWS DMS au cours de lavalidation.

• ValidationOnly – Affiche un aperçu de la validation de la tâche sans exécuter la migration ou laréplication de données. Pour utiliser cette option, définissez le type de migration de tâche sur Replicatedata changes only (Répliquer les modifications de données uniquement) dans la console AWS DMS, oudéfinissez le type de migration sur cdc dans l'API AWS DMS. En outre, définissez le paramètre de tâchede la table cible, TargetTablePrepMode, sur DO_NOTHING.

L'exemple de code JSON suivant active la validation, augmente le nombre de threads à huit et suspend lavalidation si une table présente une défaillance de validation.

ValidationSettings": { "EnableValidation":true, "ThreadCount":8, "TableFailureMaxCount":1}

Pour plus d'informations sur ces paramètres, consultez la page Paramètres de la tâche de validation desdonnées (p. 342).

Statistiques des tâches de réplicationLorsque la validation des données est activée, AWS DMS fournit les statistiques suivantes au niveau de latable :

• ValidationState—État de validation de la table. Le paramètre peut avoir les valeurs suivantes :• Not enabled (Non activé)—La validation n'est pas activée pour la table de la tâche de migration.• Pending records (Enregistrements en attente)—Certains enregistrements de la table sont en attente de

validation.• Mismatched records (Enregistrements ne correspondant pas)—Certains enregistrements de la table ne

correspondent pas entre la source et la cible. Une incohérence peut se produire pour diverses raisons.Pour plus d'informations, consultez la table awsdms_validation_failures_v1 sur le point determinaison cible.

• Suspended records (Enregistrements suspendus)—Certains enregistrements de la table ne peuventpas être validés.

• No primary key (Aucune clé primaire)—La table ne peut pas être validée, car elle n'avait pas de cléprimaire.

• Table error (Erreur de table)—La table n'a pas été validée, car elle était dans un état d'erreur etcertaines données n'ont pas été migrées.

• Validated (Validé)—Toutes les lignes de la table sont validées. Si la table est mise à jour, l'état peutdevenir Validated.

• Error (Erreur)—La table ne peut pas être validée en raison d'une erreur inattendue.• ValidationPending—Nombre d'enregistrements qui ont été migrés vers la cible, mais qui n'ont pas encore

été validés.

ValidationSuspended—Nombre d'enregistrements qu'AWS DMS ne peut pas comparer. Par exemple,si un enregistrement de la source est constamment mis à jour, AWS DMS ne peut pas comparer lasource et la cible. Pour plus d'informations, consultez Paramètres de traitement des erreurs pour unetâche (p. 348)

Version de l'API API Version 2016-01-01421

Page 429: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurStatistiques des tâches de réplication

• ValidationFailed—Nombre d'enregistrements qui n'ont pas réussi la phase de validation des données.Pour plus d'informations, consultez Paramètres de traitement des erreurs pour une tâche (p. 348).

• ValidationSucceededRecordCount— Nombre de lignes validées par minute par AWS DMS.• ValidationAttemptedRecordCount— Nombre de lignes pour lesquelles la validation a été tentée, par

minute.• ValidationFailedOverallCount— Nombre de lignes pour lesquelles la validation a échoué.• ValidationSuspendedOverallCount— Nombre de lignes pour lesquelles la validation a été suspendue.• ValidationPendingOverallCount— Nombre de lignes pour lesquelles la validation est toujours en attente.• ValidationBulkQuerySourceLatency— AWS DMS peut effectuer la validation des données par lots, en

particulier dans certains scénarios (lors d'un chargement complet ou d'une réplication continue) où il y ade nombreuses modifications. Cette métrique indique le temps de latence requis pour lire un ensemblede données à partir du point de terminaison source.

• ValidationBulkQueryTargetLatency— AWS DMS peut effectuer la validation des données par lots, enparticulier dans certains scénarios (lors d'un chargement complet ou d'une réplication continue) où il y ade nombreuses modifications. Cette métrique indique le temps de latence requis pour lire un ensemblede données en direction du point de terminaison cible.

• ValidationItemQuerySourceLatency— Au cours de la réplication continue, la validation des données peutidentifier les modifications en cours et les valider. Cette métrique indique le temps de latence lors dela lecture de ces modifications à partir de la source. La validation peut exécuter plus de requêtes quenécessaire, en fonction du nombre de modifications, si des erreurs se produisent lors de la validation.

• ValidationItemQueryTargetLatency— Au cours de la réplication continue, la validation des données peutidentifier les modifications en cours et les valider ligne par ligne. Cette métrique indique le temps delatence lors de la lecture de ces modifications à partir de la cible. La validation peut exécuter plus derequêtes que nécessaire, en fonction du nombre de modifications, si des erreurs se produisent lors de lavalidation.

Vous pouvez consulter les informations de validation des données à l'aide de la console , de l'interface deligne de commande AWS ou de l'API AWS DMS.

• Sur la console, vous pouvez choisir de valider une tâche lorsque vous créez ou modifiez la tâche. Pourafficher le rapport de validation des données à l'aide de la console, choisissez la tâche sur la pageTâches et choisissez l'onglet Statistiques de table dans la section des détails.

• À l'aide de l'interface de ligne de commande, définissez le paramètre EnableValidation sur truelorsque vous créez ou modifiez une tâche pour commencer la validation des données. L'exemple suivantcrée une tâche et active la validation des données.

create-replication-task --replication-task-settings '{"ValidationSettings":{"EnableValidation":true}}' --replication-instance-arn arn:aws:dms:us-east-1:5731014: rep:36KWVMB7Q --source-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CSZAEFQURFYMM --target-endpoint-arn arn:aws:dms:us-east-1:5731014: endpoint:CGPP7MF6WT4JQ --migration-type full-load-and-cdc --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": {"schema-name": "data_types", "table-name": "%"}, "rule-action": "include"}]}'

Utilisez la commande describe-table-statistics pour recevoir le rapport de validation desdonnées au format JSON. La commande suivante affiche le rapport de validation des données.

aws dms describe-table-statistics --replication-task-arn arn:aws:dms:us-east-1:5731014:

Version de l'API API Version 2016-01-01422

Page 430: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRevalidation de tables pendant une tâche

rep:36KWVMB7Q

Le rapport doit se présenter comme suit :

{ "ReplicationTaskArn": "arn:aws:dms:us-west-2:5731014:task:VFPFTYKK2RYSI", "TableStatistics": [ { "ValidationPendingRecords": 2, "Inserts": 25, "ValidationState": "Pending records", "ValidationSuspendedRecords": 0, "LastUpdateTime": 1510181065.349, "FullLoadErrorRows": 0, "FullLoadCondtnlChkFailedRows": 0, "Ddls": 0, "TableName": "t_binary", "ValidationFailedRecords": 0, "Updates": 0, "FullLoadRows": 10, "TableState": "Table completed", "SchemaName": "d_types_s_sqlserver", "Deletes": 0 }}

• À l'aide de l'API AWS DMS, créez une tâche en utilisant l'action CreateReplicationTask et définissezle paramètre EnableValidation sur true pour valider les données qui ont été migrées par la tâche.Utilisez l'action DescribeTableStatistics pour recevoir le rapport de validation des données au formatJSON.

Revalidation de tables pendant une tâchePendant l'exécution d'une tâche, vous pouvez demander à AWS DMS d'effectuer une validation desdonnées.

AWS Management Console1. Connectez-vous à l'AWS Management Console et choisissez AWS DMS. Si vous êtes connecté en

tant qu'utilisateur d'AWS Identity and Access Management (IAM), vous devez détenir les autorisationspertinentes pour accéder à AWS DMS. Pour plus d'informations sur les autorisations requises,consultez Autorisations IAM nécessaires pour utiliser AWS DMS (p. 64).

2. Choisissez Tasks dans le volet de navigation.3. Choisissez la tâche en cours d'exécution contenant la table à revalider.4. Choisissez l'onglet Table Statistics (Statistiques de la table).5. Choisissez la table à revalider (vous pouvez choisir jusqu'à 10 tables en même temps). Si la tâche

n'est plus en cours d'exécution, vous ne pouvez pas revalider la ou les tables.6. Choisissez Revalidate (Revalider).

DépannagePendant la validation, AWS DMS crée une nouvelle table au point de terminaison dela cible : awsdms_validation_failures_v1. Si l'état d'un enregistrement devient

Version de l'API API Version 2016-01-01423

Page 431: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLimites

ValidationSuspended ou ValidationFailed, AWS DMS écrit les informations de diagnostic surawsdms_validation_failures_v1. Vous pouvez interroger cette table pour aider à résoudre leserreurs de validation.

Voici une description de la table awsdms_validation_failures_v1 :

Nom de lacolonne

Type de données Description

TASK_NAME VARCHAR(128)NOT NULL

Identificateur de tâche AWS DMS.

TABLE_OWNERVARCHAR(128)NOT NULL

Schéma (propriétaire) de la table.

TABLE_NAMEVARCHAR(128)NOT NULL

Nom de la table.

FAILURE_TIMEDATETIME(3)NOT NULL

Heure où la défaillance s'est produite.

KEY TEXT NOT NULL Il s'agit de la clé primaire du type Row Record.

FAILURE_TYPEVARCHAR(128)NOT NULL

Gravité de l'erreur de validation. Peut avoir la valeur Failed ouSuspended.

La requête suivante affiche toutes les défaillances d'une tâche en interrogeant la tableawsdms_validation_failures_v1. Le nom de la tâche doit être l'ID de ressource externe de la tâche.L'ID de ressource externe de la tâche est la dernière valeur de l'ARN de la tâche. Par exemple, pourune tâche avec la valeur d'ARN arn:aws:dms:us-west-2:5599:task: VFPFKH4FJR3FTYKK2RYSI, l'ID deressource externe de la tâche sera VFPFKH4FJR3FTYKK2RYSI.

select * from awsdms_validation_failures_v1 where TASK_NAME = 'VFPFKH4FJR3FTYKK2RYSI'

Une fois que vous avez la clé primaire de l'enregistrement ayant échoué, vous pouvez interroger les pointsde terminaison source et cible pour voir quelle partie de l'enregistrement ne correspond pas.

Limites• La validation des données exige que la table dispose d'une clé primaire ou d'un index unique.

• Les colonnes de clé primaire ne peuvent pas être de type CLOB, BLOB ou BYTE.• Pour les colonnes de clé primaire de type VARCHAR ou CHAR, la longueur doit être inférieure à 1 024.

• Si le classement de la colonne de clé primaire dans l'instance PostgreSQL cible n'est pas défini sur« C », l'ordre de tri de la clé primaire est différent de celui d'Oracle. Si l'ordre de tri est différent dansPostgreSQL et dans Oracle, la validation des données ne parvient pas à valider les enregistrements.

• La validation des données génère des requêtes supplémentaires sur les bases de données source etcible. Vous devez vous assurer que les deux bases de données aient des ressources suffisantes pourgérer cette charge supplémentaire.

• La validation des données n'est pas prise en charge si une migration utilise le filtrage personnalisé ou siplusieurs bases de données sont consolidées en une seule.

Version de l'API API Version 2016-01-01424

Page 432: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLimites

• AWS DMS prend en charge la validation partielle des LOB pour les points de terminaison MySQL, Oracleet PostgreSQL.

• Pour un point de terminaison Oracle source ou cible, AWS DMS utilise DBMS_CRYPTO pour valider lesLOB. Si votre point de terminaison Oracle utilise les LOB, vous devez accorder l'autorisation d'exécutionsur dbms_crypto au compte d'utilisateur qui permet d'accéder au point de terminaison Oracle. Vouspouvez le faire en exécutant l'instruction suivante :

grant execute on sys.dbms_crypto to <dms_endpoint_user>;

• Si la base de données cible est modifiée en dehors d'AWS DMS pendant la validation, les écarts peuventne pas être signalés avec précision. Ce résultat peut se produire si l'une de vos applications écrit desdonnées dans la table cible, tandis qu'AWS DMS exécute la validation sur cette même table.

• Si une ou plusieurs lignes sont modifiées en permanence au cours de la validation, AWS DMS ne peutpas valider ces lignes. Cependant, vous pouvez valider manuellement ces lignes, une fois la tâcheterminée.

• Si AWS DMS détecte plus de 10 000 enregistrements suspendus ou ayant échoué, il arrête la validation.Avant de poursuivre, vous devez résoudre les problèmes sous-jacents relatifs aux données.

Version de l'API API Version 2016-01-01425

Page 433: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Balisage des ressources dansAWS Database Migration Service

Vous pouvez utiliser des balises dans AWS Database Migration Service (AWS DMS) pour ajouter desmétadonnées à vos ressources. De plus, ces balises peuvent être utilisées avec des stratégies AWSIdentity and Access Management (IAM) pour gérer l'accès aux ressources AWS DMS et contrôler lesactions qui peuvent être appliquées aux ressources AWS DMS. Enfin, vous pouvez utiliser ces balises poursuivre les coûts en regroupant les dépenses pour des ressources balisées de la même façon.

Toutes les ressources AWS DMS peuvent être balisées :

• Certificats• Points de terminaison• Abonnements aux événements• Instances de réplication• Groupes de sous-réseaux de réplication (sécurité)• Tâches de réplication

Une balise AWS DMS est une paire nom-valeur que vous définissez et associez avec une ressource AWSDMS. Le nom s'appelle la clé. Fournir une valeur pour la clé est facultatif. Vous pouvez utiliser des balisespour assigner des informations arbitraires à une ressource AWS DMS. Une clé de balise peut être utilisée,par exemple, pour définir une catégorie, et la valeur de balise peut être un élément de cette catégorie. Parexemple, vous pouvez définir une clé de balise appelée « projet » et une valeur de balise appelée « Salix »,en indiquant que la ressource AWS DMS est assignée au projet Salix. Vous pouvez également utiliser desbalises pour désigner des ressources AWS DMS destinées aux tests ou à la production en utilisant uneclé telle que environnement=test ou environnement =production. Nous vous recommandons d'utiliser unensemble cohérent de clés de balise pour faciliter le suivi des métadonnées associées aux ressourcesAWS DMS.

Utilisez des balises pour organiser votre facture AWS afin de refléter votre propre structure de coût.Pour ce faire, inscrivez-vous pour obtenir votre facture de compte AWS avec les valeurs de clé de baliseincluses. Ensuite, pour voir le coût de vos ressources combinées, organisez vos informations de facturationen fonction des ressources possédant les mêmes valeurs de clé de balise. Par exemple, vous pouvezbaliser plusieurs ressources avec un nom d'application spécifique, puis organiser vos informations defacturation pour afficher le coût total de cette application dans plusieurs services. Pour de plus amplesinformations, veuillez consulter Répartition et balisage des coûts dans À propos de la facturation et de lagestion des coûts AWS.

Chaque ressource AWS DMS possède un ensemble de balises, qui contient toutes les balises qui sontassignées à cette ressource AWS DMS. Un ensemble de balises peut contenir jusqu'à dix balises ou n'encontenir aucune. Si vous ajoutez une balise à une ressource AWS DMS ayant la même clé qu'une baliseexistante sur cette ressource, la nouvelle valeur remplace l'ancienne valeur.

AWS n'applique aucune signification sémantique aux balises ; celles-ci sont strictement interprétéescomme des chaînes de caractères. AWS DMS peut configurer des balises sur une ressource AWS DMS,en fonction des paramètres que vous utilisez lors de la création de la ressource.

La liste ci-dessous décrit les caractéristiques d'une balise AWS DMS.

• La clé de balise correspond au nom obligatoire de la balise. La valeur de la chaîne peut comporterde 1 à 128 caractères Unicode et ne peut pas être précédée de « aws: » ou « dms: ». La chaîne peut

Version de l'API API Version 2016-01-01426

Page 434: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAPI

uniquement contenir l'ensemble de lettres, de chiffres et d'espaces Unicode, '_', '.', '/', '=', '+', '-' (regexJava : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

• La valeur de balise correspond à la valeur de chaîne facultative de la balise. La valeur de la chaîne peutcomporter de 1 à 256 caractères Unicode et ne peut pas être précédée de « aws: » ou « dms: ». Lachaîne peut uniquement contenir l'ensemble de lettres, de chiffres et d'espaces Unicode, '_', '.', '/', '=', '+','-' (regex Java : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Les valeurs comprises dans un ensemble de balises ne doivent pas nécessairement être uniques etpeuvent être de valeurs null. Par exemple, vous pouvez avoir une paire clé-valeur dans un ensemble debalises appelé projet/Trinity et centre-de-coûts/Trinity.

Vous pouvez utiliser l'AWS CLI ou l'API AWS DMS pour ajouter, répertorier et supprimer les balises surles ressources AWS DMS. Lorsque vous utilisez l'interface de ligne de commande d'AWS ou l'API AWSDMS, vous devez fournir l'Amazon Resource Name (ARN) pour la ressource AWS DMS avec laquelle voussouhaitez travailler. Pour plus d'informations sur la création d'un ARN, consultez Construction d'un AmazonResource Name (ARN) pour AWS DMS (p. 15).

Notez que les balises sont mises en cache à des fins d'autorisation. Pour cette raison, les ajouts et lesmises à jour des balises sur les ressources AWS DMS peuvent prendre plusieurs minutes avant d'êtredisponibles.

APIVous pouvez ajouter, répertorier ou supprimer des balises pour une ressource AWS DMS à l'aide de l'APIAWS DMS.

• Pour ajouter une balise à une ressource AWS DMS, utilisez l'opération AddTagsToResource.• Pour répertorier des balises assignées à une ressource AWS DMS, utilisez l'opérationListTagsForResource.

• Pour supprimer des balises d'une ressource AWS DMS, utilisez l'opérationRemoveTagsFromResource.

Pour en savoir sur la création de l'ARN requis, consultez Construction d'un Amazon Resource Name (ARN)pour AWS DMS (p. 15).

Lorsque vous travaillez avec XML à l'aide de l'API AWS DMS, les balises utilisent le schéma suivant :

<Tagging> <TagSet> <Tag> <Key>Project</Key> <Value>Trinity</Value> </Tag> <Tag> <Key>User</Key> <Value>Jones</Value> </Tag> </TagSet></Tagging>

Le tableau suivant fournit une liste des balises XML autorisées et leurs caractéristiques. Notez que lesvaleurs pour la clé et la valeur sont sensibles à la casse. Par exemple, projet=Trinity et PROJET=Trinitysont deux balises différentes.

Version de l'API API Version 2016-01-01427

Page 435: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAPI

Elément de balisage Description

TagSet Un ensemble de balises contient toutes les balises assignées à une ressourceAmazon RDS. Il ne peut y avoir qu'un ensemble de balises par ressource.Vous travaillez avec un TagSet uniquement via l'API AWS DMS.

Tag Une balise est une paire clé-valeur définie par l'utilisateur. Il peut y avoir de 1à 10 balises dans un ensemble de balises.

Key Une clé est le nom obligatoire de la balise. La valeur de la chaîne peutcomporter de 1 à 128 caractères Unicode et ne peut pas être précédée de« dms: » ou « aws: ». La chaîne peut uniquement contenir l'ensemble delettres, de chiffres et d'espaces Unicode, '_', '.', '/', '=', '+', '-' (regex Java : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Les clés doivent être propres à un ensemble de balises. Par exemple, vousne pouvez pas avoir une paire-clé dans un ensemble de balises avec la cléidentique mais des valeurs différentes comme projet/Trinity et projet/Xanadu.

Value Une valeur est la valeur facultative de la balise. La valeur de la chaîne peutcomporter de 1 à 256 caractères Unicode et ne peut pas être précédée de« dms: » ou « aws: ». La chaîne peut uniquement contenir l'ensemble delettres, de chiffres et d'espaces Unicode, '_', '.', '/', '=', '+', '-' (regex Java : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Les valeurs comprises dans un ensemble de balises ne doivent pasnécessairement être uniques et peuvent être de valeurs null. Par exemple,vous pouvez avoir une paire clé-valeur dans un ensemble de balises appeléprojet/Trinity et centre-de-coûts/Trinity.

Version de l'API API Version 2016-01-01428

Page 436: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Utilisation d'événements etnotifications dansAWS Database Migration Service

AWS Database Migration Service (AWS DMS) utilise Amazon Simple Notification Service (Amazon SNS)pour fournir des notifications lorsqu'un événement AWS DMS se produit, par exemple la création ou lasuppression d'une instance de réplication. Vous pouvez utiliser ces notifications sous l'une quelconque desformes prises en charge par Amazon SNS pour une région AWS, telles qu'un message électronique, unSMS ou un appel à un point de terminaison HTTP.

AWS DMS regroupe les événements en catégories auxquelles vous pouvez vous abonner afin d'êtreinformé lorsqu'un événement de cette catégorie se produit. Par exemple, si vous vous abonnez à lacatégorie de création d'une instance de réplication donnée, vous recevez une notification chaque fois quesurvient un événement lié à la création qui affecte votre instance de réplication. Si vous vous abonnez à lacatégorie Modification de configuration pour une instance de réplication, vous recevez une notification encas de modification de la configuration de l'instance de réplication. Vous recevez également une notificationen cas de modification d'un abonnement à une notification d'événements. Pour obtenir une liste descatégories d'événement fournies par AWS DMS, reportez-vous à Catégories d'événements et messagesd'événements AWS DMS (p. 430).

AWS DMS envoie des notifications d'événements aux adresses que vous fournissez lorsque vous créezun abonnement aux événements. Il se peut que vous souhaitiez créer plusieurs abonnements différents,tel qu'un abonnement recevant toutes les notifications d'événements et un autre abonnement incluantuniquement les événements critiques pour vos ressources DMS de production. Vous pouvez facilementdésactiver la notification sans supprimer un abonnement. Pour ce faire, définissez l'option Enabled (Activé)sur No (Non) dans la console AWS DMS ou définissez le parahttps://docs.aws.amazon.com/sns/latest/dg/mètre Enabled sur false à l'aide de l'API AWS DMS.

Note

Les notifications d'événements AWS DMS à l'aide de SMS sont actuellement disponibles pourles ressources AWS DMS dans toutes les régions où AWS DMS est pris en charge. Pour plusd'informations sur l'utilisation des SMS avec SNS, consultez Envoi et réception de notifications parSMS avec Amazon SNS.

AWS DMS utilise un identificateur d'abonnement pour identifier chaque abonnement. Plusieursabonnements aux événements AWS DMS peuvent être publiés dans la même rubrique Amazon SNS.Lorsque vous utilisez la notification d'événements, les frais Amazon SNS s'appliquent ; pour plusd'informations sur la facturation Amazon SNS, consultez Tarification Amazon SNS.

Pour vous abonner à des événements AWS DMS, utilisez la procédure suivante.

1. Créez une rubrique Amazon SNS. Dans la rubrique, indiquez le type de notification que vous souhaitezrecevoir et à quelle adresse ou quel numéro elle doit être envoyée.

2. Créez un abonnement à une notification d'événement AWS DMS à l'aide de l'AWS ManagementConsole, de l'AWS CLI ou de l'API AWS DMS.

3. AWS DMS envoie un e-mail d'approbation ou un SMS aux adresses que vous avez fournies avec votreabonnement. Pour valider votre abonnement, cliquez sur le lien dans l'e-mail d'approbation ou le SMS.

4. Lorsque vous avez confirmé l'abonnement, le statut de votre abonnement est mis à jour dans la sectionAbonnements aux événements de la console AWS DMS.

5. Vous commencez alors à recevoir des notifications d'événements.

Version de l'API API Version 2016-01-01429

Page 437: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCatégories d'événements et

messages d'événements AWS DMS

Pour obtenir la liste des catégories et événements dont vous pouvez être informé, consultez la sectionsuivante. Pour plus de détails sur l'abonnement et sur l'utilisation des AWS DMSabonnements auxévénements, consultez Abonnement à la notification d'événement AWS DMS (p. 432).

Catégories d'événements et messagesd'événements AWS DMS

AWS DMS génère un nombre significatif d'événements dans les catégories auxquelles vous pouvez vousabonner à l'aide de la console AWS DMS ou de l'API AWS DMS. Chaque catégorie s'applique à un type desource ; AWS DMS prend actuellement en charge les types de source suivants : instance de réplication ettâche de réplication.

Le tableau suivant recense les catégories et événements possibles pour le type de source instance deréplication.

Catégorie ID d'événement DMS Description

Modification deconfiguration

DMS-EVENT-0012 REP_INSTANCE_CLASS_CHANGING – La classede cette instance de réplication est en cours demodification.

Modification deconfiguration

DMS-EVENT-0014 REP_INSTANCE_CLASS_CHANGE_COMPLETE – Laclasse de cette instance de réplication a été modifiée.

Modification deconfiguration

DMS-EVENT-0018 BEGIN_SCALE_STORAGE – Le stockage de l'instancede réplication est en cours d'augmentation.

Modification deconfiguration

DMS-EVENT-0017 FINISH_SCALE_STORAGE – Le stockage del'instance de réplication a été augmenté.

Modification deconfiguration

DMS-EVENT-0024 BEGIN_CONVERSION_TO_HIGH_AVAILABILITY –L'instance de réplication est en cours d'évolution versune configuration Multi-AZ.

Modification deconfiguration

DMS-EVENT-0025 FINISH_CONVERSION_TO_HIGH_AVAILABILITY –L'instance de réplication a terminé son évolution versune configuration Multi-AZ.

Modification deconfiguration

DMS-EVENT-0030 BEGIN_CONVERSION_TO_NON_HIGH_AVAILABILITY– L'instance de réplication est en cours d'évolution versune configuration Single-AZ.

Modification deconfiguration

DMS-EVENT-0029 FINISH_CONVERSION_TO_NON_HIGH_AVAILABILITY– L'instance de réplication a terminé son évolution versune configuration Single-AZ.

Création DMS-EVENT-0067 CREATING_REPLICATION_INSTANCE – Uneinstance de réplication est en cours de création.

Création DMS-EVENT-0005 CREATED_REPLICATION_INSTANCE – Une instancede réplication a été créée.

Suppression DMS-EVENT-0066 DELETING_REPLICATION_INSTANCE – L'instancede réplication est en cours de suppression.

Version de l'API API Version 2016-01-01430

Page 438: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCatégories d'événements et

messages d'événements AWS DMS

Catégorie ID d'événement DMS Description

Suppression DMS-EVENT-0003 DELETED_REPLICATION_INSTANCE – L'instance deréplication a été supprimée.

Maintenance DMS-EVENT-0047 FINISH_PATCH_INSTANCE – Le logiciel de gestionsur l'instance de réplication a été mis à jour.

Maintenance DMS-EVENT-0026 BEGIN_PATCH_OFFLINE – La maintenancehors connexion de l'instance de réplication est encours. L'instance de réplication n'est pas disponibleactuellement.

Maintenance DMS-EVENT-0027 FINISH_PATCH_OFFLINE – La maintenance horsconnexion de l'instance de réplication est terminée.L'instance de réplication est désormais disponible.

Maintenance DMS-EVENT-0068 CANNOT_PATCH_INSTANCE – L'instance deréplication est à un état qui ne peut pas être mis àniveau.

Stockage faible DMS-EVENT-0007 LOW_STORAGE – Le stockage disponible pourl'instance de réplication est faible.

Basculement DMS-EVENT-0013 FAILOVER_STARTED – Le basculement a commencépour une instance de réplication Multi-AZ.

Basculement DMS-EVENT-0049 FAILOVER_COMPLETED – Le basculement estterminé pour une instance de réplication Multi-AZ.

Basculement DMS-EVENT-0015 HM_SECONDARY_PROMOTION_COMPLETE –Basculement Multi-AZ vers l'instance de secoursterminé.

Basculement DMS-EVENT-0050 MAZ_INSTANCE_ACTIVATION_STARTED –L'activation Multi-AZ a commencé.

Basculement DMS-EVENT-0051 MAZ_INSTANCE_ACTIVATION_COMPLETED –L'activation Multi-AZ est terminée.

Basculement DMS-EVENT-0034 FAILOVER_RECENTLY_OCCURED –Si vousdemandez un basculement trop souvent, cetévénement se produit au lieu d'un événements debasculement normal.

Échec DMS-EVENT-0031 REPLICATION_INSTANCE_FAILURE – L'instance deréplication a subi une défaillance de stockage.

Échec DMS-EVENT-0036 INCOMPATIBLE_NETWORK – L'instance deréplication a échoué en raison d'une incompatibilité deréseau.

Échec DMS-EVENT-0037 INACCESSIBLE_ENCRYPTION_CREDS – Lorsque leservice ne peut pas accéder à la clé KMS utilisée pourchiffrer le volume de données.

Le tableau suivant recense les catégories et événements possibles pour le type de source tâche deréplication.

Version de l'API API Version 2016-01-01431

Page 439: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAbonnement à la notification d'événement AWS DMS

Catégorie ID d'événement DMS Description

Changement d'état DMS-EVENT-0069 REPLICATION_TASK_STARTED – La tâche deréplication a démarré.

Changement d'état DMS-EVENT-0077 REPLICATION_TASK_CDC_STARTED – La tâche deréplication a démarré.

Changement d'état DMS-EVENT-0081 RELOAD_TABLES_EVENT – Un rechargement desdétails d’une table a été demandé.

Changement d'état DMS-EVENT-0079 REPLICATION_TASK_STOPPED – La tâche deréplication s'est arrêtée.

Échec DMS-EVENT-0078 REPLICATION_TASK_FAILED – Une tâche deréplication a échoué.

Échec DMS-EVENT-0082 CLEAN_TASK_FAILED – Un appel pour nettoyer lesdonnées d’une tâche a échoué.

Changement deconfiguration

DMS-EVENT-0080 REPLICATION_TASK_MODIFIED – Une tâche deréplication a été modifiée.

Suppression DMS-EVENT-0073 REPLICATION_TASK_DELETED – La tâche deréplication a été supprimée.

Création DMS-EVENT-0074 REPLICATION_TASK_CREATED – La tâche deréplication a été créée.

Abonnement à la notification d'événement AWSDMS

Vous pouvez créer un abonnement aux notifications d'événements AWS DMS afin de pouvoir être informéquand un événement AWS DMS se produit. La solution la plus simple pour créer un abonnement consisteà utiliser la console AWS DMS. Si vous choisissez de créer un abonnement à une notification d'événementà l'aide de l'API AWS DMS, vous devez créer une rubrique Amazon SNS et vous abonner à cette rubriqueavec la console ou l'API Amazon SNS. Dans ce cas, vous devez également noter l'Amazon ResourceName (ARN) de la rubrique, car cet ARN est utilisé lors de la soumission de commandes d'interface deligne de commande ou d'actions d'API. Pour plus d'informations sur la création d'une rubrique AmazonSNS et sur la façon de s'y abonner, consultez Mise en route avec Amazon SNS.

Dans un abonnement aux notifications, vous pouvez spécifier le type de source dont vous voulez êtreinformé et la source AWS DMS qui déclenche l'événement. Définissez le type de source AWS DMSà l'aide d'une valeur SourceType. Définissez la source qui génère l'événement à l'aide d'une valeurSourceIdentifier. Si vous spécifiez à la fois SourceType et SourceIdentifier, comme SourceType = db-instance et SourceIdentifier = myDBInstance1, vous recevez tous les événements DB_Instancede la source spécifiée. Si vous spécifiez SourceType, mais que vous ne spécifiez pas SourceIdentifier,vous êtes informé des événements de ce type de source pour toutes vos sources AWS DMS. Si vous nespécifiez ni SourceType ni SourceIdentifier, vous êtes informé des événements générés à partir de toutesles sources AWS DMS appartenant à votre compte client.

Version de l'API API Version 2016-01-01432

Page 440: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAWS Management Console

AWS Management ConsolePour vous abonner à une notification d'événements AWS DMS à l'aide de la console

1. Connectez-vous à AWS Management Console et choisissez AWS DMS. Notez que si vous êtesconnecté en tant qu'utilisateur AWS Identity and Access Management (IAM), vous devez disposer desautorisations appropriées pour accéder à AWS DMS.

2. Dans le volet de navigation, choisissez Event Subscriptions.3. Sur la page Event Subscriptions, choisissez Create Event Subscription.4. Sur la page Create Event Subscription, exécutez l'une des actions suivantes :

a. Dans le champ Nom, entrez un nom pour l'abonnement à la notification d'événements.b. Choisissez une rubrique Amazon SNS existante pour Send notifications to (Envoyer de

notifications à), ou choisissez create topic. Vous devez disposer d'une rubrique Amazon SNS pourlui envoyer des avis, ou vous devez en créer une. Si vous choisissez create topic, vous pouvezsaisir l'adresse e-mail à laquelle les notifications seront envoyées.

c. Pour Source Type, choisissez un type de source. La seule option est replication instance.d. Choisissez Yes pour activer l'abonnement. Si vous souhaitez créer l'abonnement mais qu'aucune

notification ne soit envoyée pour l'instant, choisissez No.e. Selon le type de source que vous avez sélectionné, choisissez les catégories d'événement et les

sources pour lesquelles vous souhaitez recevoir des notifications d'événements.

f. Sélectionnez Create.

La console AWS DMS indique que l'abonnement est en cours de création.

API AWS DMSPour vous abonner à une notification d'événements AWS DMS à l'aide de l'API AWS DMS

• Appelez CreateEventSubscription.

Version de l'API API Version 2016-01-01433

Page 441: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Migration de magasins dedonnées volumineux avecAWS Database Migration Service etAWS Snowball Edge

Les migrations de données volumineuses peuvent inclure plusieurs téraoctets d'informations. Ce processuspeut être fastidieux en raison des limites de la bande passante du réseau ou de la quantité même dedonnées. AWS Database Migration Service (AWS DMS) peut utiliser AWS Snowball Edge et Amazon S3pour migrer des bases de données volumineuses plus rapidement que par d'autres méthodes.

AWS Snowball Edge est un service AWS qui fournit un appareil Edge que vous pouvez utiliser pourtransférer des données vers le cloud à des vitesses plus rapides que le réseau. Un périphérique Edge estune appliance appartenant à AWS avec de vastes quantités de stockage intégré. Il utilise le chiffrement256 bits et un module TPM (Trusted Platform Module) standard conçu pour assurer la sécurité et latraçabilité de vos données de bout en bout. AWS Snowball Edge propose de nombreuses fonctionssupplémentaires ; pour plus d'informations, consultez Qu'est-ce qu'un appareil AWS Snowball Edge ? dansle AWS Snowball Edge Developer Guide.

Amazon S3 est un service de stockage et d'extraction AWS. Pour stocker un objet dans Amazon S3, voustéléchargez le fichier que vous voulez stocker vers un compartiment. Lorsque vous chargez un fichier, vouspouvez définir les autorisations pour l'objet, ainsi que celles liées aux métadonnées. Pour de plus amplesinformations, veuillez consulter la documentation S3.

Lorsque vous utilisez un appareil Edge, le processus de migration des données comporte les étapessuivantes :

1. Vous utilisez l'AWS Schema Conversion Tool (AWS SCT) pour extraire les données en local et lestransférer vers un appareil Edge.

2. Vous expédiez le ou les appareils Edge à AWS.3. Lorsqu'AWS reçoit votre envoi, l'appareil Edge charge automatiquement ses données dans un

compartiment Amazon S3.4. AWS DMS prend les fichiers et migre les données vers le magasin de données cible. Si vous utilisez la

capture des données modifiées (CDC), ces mises à jour sont écrites dans le compartiment Amazon S3puis appliquées au magasin de données cible.

Dans les sections suivantes, vous pouvez en savoir plus sur l'utilisation d'un appareil Edge pour migrerdes bases de données relationnelles avec AWS SCT et AWS DMS. Vous pouvez également utiliser unappareil Edge et AWS SCT pour migrer des entrepôts de données sur site vers le cloud AWS. Pour plusd'informations sur les migrations d'entrepôt de données, consultez la section relative à la migration dedonnées à partir d'un entrepôt de données sur site vers Amazon Redshift dans le Guide de l'utilisateurAWS Schema Conversion Tool.

Rubriques• Présentation de la migration de magasins de données volumineux avec DMS et Snowball

Edge (p. 435)• Prérequis pour la migration de magasins de données volumineux avec DMS et Snowball

Edge (p. 436)

Version de l'API API Version 2016-01-01434

Page 442: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrésentation du processus

• Liste de contrôle de migration (p. 436)• Procédures détaillées pour la migration de données à l'aide d'AWS DMS et de Snowball

Edge (p. 438)• Limitations liées à une utilisation avec Snowball Edge et AWS DMS (p. 455)

Présentation de la migration de magasins dedonnées volumineux avec DMS et Snowball Edge

Le processus visant à utiliser AWS DMS et AWS Snowball Edge intègre à la fois les applications sur site etles services gérés par Amazon. Nous utilisons les termes local et distant pour distinguer ces composants.

Un composant local inclut les éléments suivants :

• AWS SCT• Un agent AWS DMS (une version locale de AWS DMS qui fonctionne sur site)• Des appareils Snowball Edge

Un composant distant inclut les éléments suivants :

• Amazon S3• AWS DMS

Dans les sections suivantes, vous trouverez un guide détaillé pour configurer, installer et gérer unemigration AWS DMS à l'aide d'un ou de plusieurs appareils Edge.

Le diagramme suivant présente un aperçu du processus de migration.

La migration implique une tâche locale, au cours de laquelle vous déplacez des données vers un appareilEdge à l'aide de l'agent DMS. Lorsqu'un appareil Edge est chargé, vous le renvoyez à AWS. Si vous avezplusieurs appareils Edge, vous pouvez les renvoyer en même temps, ou l'un après l'autre. Lorsqu'AWSreçoit un appareil Edge, une tâche distante utilisant AWS DMS charge les données dans le magasin dedonnées cible sur AWS.

Pour procéder à une migration depuis un magasin de données local vers un magasin de données AWS,procédez comme suit :

1. Utilisez la AWS Snowball Management Console pour créer une nouvelle tâche en vue de l'importation dedonnées vers S3 avec un appareil Snowball Edge Storage Optimized. La tâche implique une demanded'envoi de l'appareil à votre adresse.

Version de l'API API Version 2016-01-01435

Page 443: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurPrérequis

2. Configurez AWS SCT sur une machine locale pouvant accéder à AWS. Installez l'outil client SnowballEdge sur une autre machine locale.

3. Lorsque l'appareil Edge arrive, mettez-le sous tension, connectez-vous et déverrouillez-le avec l'outilclient. Pour plus d'informations sur la procédure détaillée, consultez Mise en route avec AWS SnowballEdge dans le AWS Snowball Edge Developer Guide.

4. Installez les pilotes Open Database Connectivity (ODBC) pour vos sources de données. Mettez-les surla machine avec l'outil client Edge.

5. Installez et configurez l'agent AWS DMS hôte sur la machine avec l'outil client Edge.

L'agent DMS doit disposer d'une connectivité à la base de données source, AWS SCT, AWS etSnowball Edge. L'agent DMS est pris en charge uniquement sur les plates-formes Linux suivantes :• Red Hat Enterprise Linux versions 6.2 à 6.8, 7.0 et 7.1 (64 bits)• SUSE Linux version 12 (64 bits)

Même si l'agent DMS est fourni dans le package d'installation AWS SCT, il est préférable de ne pas lesinstaller au même endroit. Nous vous recommandons d'installer l'agent DMS sur une machine autre quecelle sur laquelle vous avez installé AWS SCT.

6. Créez un projet dans AWS SCT.7. Configurez AWS SCT pour utiliser Snowball Edge.8. Enregistrez l'agent DMS avec AWS SCT.9. Créez une tâche locale et DMS dans SCT.10.Exécutez et surveillez la tâche dans SCT.

Prérequis pour la migration de magasins dedonnées volumineux avec DMS et Snowball Edge

Avant de démarrer le processus de migration, vous devez :

• Être familiarisé avec les opérations de base d'AWS SCT.• Avoir créé ou pouvoir créer un ou plusieurs compartiments S3 à utiliser pour la migration.• Disposer d'une instance de réplication AWS DMS dans la même région que le compartiment S3.• Être à l'aise avec l'utilisation d'AWS Command Line Interface (AWS CLI).• Être familiarisé avec le guide du développeur Snowball Edge.

Liste de contrôle de migrationPour vous faciliter la tâche au cours de la migration, vous pouvez utiliser la liste de contrôle suivante pourcréer une liste des éléments dont vous avez besoin pendant la migration.

----------------------------------------------------------------DMS Migration Checklist----------------------------------------------------------------

This checklist is for my schemas named:

The database engine that my schemas reside on is:

----------------------------------------------------------------

AWS Region for the migration:

Version de l'API API Version 2016-01-01436

Page 444: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurListe de contrôle de migration

Name of migration job that you created in the AWS Snowball Management Console:

S3 bucket (and folder) for this job:

IAM role that has access to the S3 Bucket and the target database on AWS:

----------------------------------------------------------------

Path to the installation directory of AWS SCT (needed for a future step):

Name/IP of Machine #1 (SCT):

Name/IP of Machine #2 (Connectivity):

----------------------------------------------------------------

IP address of your Snowball Edge:

Port for the Snowball Edge:

Unlock code for the Snowball Edge device:

Path to the manifest file:

Output of the command snowballEdge get-secret-access-key: AWS access key ID: AWS secret access Key:

----------------------------------------------------------------

Confirm ODBC drivers is installed on Machine #2 (Connectivity):

----------------------------------------------------------------

Confirm DMS Agent is installed on Machine #2 (Connectivity):

Confirm DMS Agent is running two processes:

DMS Agent password:

DMS Agent port number:

Confirm that your firewall allows connectivity:

----------------------------------------------------------------

Name of SCT project:

----------------------------------------------------------------

Confirm that DMS Agent is registered with SCT:

New agent or service profile name that you provided:

----------------------------------------------------------------

Confirm local and DMS task exists:

Task name that you provided:

----------------------------------------------------------------

Confirm:

DMS Agent connects to the following: __ The source database

Version de l'API API Version 2016-01-01437

Page 445: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurProcédures détaillées

__ The staging S3 bucket __ The Edge device

DMS task connects to the following: __ The staging S3 bucket __ The target database on AWS

----------------------------------------------------------------

Confirm the following: __ Stopped Edge client __ Powered off Edge device __ Returned Edge device to AWS

Procédures détaillées pour la migration de donnéesà l'aide d'AWS DMS et de Snowball Edge

Dans les sections suivantes vous trouverez des informations détaillées sur les étapes de la migration.

Étape 1 : Créer une tâche Snowball EdgeSuivez les étapes présentées dans la section Mise en route d'un appareil Snowball Edge dans le AWSSnowball Edge Developer Guide. Ouvrez la AWS Snowball Management Console et créez une nouvelletâche pour procéder à l'importation dans Amazon S3.

N'oubliez pas de demander un appareil Snowball Edge (Snowball Edge Storage Optimized), car lesappareils Snowball normaux ne sont pas pris en charge pour AWS DMS. Suivez les invites à l'écran pourles paramètres restants. Vous avez la possibilité de vérifier vos paramètres avant de créer la tâche.

Étape 2: Télécharger et installer l'AWS SchemaConversion Tool (AWS SCT)Vous devez disposer de deux machines locales pour exécuter ce processus, en plus de l'appareil Edge.

Téléchargez l'AWS Schema Conversion Tool et installez-le sur une machine locale qui peut accéderà AWS. Pour obtenir des instructions et des informations sur les systèmes d'exploitation compatibles,consultez Installation et mise à jour d'AWS Schema Conversion Tool.

Sur une autre machine où vous prévoyez d'installer l'agent DMS, téléchargez et installez le client SnowballEdge à partir de Ressources AWS Snowball Edge.

Lorsque cette étape est terminée, vous devez disposer de deux machines :

• Machine 1 (SCT), avec AWS SCT installé• Machine 2 (Connectivité), avec le client Edge, sur laquelle vous prévoyez d'installer l'agent DMS et les

pilotes ODBC pour les bases de données que vous migrez

Étape 3 : Déverrouiller l'appareil Snowball EdgeLorsque l'appareil Edge arrive, préparez-le en vue de son utilisation.

Suivez les étapes présentées dans la section Mise en route d'un appareil AWS Snowball Edge dans leAWS Snowball Edge Developer Guide.

Version de l'API API Version 2016-01-01438

Page 446: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 3 : Déverrouiller l'appareil Snowball Edge

Vous pouvez également consulter la visite guidée Comment puis-je déverrouiller un appareil AWSSnowball Edge ? à partir d'AWS Support, ou la page de marketing Premiers pas avec AWS Snowball Edgepour plus de ressources.

Mettez l'appareil sous tension, connectez-le à votre réseau local, enregistrez l'adresse IP de l'appareil Edgeet procurez-vous le code de déverrouillage et le fichier manifeste à partir de la console Snowball Edge.Dans la console, sélectionnez votre tâche, choisissez View job details (Afficher les détails de la tâche),puis Credentials (Informations d'identification). Enregistrez le code de déverrouillage du client et le fichiermanifeste.

Sur l'écran de l'appareil Edge, obtenez l'adresse IP de l'appareil Edge à partir de l'onglet Connection(Connexion). Déverrouillez ensuite l'appareil à l'aide de la commande snowballEdge unlock enspécifiant l'adresse IP et les informations d'identification. L'exemple suivant présente la syntaxe pour cettecommande.

snowballEdge unlock -i IP_Address -m Local_path_to_manifest_file -u 29_character_unlock_code

Voici un exemple de commande.

snowballEdge unlock \ -i 192.0.2.0 \

Version de l'API API Version 2016-01-01439

Page 447: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Configurer l'hôte de

l'agent DMS avec les pilotes ODBC

-m /Downloads/JID2EXAMPLE-0c40-49a7-9f53-916aEXAMPLE81-manifest.bin \ -u 12345-abcde-12345-ABCDE-12345

Enfin, récupérez la clé d'accès et la clé secrète Snowball Edge à partir de l'appareil à l'aide du client Edge.L'exemple suivant montre l'entrée et la sortie de la commande permettant d'obtenir la clé d'accès.

Exemple d'entrée

snowballEdge list-access-keys \ --endpoint https://192.0.2.0 \ --manifest-file Path_to_manifest_file \ --unlock-code 12345-abcde-12345-ABCDE-12345

Exemple de sortie

{ "AccessKeyIds" : [ "AKIAIOSFODNN7EXAMPLE" ]}

L'exemple suivant montre l'entrée et la sortie de la commande permettant d'obtenir la clé secrète.

Exemple d'entrée

snowballEdge get-secret-access-key \ --access-key-id AKIAIOSFODNN7EXAMPLE \ --endpoint https://192.0.2.0 \ --manifest-file /Downloads/JID2EXAMPLE-0c40-49a7-9f53-916aEXAMPLE81-manifest.bin \ --unlock-code 12345-abcde-12345-ABCDE-12345

Exemple de sortie

[snowballEdge]aws_access_key_id = AKIAIOSFODNN7EXAMPLEaws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Lorsque l'appareil Snowball Edge est prêt à être utilisé, vous pouvez interagir avec lui directement à l'aidede l'AWS CLI ou de l'adaptateur du kit SDK S3 pour Snowball. Cet adaptateur fonctionne aussi avecl'appareil Edge.

Étape 4 : Configurer l'hôte de l'agent DMS avec lespilotes ODBCAvec la machine 2 (Connectivité) de l'étape 2, sur laquelle le client Edge est déjà installé, installez lespilotes ODBC nécessaires. Ces pilotes sont nécessaires pour la connexion à votre base de donnéessource. Le pilote requis varie en fonction du moteur de base de données. Dans les sections suivantes, voustrouverez des informations pour chaque moteur de base de données.

Rubriques• Oracle (p. 441)• Microsoft SQL Server (p. 441)• SAP Sybase ASE (p. 441)• MySQL (p. 441)

Version de l'API API Version 2016-01-01440

Page 448: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 4 : Configurer l'hôte de

l'agent DMS avec les pilotes ODBC

• PostgreSQL (p. 442)

OracleInstallez Oracle Instant Client pour Linux (x86-64) version 11.2.0.3.0 ou version ultérieure.

De plus, si ce n'est déjà inclus dans votre système, vous devez créer un lien symbolique dans le répertoire$ORACLE_HOME\lib directory. Ce lien doit être appelé libclntsh.so et doit pointer vers uneversion spécifique de ce fichier. Par exemple, sur un client Oracle 12c, vous utilisez les opérationssuivantes.

lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so ->/u01/app/oracle/home/lib/libclntsh.so.12.1

De plus, la variable d'environnement LD_LIBRARY_PATH doit être ajoutée au répertoire Oracle lib et auscript site_arep_login.sh sous le dossier lib de l'installation. Ajoutez le script s'il n'existe pas.

vi /opt/amazon/aws-schema-conversion-tool-dms-agent/bin/site_arep_login.sh

export ORACLE_HOME=/usr/lib/oracle/12.2/client64; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

Microsoft SQL ServerInstaller le pilote Microsoft ODBC.

Mettez à jour le script site_arep_login.sh avec le code suivant.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/microsoft/msodbcsql/lib64/

SAP Sybase ASELe client ODBC 64 bits SAP Sybase ASE doit être installé.

Si le répertoire d'installation est /opt/sap, mettez à jour le script site_arep_login.sh avec leséléments suivants.

export SYBASE_HOME=/opt/sapexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SYBASE_HOME/DataAccess64/ODBC/lib:$SYBASE_HOME/DataAccess/ODBC/lib:$SYBASE_HOME/OCS-16_0/lib:$SYBASE_HOME/OCS-16_0/lib3p64:$SYBASE_HOME/OCS-16_0/lib3p

Le fichier /etc/odbcinst.ini doit inclure les entrées suivantes.

[Sybase]Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.soDescription=Sybase ODBC driver

MySQLInstallez MySQL Connector/ODBC pour Linux, version 5.2.6 ou ultérieure.

Version de l'API API Version 2016-01-01441

Page 449: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 5 : Installer l'agent DMS

Assurez-vous que le fichier /etc/odbcinst.ini contient une entrée pour MySQL, comme illustré dansl'exemple suivant.

[MySQL ODBC 5.2.6 Unicode Driver]Driver = /usr/lib64/libmyodbc5w.so UsageCount = 1

PostgreSQLInstaller postgresql94-9.4.4-1PGDG.<OS Version>.x86_64.rpm. Ce package contientl'exécutable psql. Par exemple, postgresql94-9.4.4-1PGDG.rhel7.x86_64.rpm est le packagerequis pour Red Hat 7.

Installez le pilote ODBC postgresql94-odbc-09.03.0400-1PGDG.<OS version>.x86_64 ouultérieure pour Linux, où <OS version> correspond au système d'exploitation de la machine de l'agent.Par exemple, postgresql94-odbc-09.03.0400-1PGDG.rhel7.x86_64 est le client requis pour RedHat 7.

Assurez-vous que le fichier /etc/odbcinst.ini contient une entrée pour PostgreSQL, comme illustrédans l'exemple suivant.

[PostgreSQL]Description = PostgreSQL ODBC driverDriver = /usr/pgsql-9.4/lib/psqlodbc.so Setup = /usr/pgsql-9.4/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2

Étape 5 : Installer l'agent DMSAvec la machine 2 (Connectivité) de l'étape 2, sur laquelle le client Edge et les pilotes ODBC sontdéjà installés, installez et configurez l'agent DMS. L'agent DMS est fourni dans le cadre du packaged'installation AWS SCT, décrit dans le Guide de l'utilisateur AWS Schema Conversion Tool.

Lorsque cette étape est terminée, vous devez disposer de deux machines locales préparées :

• Machine 1 (SCT), avec AWS SCT installé• Machine 2 (Connectivité) avec le client Edge, les pilotes ODBC et l'agent DMS installés

Pour installer l'agent DMS

1. Dans le répertoire d'installation d'AWS SCT, localisez le fichier RPM nommé aws-schema-conversion-tool-dms-agent-2.4.1-R1.x86_64.rpm.

Copiez-le sur la machine 2 (Connectivité), machine de l'agent DMS. SCT et l'agent DMS doivent êtreinstallés sur des machines différentes. L'agent DMS doit se trouver sur la même machine que le clientEdge et les pilotes ODBC.

2. Sur la machine 2 (Connectivité), exécutez la commande suivante pour installer l'agent DMS. Poursimplifier les autorisations, exécutez cette commande en tant qu'utilisateur root.

sudo rpm -i aws-schema-conversion-tool-dms-agent-2.4.0-R2.x86_64.rpm

Cette commande utilise l'emplacement d'installation par défaut /opt/amazon/aws-schema-conversion-tool-dms-agent. Pour installer l'agent DMS sur un autre emplacement, utilisezl'option suivante.

Version de l'API API Version 2016-01-01442

Page 450: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 5 : Installer l'agent DMS

sudo rpm --prefix <installation_directory> -i aws-schema-conversion-tool-dms-agent-2.4.0-R2.x86_64.rpm

3. Pour vérifier que l'agent DMS s'exécute, utilisez la commande suivante.

ps -ef | grep repctl

Le résultat de cette commande doit afficher deux processus en cours d'exécution.

Pour configurer l'agent DMS, vous devez fournir un mot de passe et un numéro de port. Vous utiliserezle mot de passe ultérieurement pour enregistrer l'agent DMS auprès d'AWS SCT. Gardez-le àportée de main. Choisissez un numéro de port non utilisé pour que l'agent DMS puisse écouter lesconnexions AWS SCT. Vous devez configurer votre pare-feu pour permettre la connectivité.

Configurez maintenant l'agent DMS à l'aide du script configure.sh.

sudo /opt/amazon/aws-schema-conversion-tool-dms-agent/bin/configure.sh

L'invite suivante apparaît. Entrez le mot de passe. Lorsque vous y êtes invité, entrez à nouveau le motde passe pour confirmation.

Configure the AWS Schema Conversion Tool DMS Agent serverNote: you will use these parameters when configuring agent in AWS Schema Conversion Tool

Please provide password for the serverUse minimum 8 and up to 20 alphanumeric characters with at least one digit and one capital case character

Password:

Le résultat est le suivant. Indiquez un numéro de port.

chown: missing operand after 'amazon:amazon'Try 'chown --help' for more information./opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl: /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libgssapi_krb5.so.2)/opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl: /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libkrb5.so.3)[setserverpassword command] Succeeded

Please provide port number the server will listen on (default is 3554)Note: you will have to configure your firewall rules accordinglyPort:

Le résultat est le suivant, confirmant que le service est démarré.

Starting service.../opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl: /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libgssapi_krb5.so.2)/opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl:

Version de l'API API Version 2016-01-01443

Page 451: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 6 : Créer un projet AWS SCT

/opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libkrb5.so.3)AWS Schema Conversion Tool DMS Agent was sent a stop signalAWS Schema Conversion Tool DMS Agent is no longer running[service command] Succeeded/opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl: /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libgssapi_krb5.so.2)/opt/amazon/aws-schema-conversion-tool-dms-agent/bin/repctl: /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libcom_err.so.3: no version information available (required by /opt/amazon/aws-schema-conversion-tool-dms-agent/lib/libkrb5.so.3)AWS Schema Conversion Tool DMS Agent was started as PID 1608

Nous vous recommandons d'installer l'AWS Command Line Interface (AWS CLI). À l'aide de l'AWS CLI,vous pouvez interroger l'appareil Snowball Edge pour voir les fichiers de données écrits sur celui-ci. Utilisezles informations d'identification AWS récupérées à partir de Edge pour accéder à l'appareil Edge. Parexemple, vous pouvez exécuter la commande suivante.

aws s3 ls --profile SnowballEdge --endpoint https://192.0.2.0 :8080 bucket-name --recursive

Cette commande produit le résultat suivant.

2018-08-20 10:55:31 53074692 streams/load00000001000573E166ACF4C0/00000001.fcd.gz2018-08-20 11:14:37 53059667 streams/load00000001000573E166ACF4C0/00000002.fcd.gz2018-08-20 11:31:42 53079181 streams/load00000001000573E166ACF4C0/00000003.fcd.gz

Pour arrêter l'agent DMS, exécutez la commande suivante dans le répertoire /opt/amazon/aws-schema-conversion-tool-dms-agent/bin.

./aws-schema-conversion-tool-dms-agent stop

Pour démarrer l'agent DMS, exécutez la commande suivante dans le répertoire /opt/amazon/aws-schema-conversion-tool-dms-agent/bin.

./aws-schema-conversion-tool-dms-agent start

Étape 6 : Créer un projet AWS SCTEnsuite, vous créez un nouveau projet AWS SCT qui spécifie les bases de données source et cible.Pour plus d'informations, consultez Création d'un projet AWS Schema Conversion Tool dans le Guide del'utilisateur AWS Schema Conversion Tool.

Pour créer un nouveau projet dans AWS SCT

1. Démarrez AWS SCT et choisissez File (Fichier), puis New Project (Nouveau projet). La boîte dedialogue New Project s'affiche.

2. Ajoutez les informations du projet suivantes.

Pour ce paramètre Procédez comme suit

Project Name Entrez un nom pour votre projet, qui est stocké localementsur votre ordinateur.

Version de l'API API Version 2016-01-01444

Page 452: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 7 : Configurer AWS SCT pour

utiliser l'appareil Snowball Edge

Pour ce paramètre Procédez comme suit

Emplacement Entrez l'emplacement de votre fichier de projet local.

OLTP Choisissez Base de données transactionnelle (OLTP).

Moteur DB source Choisissez votre magasin de données source.

Moteur DB cible Choisissez votre magasin de données cible.

3. Choisissez OK pour créer votre projet AWS SCT.4. Se connecter à vos bases de données source et cible.

Étape 7 : Configurer AWS SCT pour utiliser l'appareilSnowball EdgeVotre profil de service AWS SCT doit être mis à jour pour utiliser l'agent DMS, version locale d'AWS DMSqui fonctionne sur site.

Pour mettre à jour le profil AWS SCT afin d'utiliser l'agent DMS

1. Démarrer AWS SCT.2. Choisissez Settings (Paramètres), Global Settings (Paramètres globaux), AWS Service Profiles (Profils

de service AWS).3. Choisissez Ajouter un nouveau profil de service AWS.

4. Ajoutez les informations de profil suivantes.

Version de l'API API Version 2016-01-01445

Page 453: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 7 : Configurer AWS SCT pour

utiliser l'appareil Snowball Edge

Pour ce paramètre Procédez comme suit

Profile Name Entrez un nom pour votre projet, qui est stocké localementsur votre ordinateur.

Clé d'accès AWS Entrez la clé d'accès AWS pour le compte AWS et larégion AWS que vous prévoyez d'utiliser pour la migration.Les informations d'identification fournies doivent disposerdes autorisations pour accéder à la tâche Snowball Edgedans AWS.

Clé secrète AWS Entrez la clé secrète AWS pour le compte AWS et la régionAWS que vous prévoyez d'utiliser pour la migration.

Région Choisissez la région AWS du compte que vous utilisez.Vos instance de réplication DMS, compartiment S3 etmagasin de données cible doivent être dans cette régionAWS.

Dossier du compartiment S3 Entrez le nom de compartiment S3 qui vous a été attribuélorsque vous avez créé la tâche Snowball Edge.

5. Une fois que vous avez saisi les informations, choisissez Test Connection (Tester la connexion) pourvérifier qu'AWS SCT peut se connecter au compartiment Amazon S3.

La section Migration de données OLTP locale & DMS de la fenêtre contextuelle doit afficher toutes lesentrées avec un statut Pass. Si le test échoue, l'échec est probablement dû au fait que le compte quevous utilisez ne dispose pas des privilèges appropriés pour accéder au compartiment Amazon S3.

6. Si le test réussit, choisissez OK, puis à nouveau OK pour fermer la fenêtre et la boîte de dialogue.7. Choisissez Import job (Importer une tâche), sélectionnez la tâche Snowball Edge dans la liste, puis

choisissez OK.

Version de l'API API Version 2016-01-01446

Page 454: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 7 : Configurer AWS SCT pour

utiliser l'appareil Snowball Edge

Maintenant, configurez AWS SCT pour utiliser l'appareil Snowball Edge. Entrez l'adresse IP de l'appareilSnowball Edge, le port d'écoute sur l'appareil (la valeur par défaut est 8080), ainsi que la clé d'accès et laclé secrète Snowball Edge que vous avez récupérées précédemment. Choisissez OK pour enregistrer vosmodifications.

Version de l'API API Version 2016-01-01447

Page 455: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 8 : Enregistrer l'agent DMS dans AWS SCT

Étape 8 : Enregistrer l'agent DMS dans AWS SCTEnsuite, vous enregistrez l'agent DMS dans AWS SCT. SCT essaie alors de se connecter à l'agent, enaffichant le statut. Lorsque l'agent est disponible, le statut devient actif.

Pour inscrire l'agent DMS

1. Démarrez AWS SCT, choisissez View (Afficher), puis choisissez Database Migration View (Local &DMS) (Afficher la migration de base de données (locale et DMS)).

2. Choisissez l'onglet Agent, puis choisissez S'inscrire. La boîte de dialogue New Agent Registrations'affiche.

Version de l'API API Version 2016-01-01448

Page 456: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 9 : Créer une tâche locale et DMS

3. Saisissez vos informations dans la boîte de dialogue New Agent Registration (Inscription d'un nouvelagent).

Pour ce paramètre Procédez comme suit

Description Entrez le nom de l'agent.

Nom d'hôte Entrez l'adresse IP de la machine sur laquelle vous avezinstallé l'agent DMS.

Port Entrez le numéro du port que vous avez utilisé lors de laconfiguration de l'agent DMS.

Mot de passe : Entrez le mot de passe que vous avez utilisé lors de laconfiguration de l'agent DMS.

4. Choisissez S'inscrire pour inscrire l'agent auprès de votre projet AWS SCT.

Étape 9 : Créer une tâche locale et DMSEnsuite, vous créez la tâche qui est la tâche de migration de bout en bout. Cette tâche inclut deux sous-tâches :

• La sous-tâche locale – Cette tâche migre les données de la base de données source vers l'applianceSnowball Edge.

• La sous-tâche DMS – Cette tâche déplace les données de l'appliance vers le compartiment Amazon S3et les migre vers la base de données cible.

Note

Nous vous recommandons de tester votre migration avant d'utiliser l'appareil Snowball Edge. Pource faire, vous pouvez configurer une tâche qui envoie des données, comme une seule table, versun compartiment Amazon S3 à la place de l'appareil Snowball Edge.

Version de l'API API Version 2016-01-01449

Page 457: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 9 : Créer une tâche locale et DMS

Pour créer la tâche de migration de bout en bout

1. Démarrez AWS SCT, choisissez View (Afficher), puis choisissez Database Migration View (Local &DMS) (Afficher la migration de base de données (locale et DMS)).

2. Dans le volet gauche où figure le schéma de votre base de données source, choisissez un schéma àmigrer. Ouvrez le menu contextuel (clic droit) du schéma, puis choisissez Create Local & DMS Task(Créer une tâche locale et DMS).

Vous ne pouvez pas migrer des tables individuelles via AWS DMS et Snowball Edge.

L'écran suivant apparaît.

Version de l'API API Version 2016-01-01450

Page 458: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 9 : Créer une tâche locale et DMS

3. Ajoutez les informations sur votre tâche.

Pour ce paramètre Procédez comme suit

Nom de la tâche Entrez un nom pour la tâche.

Agent Choisissez Agent DMS.

Instance de réplication Choisissez l'instance de réplication AWS DMS que voussouhaitez utiliser.

Type de migration Choisissez le type de migration de votre choix :

Choisissez Migrer les données existantes pour migrerle contenu du schéma choisi. Ce processus est appeléchargement complet dans AWS DMS.

Choisissez Migrer les données existantes et répliquer lesmodifications en cours pour migrer le contenu du schémachoisi et capturer l'ensemble des modifications en coursapportées à la base de données. Ce processus est appeléchargement complet et capture des données modifiées(CDC) dans AWS DMS.

Version de l'API API Version 2016-01-01451

Page 459: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 9 : Créer une tâche locale et DMS

Pour ce paramètre Procédez comme suit

Mode de préparation des tables cibles Sélectionnez le mode de préparation que vous voulezutiliser :

Tronquer : les tables sont tronquées sans incidence sur lesmétadonnées de la table.

Supprimer les tables sur la cible : les tables sontsupprimées et de nouvelles tables sont créées à leur place.

Ne rien faire : les données et métadonnées des tablescibles ne sont pas modifiées.

Rôle IAM Choisissez le rôle IAM prédéfini autorisé à accéder aucompartiment Amazon S3 et à la base de données cible.Pour plus d'informations sur les autorisations requisespour accéder à un compartiment Amazon S3, consultezConditions préalables lors de l'utilisation de Amazon S3comme source pour AWS DMS.

Format de compression Choisissez de télécharger des fichiers sous formecompressée ou non :

GZIP - Les fichiers sont compressés avant le chargement.Il s'agit de l'option par défaut.

Pas de compression – Les extractions sont plus rapides,mais prennent plus d'espace.

Journalisation Choisissez Enable (Activer) pour qu'Amazon CloudWatchcrée des journaux pour la migration. Vous serez facturépour ce service. Pour plus d'informations sur CloudWatch,consultez Fonctionnement de Amazon CloudWatch.

Description Entrez une description de la tâche.

S3 Bucket Entrez le nom d'un compartiment S3 configuré pour cettetâche Snowball Edge dans la console Snowball Edge

Use Snowball Edge (Utiliser FrozenEdge)

Cochez cette case pour utiliser Snowball Edge. Si cettecase n'est pas cochée, les données sont chargéesdirectement dans le compartiment S3.

Nom de la tâche Choisissez le nom de la tâche Snowball Edge que vousavez créée.

Snowball Edge IP (IP Frozen Edge) Entrez l'adresse IP de l'appliance Snowball Edge.

Port Entrez la valeur de port pour l'appliance Snowball Edge.

Local Amazon S3 Access key (Cléd'accès Amazon S3 locale)

Entrez la clé d'accès Snowball Edge locale que vous avezrécupérée à partir de l'appareil.

Local Amazon S3 Secret key (Clésecrète Amazon S3 locale)

Entrez la clé secrète Snowball Edge locale que vous avezrécupérée à partir de l'appareil.

4. Choisissez Create pour créer la tâche.

Version de l'API API Version 2016-01-01452

Page 460: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 10 : Exécuter et surveiller la tâche dans SCT

Étape 10 : Exécuter et surveiller la tâche dans SCTVous pouvez démarrer la tâche de migration lorsque les connexions à tous les points de terminaison ontabouti, y compris les suivantes :

• Les connexions de l'agent DMS à :• la base de données source• le compartiment Amazon S3 intermédiaire• l'appareil Edge

• Les connexions de la tâche DMS à :• le compartiment Amazon S3 intermédiaire• la base de données cible sur AWS

Si toutes les connexions fonctionnent correctement, votre console SCT ressemble à la capture d'écransuivante, et vous êtes prêt à commencer.

Utilisez la procédure suivante pour démarrer la migration.

Pour démarrer la tâche de migration

1. Choisissez la tâche de migration, puis choisissez Start (Démarrer).

Version de l'API API Version 2016-01-01453

Page 461: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurÉtape 10 : Exécuter et surveiller la tâche dans SCT

2. Pour surveiller l'agent DMS, choisissez Show Log (Afficher le journal). Les détails du journal incluentles journaux du serveur de l'agent (Journal de l'agent) et de la tâche locale en cours d'exécution(Journal de la tâche). La connectivité au point de terminaison est réalisée par le serveur. La tâchelocale n'étant pas en cours d'exécution, elle n'a pas de journal de tâche. Les problèmes de connexionsont listés sous l'onglet Agent log (Journal de l'agent).

3. Vérifiez que le statut de la tâche de migration est à 50 %. Vous pouvez utiliser la console SnowballEdge ou AWS SCT pour vérifier le statut de l'appareil.

Une fois que les tables sources ont été chargées sur l'appliance, Snowball Edge, AWS SCT met àjour le statut de la tâche et indique que celle-ci est réalisée à 50 %. En effet, l'autre moitié de la tâcheconsiste à ce qu'AWS DMS déplace les données d'Amazon S3 vers le magasin de données cible.

Version de l'API API Version 2016-01-01454

Page 462: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLimites

4. Suivez les étapes décrites dans la documentation Snowball Edge, en commençant par la sectionnommée Arrêtez le client Snowball et éteignez la Snowball Edge. Ces étapes comprennent leséléments suivants :

• Arrêt du client Snowball Edge• Mise hors tension de l'appareil Edge• Renvoi de l'appareil Edge à AWS

5. Terminer la migration après avoir renvoyé l'appareil à AWS implique d'attendre que la tâche distantesoit terminée.

Lorsque l'appliance Snowball Edge arrive chez AWS, la tâche distante (DMS) commence à s'exécuter.Si le type de migration que vous avez sélectionné était Migrate existing data (Migrer les donnéesexistantes), le statut de la tâche DMS indique que celle-ci est terminée à 100 % lorsque les donnéesont été transférées depuis Amazon S3 vers le magasin de données cible.

Si vous définissez le mode de tâche de façon à inclure la réplication continue, une fois que lechargement complet est terminé, la tâche continue à s'exécuter pendant qu'AWS DMS applique lesmodifications en cours.

Limitations liées à une utilisation avec SnowballEdge et AWS DMS

Il existe certaines limites dont vous devez tenir compte lorsque vous utilisez AWS Snowball Edge :

• Chaque tâche AWS SCT crée deux connexions de point de terminaison sur AWS DMS. Si vous créezplusieurs tâches, vous pouvez atteindre une limite de ressource pour le nombre de points de terminaisonque vous pouvez créer.

• Un schéma est la portée de tâche minimale lorsque vous utilisez Snowball Edge. Vous ne pouvez pasmigrer des tables individuelles ou des sous-ensembles de table via Snowball Edge.

• L'agent DMS ne prend pas en charge les configurations de proxy HTTP/HTTPS ou SOCKS. Lesconnexions à la source et à la cible peuvent échouer si l'hôte de l'agent DMS utilise des proxy.

• Le mode LOB limite la taille des fichiers LOB à 32 Ko. Les fichiers LOB dont la taille est supérieure à32 Ko ne sont pas migrés.

• Dans certains cas, une erreur peut se produire lors du chargement à partir de la base de données localesur l'appareil Edge ou lors du chargement des données à partir d'Amazon S3 sur la base de donnéescible. Dans certains de ces cas, l'erreur est récupérable et la tâche peut redémarrer. Si AWS DMS nepeut pas récupérer l'erreur, la migration s'arrête. Si cela se produit, contactez AWS Support.

Version de l'API API Version 2016-01-01455

Page 463: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLenteur d'exécution des tâches de migration

Résolution des problèmesliés aux tâches de migrationAWS Database Migration Service

Les sections suivantes fournissent des informations concernant la résolution des problèmes avecAWS Database Migration Service (AWS DMS).

Rubriques• Lenteur d'exécution des tâches de migration (p. 456)• La barre d’état des tâches ne bouge pas (p. 457)• Clés étrangères et index secondaires manquants (p. 457)• Problèmes de connexion Amazon RDS (p. 457)• Problèmes de mise en réseau (p. 458)• Capture des données modifiées (CDC) bloquée après le chargement complet (p. 458)• Erreurs de violation de clé primaire lorsque vous redémarrez une tâche (p. 459)• Échec de chargement initial du schéma (p. 459)• Échec des tâches avec une erreur inconnue (p. 459)• Le redémarrage d'une tâche charge les tables dès le début (p. 459)• Nombre de tables par tâche (p. 459)• Les tâches échouent lorsque la clé primaire est créée sur la colonne LOB (p. 459)• Dupliquer les enregistrements sur la table cible sans clé primaire (p. 460)• Points de terminaison sources dans la plage IP réservée (p. 460)• Résolution des problèmes spécifiques d'Oracle (p. 460)• Résolution des problèmes spécifiques de MySQL (p. 463)• Résolution des problèmes spécifiques de PostgreSQL (p. 467)• Résolution de problèmes spécifiques de Microsoft SQL Server (p. 469)• Dépannage de problèmes spécifiques d'Amazon Redshift (p. 471)• Résolution des problèmes spécifiques de Amazon Aurora MySQL (p. 473)

Lenteur d'exécution des tâches de migrationPlusieurs problèmes peuvent entraîner la lenteur d'exécution d'une tâche de migration, ou pour les tâchessuivantes, une lenteur d'exécution supérieure à celle de la tâche initiale. La raison la plus courante de lalenteur d'une tâche de migration en cours d'exécution lentement est l'insuffisance des ressources allouéesà l'instance de réplication AWS DMS. Vérifiez l'utilisation que fait votre instance de réplication de l'UC, dela mémoire, des fichiers d'échange et des E/S par seconde afin de garantir que votre instance dispose desuffisamment de ressources pour les tâches que vous exécutez sur cette dernière. Par exemple, plusieurstâches avec Amazon Redshift comme point de terminaison utilisent un volume important d'E/S. Vous

Version de l'API API Version 2016-01-01456

Page 464: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLa barre d’état des tâches ne bouge pas

pouvez augmenter le nombre d'E/S par seconde pour votre instance de réplication ou fractionner vostâches sur plusieurs instances de réplication pour une migration plus efficace.

Pour plus d'informations sur la définition de la taille de votre instance de réplication, consultez la pageChoix de la taille optimale pour une instance de réplication (p. 476)

Vous pouvez augmenter la vitesse d'une charge de migration initiale en procédant comme suit :

• Si votre cible est une instance DB Amazon RDS, vérifiez que Multi-AZ n'est pas activé pour l'instance DBcible.

• Désactivez les sauvegardes ou la journalisation automatiques sur la base de données cible au cours duchargement et réactivez ces fonctions une fois la migration terminée.

• Si la fonction est disponible sur la cible, utilisez les IOPS provisionnées.• Si vos données de migration contient LOB, vérifiez que la tâche est optimisée pour la migration

LOB. Consultez Paramètres de metadonnées des tâches cibles (p. 334) pour plus d'informations surl'optimisation des LOB.

La barre d’état des tâches ne bouge pasLa barre d'état des tâches donne une estimation de la progression de la tâche. La qualité de cetteestimation dépend de la qualité des statistiques de table de la base de données source ; meilleures sont lesstatistiques de table, plus précise sera l'estimation. Pour une tâche avec une seule table ne disposant pasde statistiques de lignes estimées, nous ne pouvons par fournir une estimation complète en pourcentage.Dans ce cas, l’état de la tâche et l'indication des lignes chargées peuvent servir à confirmer que la tâcheest bien en cours d'exécution et de progression.

Clés étrangères et index secondaires manquantsAWS DMS crée des tables, des clés primaires, et dans certains cas des index uniques, mais il ne créepas d'autres objets qui ne sont pas obligatoires pour une migration efficace des données de la source.Par exemple, il ne crée pas d'index secondaires, de contraintes de clés non primaires ou de valeurs dedonnées par défaut.

Pour migrer des objets secondaires à partir de votre base de données, utilisez les outils natifs de la basede données si vous effectuez une migration vers le même moteur de base de données que votre base dedonnées source. Utilisez Schema Conversion Tool si vous effectuez une migration vers un moteur de basede données autre que celui utilisé par votre base de données source pour migrer des objets secondaires.

Problèmes de connexion Amazon RDSPlusieurs raisons peuvent expliquer l'incapacité à se connecter à une instance DB Amazon RDS que vousdéfinissez en tant que point de terminaison, parmi lesquelles :

• Le nom d'utilisateur et le mot de passe sont incorrects.• Vérifiez que la valeur de point de terminaison affichée dans la console Amazon RDS pour l'instance est

identique à l'identifiant de point de terminaison que vous avez utilisé pour créer le point de terminaisonAWS DMS.

• Vérifiez que la valeur de port affichée dans la console Amazon RDS pour l'instance est la même que leport assigné au point de terminaison AWS DMS.

• Vérifiez que le groupe de sécurité assigné à l'instance de base de données Amazon RDS permet desconnexions à partir de l'instance de réplication AWS DMS.

Version de l'API API Version 2016-01-01457

Page 465: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMessage d'erreur : Incorrect thread

connection string: incorrect thread value 0

• Si l'instance de réplication AWS DMS et l'instance de base de données Amazon RDS ne se trouvent pasdans le même VPC, vérifiez que l'instance de base de données est accessible publiquement.

Message d'erreur : Incorrect thread connection string:incorrect thread value 0Cette erreur peut souvent se produire lorsque vous testez la connexion vers un point de terminaison.L'erreur indique qu'une erreur liée à la chaîne de connexion a lieu, par exemple, un espace après l'adresseIP de l'hôte ou un caractère incorrect copié dans la chaîne de connexion.

Problèmes de mise en réseauLes problèmes de mise en réseau les plus répandus portent sur le groupe de sécurité VPC utilisé parl'instance de réplication AWS DMS. Par défaut, ce groupe de sécurité possède des règles qui autorisentle trafic sortant à 0.0.0.0/0 sur tous les ports. Si vous modifiez ce groupe de sécurité ou que vousutilisez votre propre groupe de sécurité, le trafic sortant doit, au minimum, être autorisé sur les points determinaison sources et cibles des ports de base de données respectifs.

Parmi les autres problèmes liés à la configuration, citons les suivants :

• L'instance de réplication et les points de terminaison source et cibles se trouvent dans le même VPC :— le groupe de sécurité utilisé par les points de terminaison doit autoriser le trafic entrant sur le portde base de données à partir de l'instance de réplication. Veillez que le groupe de sécurité utilisé parl'instance de réplication dispose du trafic entrant vers les points de terminaison, ou créez une règle dansle groupe de sécurité utilisé par les points de terminaison qui autorise l'adresse IP privée de l'accès à laréplication d'instance.

• Le point de terminaison source se trouve en dehors du VPC utilisé par l'instance de réplication (avec lapasserelle Internet)— : le groupe de sécurité du VPC doit inclure des règles de routage qui envoient letrafic non destiné au VPC vers la passerelle Internet. Dans cette configuration, la connexion au point determinaison semble provenir de l'adresse IP publique sur l'instance de réplication.

• Le point de terminaison source est en dehors du VPC utilisé par l'instance de réplication (avec lapasserelle NAT) : —vous pouvez configurer une passerelle NAT (Network Address Translation,traduction d'adresses réseau) en utilisant une seule adresse IP Elastic liée à une seule interface réseauElastic qui reçoit ensuite un identificateur NAT (nat-#####). Si le VPC comporte une route par défautpour cette passerelle NAT au lieu de la passerelle Internet, l'instance de réplication apparaît pourcontacter le point de terminaison de base de données à l'aide de l'adresse IP publique de la passerelleInternet. Dans ce cas, le trafic entrant vers le point de terminaison de base de données en dehors duVPC doit autoriser le trafic entrant à partir de l'adresse NAT au lieu de l'adresse IP publique de l'instancede réplication.

Capture des données modifiées (CDC) bloquéeaprès le chargement complet

Il se peut que les modifications de réplication soient lentes ou bloquées après une migration de chargementcomplet si plusieurs paramètres AWS DMS sont conflit les uns avec les autres. Par exemple, si leparamètre Mode de préparation des tables cibles est défini sur Ne rien faire ou Tronquer, c'est que vousavez demandé à AWS DMS de ne pas configurer les tables cibles, notamment de ne pas créer d'indexprincipaux et uniques. Si vous n'avez pas créé des clés primaires ou uniques sur les tables cibles, AWSDMS doit réaliser une analyse complète de la table pour chaque mise à jour, ce qui peut avoir un impactconsidérable sur les performances.

Version de l'API API Version 2016-01-01458

Page 466: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurErreurs de violation de clé primairelorsque vous redémarrez une tâche

Erreurs de violation de clé primaire lorsque vousredémarrez une tâche

Cette erreur peut se produire lorsque des données restent dans la base de données cible depuis une tâchede migration précédente. Si le paramètre Mode de préparation des tables cibles est défini sur Ne rien faire,AWS DMS ne réalise aucun préparation sur la table cible, y compris le nettoyage de données insérées àpartir d'une tâche précédente. Afin de redémarrer votre tâche et d'éviter ces erreurs, vous devez supprimerles lignes insérées dans les tables cibles à partir de l'exécution précédente de la tâche.

Échec de chargement initial du schémaSi votre chargement initial de schémas échoue avec une erreur de typeOperation:getSchemaListDetails:errType=, status=0, errMessage=, errDetails=, celasignifie que le compte d'utilisateur utilisé par AWS DMS pour se connecter au point de terminaison sourcen'a pas les autorisations nécessaires.

Échec des tâches avec une erreur inconnueLa cause de ces types d'erreur peut varier, mais souvent ce problème implique une insuffisance desressources allouées à l'instance de réplication d'AWS DMS. Vérifiez l'utilisation que fait votre instance deréplication de l'UC, de la mémoire, des fichiers d'échange et des E/S par seconde afin de garantir quevotre instance dispose de suffisamment de ressources pour effectuer la migration. Pour plus d'informationsconcernant la supervision, consultez la page Métriques du service de migration des données (p. 411)

Le redémarrage d'une tâche charge les tables dèsle début

AWS DMS redémarre le chargement de la table dès le début lorsque le chargement initial d'une tablene s'est pas terminé. Lorsqu'une tâche est redémarrée, AWS DMS ne recharge pas les tables dont lechargement initial est terminé, mais il recharge les tables depuis le début lorsque le chargement initial nes'est pas terminé.

Nombre de tables par tâcheIl n'existe pas de limite au nombre de tables par tâche de réplication, mais il s'avère généralement judicieuxde limiter le nombre de tables dans une tâche à moins de 60 000. L'utilisation des ressources peut souventêtre un goulot d'étranglement lorsqu'une tâche unique utilise plus de 60 000 tables.

Les tâches échouent lorsque la clé primaire estcréée sur la colonne LOB

En mode LOB COMPLET ou LOB LIMITÉ, AWS DMS ne prend pas en charge la réplication des clésprimaires qui sont des types de données LOB. DMS effectue initialement la migration d'une ligne avec unecolonne LOB comme null, puis met à jour ultérieurement la colonne LOB. Ainsi, lorsque la clé primaire estcréée sur une colonne LOB, l'insertion initiale échoue car la clé primaire ne peut pas être null. Comme

Version de l'API API Version 2016-01-01459

Page 467: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDupliquer les enregistrements sur

la table cible sans clé primaire

solution de contournement, ajoutez une autre colonne en tant que clé primaire et supprimez la clé primairede la colonne LOB.

Dupliquer les enregistrements sur la table ciblesans clé primaire

L'exécution d'une tâche de chargement complet + CDC peut créer des enregistrements en double sur lestables cibles sans clé primaire ni index unique. Pour éviter de dupliquer les enregistrements sur les tablescibles pendant les tâches de chargement complet + CDC, assurez-vous que les tables cibles ont une cléprimaire ou un index unique.

Points de terminaison sources dans la plage IPréservée

Si une base de données source AWS DMS utilise une adresse IP comprise dans la plage IP réservée192.168.0.0/24, le test de connexion du point de terminaison source échoue. Les étapes suivantesfournissent une solution de contournement possible :

1. Recherchez une instance EC2 qui ne figure pas dans la plage réservée et qui peut communiquer avecla base de données source dans 192.168.0.0/24.

2. Installez un proxy socat et exécutez-le. Par exemple :

yum install socat socat -d -d -lmlocal2 tcp4-listen:database port,bind=0.0.0.0,reuseaddr,fork tcp4:source_database_ip_address:database_port&

Utilisez l'adresse IP de l'instance EC2 et le port de base de données indiqué ci-dessus pour le point determinaison AWS DMS. Assurez-vous que le point de terminaison dispose du groupe de sécurité quipermet à AWS DMS de lui parler via le port de base de données.

Résolution des problèmes spécifiques d'OracleLes problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de données Oracle.

Rubriques• Extraire les données à partir de vues (p. 461)• Migration des LOB à partir d'Oracle 12c (p. 461)• Basculement entre Oracle Binary Reader et Oracle LogMiner (p. 461)• Erreur : CDC Oracle arrêtée 122301 nombre maximal de nouvelles tentatives de CDC Oracle

dépassé. (p. 461)• Ajout automatique d'une journalisation supplémentaire à un point de terminaison source

Oracle (p. 462)• Modifications de LOB non capturées (p. 462)• Erreur : ORA-12899 : valeur trop grande pour la colonne <nom de la colonne> (p. 462)• Mauvaise interprétation du type de données NUMBER (p. 463)

Version de l'API API Version 2016-01-01460

Page 468: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurExtraire les données à partir de vues

Extraire les données à partir de vuesVous pouvez extraire les données d'une vue une fois ; vous ne pouvez pas les utiliser pour la réplicationcontinue. Pour pouvoir extraire des données à partir de vues, vous devez ajouter le code suivant à la zoneAttributs de connexion supplémentaires dans la section Avancé du point de terminaison source Oracle.Notez que lorsque vous extrayez les données d'une vue, la vue est représentée sous la forme d'une tablesur le schéma cible.

exposeViews=true

Migration des LOB à partir d'Oracle 12cAWS DMS peut utiliser deux méthodes pour capturer les modifications apportées à une base de donnéesOracle, Binary Reader et Oracle LogMiner. Par défaut, AWS DMS utilise Oracle LogMiner pour capturer lesmodifications. Cependant, dans Oracle 12c, Oracle LogMiner ne pas prend en charge les colonnes LOB.Pour capturer les modifications apportées aux colonnes LOB dans Oracle 12c, utilisez Binary Reader.

Basculement entre Oracle Binary Reader et OracleLogMinerAWS DMS peut utiliser deux méthodes pour capturer les modifications apportées à une base de donnéessource Oracle, Binary Reader et Oracle LogMiner. Oracle LogMiner est la méthode par défaut. Pour utiliserBinary Reader pour capturer les modifications, procédez comme suit :

Pour utiliser Binary Reader pour capturer des modifications

1. Connectez-vous à AWS Management Console et sélectionnez DMS.2. Sélectionnez Points de terminaison.3. Sélectionnez le point de terminaison source Oracle que vous souhaitez utiliser avec Binary Reader.4. Sélectionnez Modify.5. Sélectionnez Avancé, puis ajoutez le code suivant dans la zone de texte Attributs de connexion

supplémentaires :

useLogminerReader=N

6. Utilisez un outil de développement Oracle tel que SQL-Plus pour accorder le privilège supplémentairesuivant au compte d'utilisateur AWS DMS utilisé pour vous connecter au point de terminaison Oracle :

SELECT ON V_$TRANSPORTABLE_PLATFORM

Erreur : CDC Oracle arrêtée 122301 nombre maximalde nouvelles tentatives de CDC Oracle dépassé.Cette erreur se produit lorsque les journaux d'archive Oracle nécessaires ont été supprimés de votreserveur avant qu'AWS DMS ait pu les utiliser pour capturer les modifications. Augmentez vos stratégiesde conservation des journaux sur votre serveur de base de données. Pour une base de données

Version de l'API API Version 2016-01-01461

Page 469: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAjout automatique d'une journalisation supplémentaire

à un point de terminaison source Oracle

Amazon RDS, exécutez la procédure suivante pour augmenter la durée de conservation des journaux.Par exemple, le code suivant augmente la durée de conservation des journaux sur une instance DBAmazon RDS à 24 heures.

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

Ajout automatique d'une journalisation supplémentaireà un point de terminaison source OraclePar défaut, la journalisation supplémentaire d'AWS DMS est désactivée. Pour activer automatiquement lajournalisation supplémentaire pour un point de terminaison source Oracle, procédez comme suit.

Pour ajouter la journalisation supplémentaire à un point de terminaison source Oracle

1. Connectez-vous à AWS Management Console et sélectionnez DMS.2. Sélectionnez Points de terminaison.3. Sélectionnez le point de terminaison source Oracle auquel vous souhaitez ajouter la journalisation

supplémentaire.4. Sélectionnez Modify.5. Sélectionnez Avancé, puis ajoutez le code suivant dans la zone de texte Attributs de connexion

supplémentaires :

addSupplementalLogging=Y

6. Sélectionnez Modify.

Modifications de LOB non capturéesActuellement, une table doit avoir une clé primaire pour qu'AWS DMS puisse capturer les modificationsLOB. Si une table qui contient des données de type LOB ne possède pas de clé primaire, vous pouvezréaliser plusieurs actions pour capturer les modifications LOB :

• Ajouter une clé primaire à la table. Il peut suffire d'ajouter une colonne ID et de la renseigner avec uneséquence à l'aide d'un déclencheur.

• Créer une vue matérialisée de la table qui inclut un ID généré par le système en tant que clé primaire etmigrer la vue matérialisée plutôt que la table.

• Créer une copie de secours logique, ajouter une clé primaire à la table et effectuer la migration à partir dela copie de secours logique.

Erreur : ORA-12899 : valeur trop grande pour lacolonne <nom de la colonne>L'erreur « ORA-12899 : valeur trop grande pour la colonne <nom de la colonne> » est souvent due à uneincompatibilité dans les jeux de caractères utilisés par les bases de données source et cible ou lorsqueles paramètres NLS diffèrent entre les deux bases de données. Cette erreur survient souvent lorsque leparamètre NLS_LENGTH_SEMANTICS de base de données source est défini à la valeur CHAR et que leparamètre NLS_LENGTH_SEMANTICS de la base de données cible est défini à la valeur BYTE.

Version de l'API API Version 2016-01-01462

Page 470: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMauvaise interprétation du type de données NUMBER

Mauvaise interprétation du type de données NUMBERLe type de données Oracle NUMBER est converti en divers types de données AWS DMS, selon laprécision et l'échelle du type de données NUMBER. Ces conversions sont documentées ici Types dedonnées sources pour Oracle (p. 146). La façon dont le type NUMBER est converti peut également êtreaffectée par l'utilisation d'attributs de connexion supplémentaires pour le point de terminaison sourceOracle. Ces attributs de connexion supplémentaires sont documentés sur la page Attributs de connexionsupplémentaires lors de l'utilisation d'Oracle comme source pour AWS DMS (p. 140).

Résolution des problèmes spécifiques de MySQLLes problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de données MySQL.

Rubriques• Échec de la tâche CDC pour le point de terminaison d'instance de base de données Amazon RDS car

la journalisation binaire est désactivée (p. 463)• Les connexions à une instance MySQL cible sont déconnectées durant une tâche (p. 463)• Ajout de la validation automatique à un point de terminaison compatible MySQL (p. 464)• Désactiver les clés étrangères sur un point de terminaison cible compatible MySQL (p. 464)• Caractères remplacés par un point d'interrogation (p. 465)• Entrées du journal « événement incorrect » (p. 465)• Capture de données modifiées avec MySQL 5.5 (p. 465)• Augmentation de la durée de conservation des journaux binaires pour les instances de base de

données Amazon RDS (p. 465)• Message du journal : quelques modifications de la base de données source n'ont eu aucun impact

lorsqu'elles ont été appliquées à la base de données cible. (p. 466)• Erreur : Identificateur trop long (p. 466)• Erreur : un jeu de caractères non pris en charge entraîne l'échec de la conversion des données de

champ (p. 466)• Erreur : page de codes 1252 à UTF8 [120112] Échec de la conversion des données d'un

champ (p. 467)

Échec de la tâche CDC pour le point de terminaisond'instance de base de données Amazon RDS car lajournalisation binaire est désactivéeCe problème se produit avec les instances de base de données Amazon RDS car les sauvegardesautomatiques sont désactivées. Activez les sauvegardes automatiques en définissant la période deconservation des sauvegardes avec une valeur différente de zéro.

Les connexions à une instance MySQL cible sontdéconnectées durant une tâcheSi une tâche contenant des LOB est déconnectée d'une cible MySQL et si le journal des tâches présente letype d'erreur suivant, vous devez réglez certains de vos paramètres de tâche.

Version de l'API API Version 2016-01-01463

Page 471: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAjout de la validation automatique à unpoint de terminaison compatible MySQL

[TARGET_LOAD ]E: RetCode: SQL_ERROR SqlState: 08S01 NativeError: 2013 Message: [MySQL][ODBC 5.3(w) Driver][mysqld-5.7.16-log]Lost connection to MySQL server during query [122502] ODBC general error.

[TARGET_LOAD ]E: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2006 Message: [MySQL][ODBC 5.3(w) Driver]MySQL server has gone away [122502] ODBC general error.

Pour résoudre le problème de déconnexion d'une tâche à une cible MySQL, procédez comme suit :

• Vérifiez que vos variables de base de données max_allowed_packet sont assez grandes pourcontenir la plus grande taille de LOB.

• Vérifiez que les variables suivantes sont définies pour présenter une valeur de délai d'expiration élevée.Nous vous recommandons d'utiliser une valeur d'au moins 5 minutes pour chacune de ces variables.• net_read_timeout

• net_write_timeout

• wait_timeout

• interactive_timeout

Ajout de la validation automatique à un point determinaison compatible MySQLPour ajouter la validation automatique à un point de terminaison cible compatible MySQL

1. Connectez-vous à AWS Management Console et sélectionnez DMS.2. Sélectionnez Points de terminaison.3. Sélectionnez le point de terminaison cible compatible MySQL auquel vous souhaitez ajouter la

validation automatique.4. Sélectionnez Modify.5. Sélectionnez Avancé, puis ajoutez le code suivant dans la zone de texte Attributs de connexion

supplémentaires :

Initstmt= SET AUTOCOMMIT=1

6. Sélectionnez Modify.

Désactiver les clés étrangères sur un point determinaison cible compatible MySQLVous pouvez désactiver les contrôles de clés étrangères sur MySQL en ajoutant les éléments suivants à lazone Attributs de connexion supplémentaire dans la section Avancé du point de terminaison cible MySQL,Amazon Aurora avec compatibilité MySQL ou MariaDB.

Pour désactiver les clés étrangères sur un point de terminaison cible compatible MySQL

1. Connectez-vous à AWS Management Console et sélectionnez DMS.

Version de l'API API Version 2016-01-01464

Page 472: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurCaractères remplacés par un point d'interrogation

2. Sélectionnez Points de terminaison.3. Sélectionnez le point de terminaison cible MySQL, Aurora MySQL ou MariaDB pour lequel vous voulez

désactiver les clés étrangères.4. Sélectionnez Modify.5. Sélectionnez Avancé, puis ajoutez le code suivant dans la zone de texte Attributs de connexion

supplémentaires :

Initstmt=SET FOREIGN_KEY_CHECKS=0

6. Sélectionnez Modify.

Caractères remplacés par un point d'interrogationCe problème se produit suivant lorsque les caractères de point de terminaison source ont été codés parun jeu de caractères non pris en charge par AWS DMS. Par exemple, les versions de moteur AWS DMSantérieures à la version 3.1.1 ne prennent pas en charge le jeu de caractères UTF8MB4.

Entrées du journal « événement incorrect »Les entrées « événement incorrect » dans les journaux de migration indiquent généralement qu'uneopération DDL non pris en charge a été lancée sur le point de terminaison de la base de données source.Les opérations de DDL déclenchent un événement que l'instance de réplication ne peut pas ignorer ; enconséquence un événement incorrect est enregistré. Pour résoudre ce problème, redémarrez la tâchedepuis le début, ce qui rechargera les tables et commencera à capturer les modifications après quel'opération de DDL non pris en charge a été émise.

Capture de données modifiées avec MySQL 5.5La capture de données modifiées (CDC) AWS DMS pour les bases de données compatibles MySQLAmazon RDS nécessite la journalisation binaire basée sur les lignes de l'image complète, qui n'est pasprise en charge dans MySQL version 5.5 ou inférieure. Pour pouvoir utiliser la CDC AWS DMS, vous devezmettre à niveau votre instance de base de données Amazon RDS à MySQL version 5.6.

Augmentation de la durée de conservation desjournaux binaires pour les instances de base dedonnées Amazon RDSAWS DMS nécessite la conservation des fichiers journaux binaires pour la capture de données modifiées.Pour augmenter la durée de conservation des journaux sur une instance DB Amazon RDS, utilisez laprocédure suivante. L'exemple suivant permet d'augmenter la durée de conservation des journaux binairesà 24 heures.

call mysql.rds_set_configuration('binlog retention hours', 24);

Version de l'API API Version 2016-01-01465

Page 473: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMessage du journal : quelques modifications de la basede données source n'ont eu aucun impact lorsqu'elles

ont été appliquées à la base de données cible.

Message du journal : quelques modifications dela base de données source n'ont eu aucun impactlorsqu'elles ont été appliquées à la base de donnéescible.Lorsque AWS DMS met à jour la valeur d'une colonne de base de données MySQL à sa valeur existante,un message d'zero rows affected est renvoyé à partir de MySQL. Ce comportement est différent decelui d'autres moteurs de base de données tels qu'Oracle et SQL Server qui effectuent la mise à jour d'uneligne, même si la valeur de remplacement est la même que l'actuelle.

Erreur : Identificateur trop longL'erreur suivante se produit lorsqu'un identificateur est trop long :

TARGET_LOAD E: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1059 Message: MySQLhttp://ODBC 5.3(w) Driverhttp://mysqld-5.6.10Identifier name '<name>' is too long 122502 ODBC general error. (ar_odbc_stmt.c:4054)

Lorsque AWS DMS est configuré pour créer des tables et des clés primaires dans la base de donnéescible, il n'utilise pas actuellement les mêmes noms pour les clés primaires que ceux utilisés dans la basede données source. AWS DMS crée plutôt le nom de clé primaire basé sur le nom de table. Lorsque lenom de la table est long, l'identificateur généré automatiquement créé peut être plus long que la limiteautorisée pour MySQL. Pour résoudre ce problème, vous devez à l'heure actuelle pré-créer les tables etles clés primaires dans la base de données cible et utiliser une tâche avec le paramètre de tâche Mode depréparation des tables cibles défini à la valeur Ne rien faire ou Tronquer pour alimenter les tables cibles.

Erreur : un jeu de caractères non pris en chargeentraîne l'échec de la conversion des données dechampL'erreur suivante se produit lorsqu'un jeu de caractères non pris en charge entraîne l'échec de laconversion des données de champ :

"[SOURCE_CAPTURE ]E: Column '<column name>' uses an unsupported character set [120112] A field data conversion failed. (mysql_endpoint_capture.c:2154)

Cette erreur se produit souvent car des tables ou des bases de données utilisent l'encodage UTF8MB4.Les versions de moteur AWS DMS antérieures à la version 3.1.1 ne prend pas en charge le jeu decaractères UTF8MB4. En outre, vérifiez les paramètres de votre base de données liés aux connexions. Lacommande suivante peut être utilisée pour afficher ces paramètres :

SHOW VARIABLES LIKE '%char%';

Version de l'API API Version 2016-01-01466

Page 474: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurErreur : page de codes 1252 à UTF8 [120112]

Échec de la conversion des données d'un champ

Erreur : page de codes 1252 à UTF8 [120112] Échecde la conversion des données d'un champL'erreur suivante peut se produire pendant une migration si des caractères autres que page de codes 1252se trouvent dans la base de données MySQL source.

[SOURCE_CAPTURE ]E: Error converting column 'column_xyz' in table'table_xyz with codepage 1252 to UTF8 [120112] A field data conversion failed. (mysql_endpoint_capture.c:2248)

Pour contourner ce problème, vous pouvez utiliser l'attribut de connexion supplémentaireCharsetMapping avec votre point de terminaison MySQL source pour spécifier la correspondance desjeux de caractères. Il se peut que vous ayez besoin de redémarrer la tâche de migration AWS DMS depuisle début si vous ajoutez cet attribut de connexion supplémentaire.

Par exemple, l'attribut de connexion supplémentaire suivant peut être utilisé pour un point de terminaisonMySQL source dans lequel le jeu de caractères est utf8 ou latin1. 65001 est l'identifiant de la page decodes UTF8.

CharsetMapping=utf8,65001CharsetMapping=latin1,65001

Résolution des problèmes spécifiques dePostgreSQL

Les problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de donnéesPostgreSQL.

Rubriques• Types de données JSON tronqués (p. 467)• Les colonnes d'un type de données défini par l'utilisateur ne sont pas migrées correctement (p. 468)• Erreur : Aucun schéma sélectionné dans lequel effectuer la création (p. 468)• Les suppressions et les mises à jour dans une table ne sont pas répliquées à l'aide de la capture de

données modifiées (p. 468)• Les instructions de troncature ne sont pas propagées (p. 469)• Empêcher PostgreSQL de capturer la DDL (p. 469)• Sélectionner le schéma où sont créés les objets de base de données pour la capture de la

DDL (p. 469)• Tables Oracle manquantes après la migration vers PostgreSQL (p. 469)• Une tâche utilisant une vue comme source ne contient aucune ligne copiée (p. 469)

Types de données JSON tronquésAWS DMS traite le type de données JSON dans PostgreSQL sous la forme d'une colonne de type dedonnées LOB. Cela signifie que la limite de la taille LOB lorsque vous utilisez le mode LOB limité s'applique

Version de l'API API Version 2016-01-01467

Page 475: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLes colonnes d'un type de données défini parl'utilisateur ne sont pas migrées correctement

aux données JSON. Par exemple, si le mode LOB limité est défini avec la valeur 4096 Ko, toutes lesdonnées JSON supérieures à 4096 Ko sont tronquées à cette limite et échouent au test de validation dansPostgreSQL.

Par exemple, les informations du journal suivantes montrent que JSON a été tronqué en raison du modeLOB limité et que la validation a échoué.

03:00:492017-09-19T03:00:49 [TARGET_APPLY ]E: Failed to execute statement: 'UPDATE "public"."delivery_options_quotes" SET "id"=? , "enabled"=? , "new_cart_id"=? , "order_id"=? , "user_id"=? , "zone_id"=? , "quotes"=? , "start_at"=? , "end_at"=? , "last_quoted_at"=? , "created_at"=? , "updated_at"=? WHERE "id"=? ' [1022502] (ar_odbc_stmt2017-09-19T03:00:49 [TARGET_APPLY ]E: Failed to execute statement: 'UPDATE "public"."delivery_options_quotes" SET "id"=? , "enabled"=? , "new_cart_id"=? , "order_id"=? , "user_id"=? , "zone_id"=? , "quotes"=? , "start_at"=? , "end_at"=? , "last_quoted_at"=? , "created_at"=? , "updated_at"=? WHERE "id"=? ' [1022502] (ar_odbc_stmt.c:2415)#03:00:492017-09-19T03:00:49 [TARGET_APPLY ]E: RetCode: SQL_ERROR SqlState: 22P02 NativeError: 1 Message: ERROR: invalid input syntax for type json;, Error while executing the query [1022502] (ar_odbc_stmt.c:2421)2017-09-19T03:00:49 [TARGET_APPLY ]E: RetCode: SQL_ERROR SqlState: 22P02 NativeError: 1 Message: ERROR: invalid input syntax for type json;, Error while executing the query [1022502] (ar_odbc_stmt.c:2421)

Les colonnes d'un type de données défini parl'utilisateur ne sont pas migrées correctementLors de la réplication à partir d'une source PostgreSQL, AWS DMS crée la table cible avec les mêmestypes de données pour toutes les colonnes, sauf les colonnes contenant des types de données définis parl'utilisateur. Dans ces cas, le type de données est créé en tant que « character varying » dans la cible.

Erreur : Aucun schéma sélectionné dans lequeleffectuer la créationL'erreur « SQL_ERROR SqlState : 3F000 NativeError : Message 7 : ERROR : aucun schéma sélectionnédans lequel effectuer la création » peut se produire lorsque votre mapping de table JSON contient unevaleur de caractère générique pour le schéma, mais que la base de données source ne prend pas encharge de cette valeur.

Les suppressions et les mises à jour dans une table nesont pas répliquées à l'aide de la capture de donnéesmodifiéesLes opérations de suppression et de mise à jour pendant la capture de données modifiées (CDC) sontignorées si la table source ne possède pas de clé primaire. AWS DMS prend en charge la capture desdonnées modifiées (CDC) pour les tables PostgreSQL avec des clés primaires. Si une table ne possèdepas de clé primaire, les journaux WAL ne contiennent pas d'image d'avant de la ligne de base de donnéeset AWS DMS ne peut pas mettre à jour la table. Créez une clé primaire dans la table source si voussouhaitez que les opérations de suppression soient répliquées.

Version de l'API API Version 2016-01-01468

Page 476: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLes instructions de troncature ne sont pas propagées

Les instructions de troncature ne sont pas propagéesLorsque vous utilisez la capture de données modifiées (CDC), les opérations TRUNCATE ne sont pasprises en charge par AWS DMS.

Empêcher PostgreSQL de capturer la DDLVous pouvez empêcher un point de terminaison cible PostgreSQL de capturer des instructions DDL enajoutant l'instruction Attributs de connexion supplémentaires suivante. Le paramètre Attributs de connexionsupplémentaires est disponible dans l'onglet Avancé du point de terminaison source.

captureDDLs=N

Sélectionner le schéma où sont créés les objets debase de données pour la capture de la DDLVous pouvez contrôler dans quel schéma les objets de base de données liés à la capture de la DDL sontcréés. Ajoutez l'instruction Attributs de connexion supplémentaire suivante. Le paramètre Attributs deconnexion supplémentaires est disponible dans l'onglet Avancé du point de terminaison cible.

ddlArtifactsSchema=xyzddlschema

Tables Oracle manquantes après la migration versPostgreSQLPar défaut, Oracle met en majuscules les noms de table alors que les noms de tables PostgreSQL sont enminuscules par défaut. Lorsque vous effectuez une migration d'Oracle vers PostgreSQL vous devrez trèsprobablement fournir des règles de transformation dans la section de mapping de table de votre tâche pourconvertir la casse de vos noms de table.

Vos tables et vos données restent accessibles. Si vous avez migré vos tables sans utiliser de règles detransformation pour convertir la casse de vos noms de table, vous devez placer les noms de vos tablesentre des guillemets lorsque vous y faites référence.

Une tâche utilisant une vue comme source ne contientaucune ligne copiéeUne vue comme point de terminaison source PostgreSQL n'est pas prise en charge par AWS DMS.

Résolution de problèmes spécifiques de MicrosoftSQL Server

Les problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de données MicrosoftSQL Server.

Version de l'API API Version 2016-01-01469

Page 477: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAutorisations spéciales pour que le compte

d'utilisateur AWS DMS utilise la CDC

Rubriques• Autorisations spéciales pour que le compte d'utilisateur AWS DMS utilise la CDC (p. 470)• Erreurs de capture des modifications pour une base de données SQL Server (p. 470)• Colonnes d'identité manquantes (p. 470)• Erreur : SQL Server ne prend pas en charge les publications (p. 470)• Les modifications n'apparaissent pas dans la cible (p. 471)• Table non uniforme mappée entre les partitions (p. 471)

Autorisations spéciales pour que le compted'utilisateur AWS DMS utilise la CDCLe compte d'utilisateur utilisé avec AWS DMS nécessite le rôle SQL Server SysAdmin pour pouvoirfonctionner correctement lors de l'utilisation de la capture de données modifiées (CDC). La CDC pourSQL Server est disponible uniquement pour les bases de données sur site ou les bases de données surune instance EC2.

Erreurs de capture des modifications pour une base dedonnées SQL ServerLes erreurs lors de la capture de données modifiées (CDC) indiquent souvent qu'une des conditionspréalables n'était pas remplie. Par exemple, l'une des conditions préalables les plus fréquemmentnégligées est une sauvegarde complète de la base de données. Le journal des tâches indique cetteomission par l'erreur suivante :

SOURCE_CAPTURE E: No FULL database backup found (under the 'FULL' recovery model). To enable all changes to be captured, you must perform a full database backup. 120438 Changes may be missed. (sqlserver_log_queries.c:2623)

Consultez les conditions préalables requises répertoriées pour l'utilisation de SQL Server en tantque source dans Utilisation d'une base de données Microsoft SQL Server comme source pour AWSDMS (p. 149).

Colonnes d'identité manquantesAWS DMS ne prend pas en charge les colonnes d'identité lorsque vous créez un schéma cible. Vousdevez les ajouter une fois le chargement initial terminé.

Erreur : SQL Server ne prend pas en charge lespublicationsL'erreur suivante est généré lorsque vous utilisez SQL Server Express comme point de terminaisonsource :

RetCode: SQL_ERROR SqlState: HY000 NativeError: 21106 Message: This edition of SQL Server does not support publications.

Version de l'API API Version 2016-01-01470

Page 478: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurLes modifications n'apparaissent pas dans la cible

AWS DMS ne prend pas en charge actuellement SQL Server Express comme source ou cible.

Les modifications n'apparaissent pas dans la cibleAWS DMS nécessite qu'une base de données SQL Server source soit en mode de récupération dedonnées « FULL » ou « BULK LOGGED » afin de capturer systématiquement les modifications. Le modèle« SIMPLE » n'est pas pris en charge.

Le modèle de récupération SIMPLE enregistre les informations minimales nécessaires pour permettreaux utilisateurs de récupérer leur base de données. Toutes les entrées de journal inactives sontautomatiquement tronquées lorsqu'un point de contrôle se produit. Toutes les opérations sont toujoursjournalisées, mais un point de contrôle se produit dès que le journal est tronqué automatiquement, ce quisignifie qu'il devient disponible pour être réutilisé et que les entrées de journaux plus anciennes peuventêtre écrasées. Lorsque des entrées de journal sont écrasées, les modifications ne peuvent pas êtrecapturées. C'est pourquoi AWS DMS ne prend pas en charge le modèle de récupération de donnéesSIMPLE. Pour plus d'informations sur les autres conditions préalables requises pour l'utilisation de SQLServer en tant que source, reportez-vous à Utilisation d'une base de données Microsoft SQL Servercomme source pour AWS DMS (p. 149).

Table non uniforme mappée entre les partitionsLors de la capture de données de changement (CDC), la migration d'une table dotée d'une structurespécialisée est suspendue quand AWS DMS ne peut pas effectuer correctement le processus CDC sur latable. Des messages similaires aux suivants sont émis :

[SOURCE_CAPTURE ]W: Table is not uniformly mapped across partitions. Therefore - it is excluded from CDC (sqlserver_log_metadata.c:1415)[SOURCE_CAPTURE ]I: Table has been mapped and registered for CDC. (sqlserver_log_metadata.c:835)

Lors de l'exécution du processus CDC sur des tables SQL Server, AWS DMS analyse les enregistrementstlog SQL Server. Sur chaque enregistrement tlog, AWS DMS analyse les valeurs hexadécimales contenantdes données pour les colonnes qui ont été insérées, mises à jour ou supprimées lors d'une modification.

Pour analyser l'enregistrement hexadécimal, AWS DMS lit les métadonnées de la table à partir des tablessystème SQL Server. Ces tables système identifient ce que sont les colonnes de table spécialementstructurées et révèlent certaines de leurs propriétés internes, telles que « xoffset » et « null bit position ».

AWS DMS s'attend à ce que les métadonnées soient identiques pour toutes les partitions brutes de latable. Mais lorsque des tables spécialement structurées n'ont pas les mêmes métadonnées sur toutesles partitions, AWS DMS peut suspendre le processus CDC sur cette table pour éviter d'analyser leschangements de manière incorrecte et de fournir des données incorrectes à la cible. Voici des solutions decontournement :

• Si la table a un index cluster, effectuez une reconstruction de l'index.• Si la table n'a pas d'index cluster, ajoutez un index cluster à la table (vous pouvez le supprimer

ultérieurement si vous le souhaitez).

Dépannage de problèmes spécifiques d'AmazonRedshift

Les problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de données AmazonRedshift.

Version de l'API API Version 2016-01-01471

Page 479: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurChargement dans un cluster Amazon Redshift dans une

région autre que celle de l'instance de réplication AWS DMS

Rubriques• Chargement dans un cluster Amazon Redshift dans une région autre que celle de l'instance de

réplication AWS DMS (p. 472)• Erreur : la relation « awsdms_apply_exceptions » existe déjà (p. 472)• Erreurs avec les tables dont le nom commence par « awsdms_changes » (p. 472)• Voir des tables de cluster avec des noms comme dms.awsdms_changes000000000XXXX (p. 472)• Autorisations requises pour utiliser Amazon Redshift (p. 472)

Chargement dans un cluster Amazon Redshift dansune région autre que celle de l'instance de réplicationAWS DMSCela est impossible. AWS DMS nécessite que l'instance de réplication AWS DMS et un cluster Redshift setrouvent dans la même région.

Erreur : la relation « awsdms_apply_exceptions »existe déjàL'erreur « La relation « awsdms_apply_exceptions » existe déjà » se produit souvent lorsqu'un point determinaison Redshift est spécifié en tant que point de terminaison PostgreSQL. Pour résoudre ce problème,modifiez le point de terminaison et le Moteur cible en « redshift ».

Erreurs avec les tables dont le nom commence par« awsdms_changes »Les messages d'erreur lié aux tables dont les noms commencent par « awsdms_changes » se produisentsouvent lorsque deux tâches qui tentent de charger des données dans le même cluster Amazon Redshifts'exécutent simultanément. En raison de la façon dont les tables temporaires sont nommés, des tâchessimultanées peuvent entrer en conflit lors de la mise à jour d'une même table.

Voir des tables de cluster avec des noms commedms.awsdms_changes000000000XXXXAWS DMS crée des tables temporaires lorsque les données sont chargées à partir de fichiers stockés dansS3. Les noms de ces tables temporaires portent le préfixe « dms.awsdms_changes ». Ces tables sontobligatoires pour que AWS DMS puisse stocker des données lorsqu'elles sont chargées pour la premièrefois et avant qu'elles soient placées dans la table cible finale.

Autorisations requises pour utiliser Amazon RedshiftPour utiliser AWS DMS avec Amazon Redshift, le compte d'utilisateur que vous utilisez pour accéder àAmazon Redshift doit disposer des autorisations suivantes :

• CRUD (sélection, insertion, mise à jour, suppression)• Chargement en bloc• Création, modification, suppression (si requis par la définition de la tâche)

Version de l'API API Version 2016-01-01472

Page 480: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRésolution des problèmes spécifiques

de Amazon Aurora MySQL

Pour afficher toutes les conditions préalables requises pour l'utilisation d'Amazon Redshift en tantque cible, reportez-vous à Utilisation d'une base de données Amazon Redshift comme cible pourAWS Database Migration Service (p. 228).

Résolution des problèmes spécifiques de AmazonAurora MySQL

Les problèmes suivants sont spécifiques à l'utilisation d'AWS DMS avec des bases de données AmazonAurora MySQL.

Rubriques• Erreur : Champs CHARACTER SET UTF8 se terminant par une « , » entourée par des lignes « " » se

terminant par « \n » (p. 473)

Erreur : Champs CHARACTER SET UTF8 seterminant par une « , » entourée par des lignes « " »se terminant par « \n »Si vous utilisez Amazon Aurora MySQL comme cible et que vous voyez un message d'erreur semblable àce qui suit dans les journaux, cela indique généralement que vous avez des caractères ANSI_QUOTES àl'intérieur du paramètre SQL_MODE. Si le paramètre SQL_MODE contient des caractères ANSI_QUOTES,les guillemets risquent d'être traités comme des apostrophes et peuvent créer des problèmes lorsque vousexécutez une tâche. Pour corriger cette erreur, supprimez les caractères ANSI_QUOTES du paramètreSQL_MODE.

2016-11-02T14:23:48 [TARGET_LOAD ]E: Load data sql statement. load data local infile "/rdsdbdata/data/tasks/7XO4FJHCVON7TYTLQ6RX3CQHDU/data_files/4/LOAD000001DF.csv" into table `VOSPUSER`.`SANDBOX_SRC_FILE` CHARACTER SET UTF8 fields terminated by ',' enclosed by '"' lines terminated by '\n'( `SANDBOX_SRC_FILE_ID`,`SANDBOX_ID`,`FILENAME`,`LOCAL_PATH`,`LINES_OF_CODE`,`INSERT_TS`,`MODIFIED_TS`,`MODIFIED_BY`,`RECORD_VER`,`REF_GUID`,`PLATFORM_GENERATED`,`ANALYSIS_TYPE`,`SANITIZED`,`DYN_TYPE`,`CRAWL_STATUS`,`ORIG_EXEC_UNIT_VER_ID` ) ; (provider_syntax_manager.c:2561)

Version de l'API API Version 2016-01-01473

Page 481: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAmélioration des performances

Bonnes pratiques pourAWS Database Migration Service

Pour utiliser AWS Database Migration Service (AWS DMS) plus efficacement, consultez lesrecommandations de cette section sur la méthode de migration de données la plus efficace.

Rubriques• Amélioration des performances d'une migration AWS DMS (p. 474)• Choix de la taille optimale pour une instance de réplication (p. 476)• Réduction de la charge sur votre base de données source (p. 477)• Utilisation du journal des tâches pour résoudre des problèmes de migration (p. 478)• Conversion de schémas (p. 478)• Migration des objets binaires volumineux (Large Binary Object, LOB) (p. 478)• Réplication continue (p. 479)• Modification de l'utilisateur et du schéma pour une cible Oracle (p. 480)• Modification des espaces de table de table et d'index pour une cible Oracle (p. 480)• Amélioration des performances en cas de migration de tables volumineuses (p. 481)• Utilisation de votre propre serveur de noms sur site (p. 481)

Amélioration des performances d'une migrationAWS DMS

Un certain nombre de facteurs affectent les performances de votre migration AWS DMS :

• les ressources disponibles sur la source ;• le débit du réseau disponible ;• la capacité des ressources du serveur de réplication ;• la capacité de la cible à intégrer les modifications ;• le type et la distribution des données source ;• le nombre d'objets à migrer.

Dans nos tests, nous avons procédé à la migration d'un téraoctet de données en 12 à 13 heures via unetâche AWS DMS unique et dans des conditions idéales. Ces conditions idéales incluent l'utilisation debases de données source en cours d'exécution sur Amazon EC2 et Amazon RDS avec des bases dedonnées cibles dans Amazon RDS, toutes se trouvant dans la même zone de disponibilité. Nos basesde données source contenaient une quantité représentative de données réparties uniformément avecquelques grandes tables contenant jusqu'à 250 Go de données. Les données source ne contenaient pasde types de données complexes, tels que des données BLOB.

Vous pouvez améliorer les performances en utilisant tout ou partie des bonnes pratiques mentionnéesci-après. La possibilité ou non d'utiliser ces pratiques dépend très largement de votre cas d'utilisationspécifique. Nous mentionnons les limitations au cas par cas.

Version de l'API API Version 2016-01-01474

Page 482: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAmélioration des performances

Chargement de plusieurs tables en parallèle

Par défaut, AWS DMS charge huit tables à la fois. Vous pouvez voir une amélioration desperformances en augmentant ce nombre légèrement lorsque vous utilisez un serveur de réplicationtrès volumineux, par exemple un dms.c4.xlarge ou une instance plus grande. Cependant, à un momentdonné, l'augmentation de ce parallélisme réduit les performances. Si votre serveur de réplication estrelativement petit, comme un dms.t2.medium, nous vous recommandons de réduire le nombre detables chargées en parallèle.

Pour changer ce nombre dans AWS Management Console, ouvrez la console, choisissez Tâches,choisissez de créer ou modifier une tâche, puis choisissez Paramètres avancés. Sous Tuning Settings(Paramètres de réglage), modifiez l'option Maximum number of tables to load in parallel (Nombremaximal de tables à charger en parallèle).

Pour modifier ce nombre à l'aide de l'interface de ligne de commande AWS, modifiez le paramètreMaxFullLoadSubTasks sous TaskSettings.

Utilisation d'index, de déclencheurs et de contraintes d'intégrité référentielle

Les index, les déclencheurs et les contraintes d'intégrité référentielle peuvent affecter vosperformances de migration et provoquer l'échec de votre migration. La manière dont ces élémentsaffectent la migration dépend du fait que votre tâche de réplication soit une tâche de chargementcomplet ou une tâche de réplication continue (CDC).

Pour une tâche de chargement complet, nous vous recommandons de supprimer les index de cléprimaire, les index secondaires, les contraintes d'intégrité référentielle et les déclencheurs DML(Data Manipulation Language). Vous pouvez aussi retarder leur création jusqu'à ce que les tâchesde chargement complet soient terminées. Vous n'avez pas besoin des index au cours d'une tâchede chargement complet et les index occasionnent des frais de maintenance s'ils sont présents. Étantdonné que la tâche de chargement complet charge des groupes de tables en une seule fois, lescontraintes d'intégrité référentielle sont violées. De même, l'insertion, la mise à jour et la suppressionde déclencheurs peuvent entraîner des erreurs, par exemple, si une insertion de ligne est déclenchéepour une table préalablement chargée en masse. D'autres types de déclencheurs affectent égalementles performances en raison du traitement supplémentaire qu'ils entraînent.

Vous pouvez créer des index de clé primaire et des index secondaires avant une tâche de chargementcomplet si vos volumes de données sont relativement petits et si le temps de migration supplémentairene vous pose pas de problème. Les contraintes d'intégrité référentielle et les déclencheurs doiventtoujours être désactivés.

Pour une tâche de chargement complet + CDC, nous vous recommandons d'ajouter les indexsecondaires avant la phase CDC. AWS DMS utilisant la réplication logique, les index secondaires quiprennent en charge les opérations DML doivent être en place pour empêcher les analyses complètesdes tables. Vous pouvez suspendre la tâche de réplication avant la phase CDC afin de construiredes index, de créer des déclencheurs et de créer des contraintes d'intégrité référentielle, avant deredémarrer la tâche.

Désactivation des sauvegardes et de la journalisation des transactions

Lors de la migration d'une base de données Amazon RDS, il est judicieux de désactiver lessauvegardes et Multi-AZ sur la cible jusqu'à ce que vous soyez prêt à effectuer la transition. De même,lors de la migration de systèmes autres qu'Amazon RDS, il est généralement judicieux de désactiver lajournalisation sur la cible jusqu'à la transition.

Utilisation de plusieurs tâches

L'utilisation de plusieurs tâches pour une seule migration peut permettre d'améliorer les performances.Si vous avez des ensembles de tables qui ne participent aux transactions communes, vous pouvezpeut-être diviser votre migration en plusieurs tâches. La cohérence transactionnelle est préservéeau sein d'une tâche, il est donc important que les tables de tâches distinctes ne participent pas aux

Version de l'API API Version 2016-01-01475

Page 483: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurDimensionnement d'une instance de réplication

transactions commues. En outre, chaque tâche lisant indépendamment le flux de transactions, veillez àne pas trop utiliser la base de données source.

Vous pouvez utiliser plusieurs tâches pour créer des flux de réplication différents afin de paralléliserles lectures sur la source, les processus sur l'instance de réplication et les écritures sur la base dedonnées cible.

Optimisation du traitement des modifications

Par défaut, AWS DMS traite les modifications en mode transactionnel, ce qui préserve l'intégritétransactionnelle. Si vous pouvez vous permettre des écarts temporaires dans l'intégritétransactionnelle, vous pouvez utiliser l'option d'application par lots optimisée à la place. Cette optionregroupe efficacement les transactions et les applique par lots pour plus d'efficacité. L'utilisationde cette option enfreint presque toujours les contraintes d'intégrité référentielle. Vous devez doncdésactiver ces contraintes pendant le processus de migration et les activer à nouveau dans le cadre duprocessus de transition.

Choix de la taille optimale pour une instance deréplication

Le choix de l'instance de réplication appropriée dépend de plusieurs facteurs propres à votre casd'utilisation. Pour mieux comprendre comment les ressources d'instance de réplication sont utilisées,consultez la discussion suivante. Elle couvre le scénario courant d'une tâche de chargement complet +CDC.

Au cours d'une tâche de chargement complet, AWS DMS charge les tables individuellement. Par défaut,huit tables sont chargées en même temps. AWS DMS capture les modifications en cours apportéesà la source pendant une tâche de chargement complet afin que celles-ci puissent être appliquéesultérieurement sur le point de terminaison cible. Ces modifications sont mises en cache en mémoire ; sila mémoire disponible est épuisée, les modifications sont mises en cache sur le disque. Lorsqu'une tâchede chargement complet se termine pour une table, AWS DMS applique immédiatement à la table cible lesmodifications mises en cache.

Une fois que toutes les modifications mises en cache pour une table ont été appliquées, le point determinaison cible se trouve dans un état transactionnel cohérent. À ce stade, la cible est synchroniséeavec le point de terminaison source en ce qui concerne les dernières modifications mises en cache. AWSDMS lance ensuite la réplication en cours entre la source et la cible. Pour cela, AWS DMS récupère lesopérations de modification à partir des journaux de transactions sources et les applique à la cible d'unemanière cohérente au niveau transactionnel (en supposant que l'application par lots optimisée n'est passélectionnée). AWS DMS diffuse en continu les modifications par le biais de la mémoire de l'instance deréplication, lorsque cela est possible. Dans le cas contraire, AWS DMS enregistre les modifications sur ledisque de l'instance de réplication jusqu'à ce qu'elles puissent être appliquées à la cible.

Vous pouvez contrôler la façon dont l'instance de réplication gère le traitement des modifications et lafaçon dont la mémoire est utilisée dans ce processus. Pour plus d'informations sur la manière d'ajuster letraitement des modifications, consultez Paramètres de réglage du traitement des modifications (p. 341).

Vous pouvez conclure de l'explication précédente qu'une mémoire totalement disponible est un facteuressentiel. Si l'instance de réplication a suffisamment de mémoire pour qu'AWS DMS puisse diffuser lesmodifications mises en caches et les modifications en cours sans les écrire sur le disque, les performancesde migration s'améliorent nettement. De même, la configuration de l'instance de réplication avecsuffisamment d'espace disque pour prendre en charge la mise en cache des modifications et le stockagedes journaux augmente également les performances. Le nombre maximal possible d'IOPS dépend de lataille de disque sélectionnée.

Prenez en compte les facteurs suivants lors du choix d'une classe d'instance de réplication et du stockagesur disque disponible :

Version de l'API API Version 2016-01-01476

Page 484: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRéduction de la charge sur votre base de données source

• La taille de la table : les tables volumineuses prennent plus de temps à charger et par conséquent lestransactions sur ces tables doivent être mises en cache jusqu'à ce que la table soit chargée. Une foisqu'une table est chargée, ces transactions mises en cache sont appliquées et ne sont plus conservéessur le disque.

• L'activité du langage de manipulation de données (Data Manipulation Language, DML) : une base dedonnées occupé génère plus de transactions. Ces transactions doivent être mises en cache jusqu'à ceque la table soit chargée. Les transactions dans une table individuelle sont appliquées dès que possibleaprès le chargement de la table, jusqu'à ce que toutes les tables soient chargées.

• La taille de la transaction : les transactions de longue durée peuvent générer de nombreusesmodifications. Pour des performances optimales, si AWS DMS applique les modifications en modetransactionnel, une mémoire suffisante doit être disponible pour diffuser en continu toutes lesmodifications de la transaction.

• La taille totale de la migration : les migrations volumineuses prennent plus de temps et génèrent unnombre proportionnellement important de fichiers journaux.

• Le nombre de tâches : plus le nombre de tâches est important, plus la mise en cache est susceptibled'être requise et plus le nombre de fichiers journaux générés sera grand.

• LOB : les tables avec des LOB sont plus longues à charger.

Une observation empirique montre que les fichiers journaux consomment une grande partie de l'espacerequis par AWS DMS. Les configurations de stockage par défaut sont généralement suffisantes.

Toutefois, les instances de réplication qui exécutent plusieurs tâches peuvent nécessiter plus d'espacedisque. En outre, si votre base de données inclut des tables actives et volumineuses, vous devrezéventuellement augmenter l'espace disque pour les transactions qui sont mises en cache sur le disqueau cours d'une tâche de chargement complet. Par exemple, si votre chargement prend 24 heures et quevous produisez 2 Go de transactions chaque heure, vérifiez que vous disposez de 48 Go d'espace pour lestransactions mises en cache. De plus, plus vous allouez de l'espace de stockage à l'instance de réplication,plus vous obtenez d'E/S par seconde.

Les directives précédentes ne couvrent pas tous les scénarios possibles. Il est extrêmement importantde prendre en compte les spécificités de votre cas d'utilisation particulier lorsque vous déterminez la taillede votre instance de réplication. Une fois que votre migration est en cours d'exécution, surveillez l'UC, lamémoire libérable, l'espace de stockage libre et les E/S par seconde de votre instance de réplication. Enfonction des données que vous collectez, vous pouvez dimensionner votre instance de réplication à lahausse ou à la baisse, selon les besoins.

Réduction de la charge sur votre base de donnéessource

AWS DMS utilise certaines des ressources de votre base de données source. Lors d'une tâche dechargement complet, AWS DMS effectue une analyse complète de la table source pour chaque tabletraitée en parallèle. En outre, chaque tâche que vous créez dans le cadre d'une migration interroge lasource pour connaître les modifications apportées dans le cadre du processus de capture des donnéesmodifiées (CDC). Pour qu'AWS DMS puisse effectuer le processus CDC pour certaines sources, tellesqu'Oracle, vous pouvez être amené à augmenter la quantité de données écrites dans le journal desmodifications de votre base de données.

Si vous constatez que vous surchargez votre base de données source, vous pouvez réduire le nombre detâches ou de tables pour chaque tâche de la migration. Chaque tâche récupère les modifications source demanière indépendante et, par conséquent, le regroupement des tâches peut diminuer la charge de travailde capture des modifications.

Version de l'API API Version 2016-01-01477

Page 485: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation du journal des tâches

Utilisation du journal des tâches pour résoudre desproblèmes de migration

Dans certains cas, AWS DMS peut rencontrer des problèmes pour lesquels des avertissements oudes messages d'erreur s'affichent uniquement dans le journal des tâches. En particulier, les problèmesde troncature des données ou de rejet de lignes en raison de violations de clé étrangère sont écritsuniquement dans le journal des tâches. Par conséquent, veillez à examiner le journal des tâches lorsquevous migrez une base de données. Pour activer l'affichage du journal des tâches, configurez AmazonCloudWatch dans le cadre de la création de tâche.

Conversion de schémasAWS DMS n'effectue pas de conversion de schéma ou de code. Si vous voulez convertir un schémaexistant en un autre moteur de base de données, vous pouvez utiliser l'AWS Schema Conversion Tool(AWS SCT). AWS SCT convertit vos objets, tables, index, vues et déclencheurs sources, ainsi que d'autresobjets système au format DDL (Data Definition Language) cible. Vous pouvez également utiliser AWS SCTpour convertir la plupart de votre code d'application, comme PL/SQL ou TSQL, en langage cible équivalent.

Vous pouvez obtenir AWS SCT en le téléchargeant gratuitement à partir d'AWS. Pour plus d'informationssur AWS SCT, consultez le Guide de l'utilisateur AWS Schema Conversion Tool.

Si vos points de terminaison sources et cibles sont dans le même moteur de base de données, vouspouvez utiliser des outils tels qu'Oracle SQL Developer, MySQL Workbench ou PgAdmin4 pour déplacervotre schéma.

Migration des objets binaires volumineux (LargeBinary Object, LOB)

En général, AWS DMS migre les données LOB en deux phases.

1. AWS DMS crée une nouvelle ligne dans la table cible et remplit cette ligne avec toutes les données àl'exception de la valeur LOB associée.

2. AWS DMS met à jour la ligne dans la table cible avec les données LOB.

Ce processus de migration pour les objets LOB exige pendant la migration que toutes les colonnes LOBde la table cible autorisent les valeurs Null. Il en est ainsi même si les colonnes LOB n'autorisent pas lesvaleurs Null dans la table source. Si AWS DMS crée les tables cible, elle définit les colonnes LOB sur letype nullable par défaut. Si vous créez les tables cibles à l'aide d'un autre mécanisme, tel que l'importationou l'exportation, vous devez vous assurer que les colonnes LOB autorisent les valeurs Null avant dedémarrer la tâche de migration.

Cette exigence n'a qu'une exception. Supposons que vous effectuez une migration homogène d'une sourceOracle vers une cible Oracle et que vous choisissez Limited Lob mode (Mode LOB limité). Dans ce cas, laligne entière est remplie en une seule fois, y compris les valeurs LOB. Dans ce cas, AWS DMS peut créerles colonnes LOB de la table cible avec des contraintes n'autorisant pas la valeur Null, si nécessaire.

Utilisation du mode LOB limitéAWS DMS utilise deux méthodes qui assurent un équilibre entre performances et commodité lorsque votremigration contient des valeurs LOB.

Version de l'API API Version 2016-01-01478

Page 486: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurRéplication continue

• Le paramètre Limited LOB mode (Mode LOB limité) permet de migrer toutes les valeurs LOB jusqu'àune taille limite spécifiée par l'utilisateur (la valeur par défaut est 32 Ko). Les valeurs LOB supérieuresà la taille limite doivent être migrées manuellement. Le paramètre Limited LOB mode (Mode LOBlimité) (paramètre par défaut pour toutes les tâches de migration) offre généralement les meilleuresperformances. Toutefois, vous devez vous assurer que le paramètre Max LOB size (Taille LOBmaximale) est correctement défini. Ce paramètre doit correspondre à la plus grande taille de LOB detoutes vos tables.

• Le paramètre Full LOB mode (Mode LOB complet) migre toutes les données LOB de vos tables, quelleque soit leur taille. Le paramètre Full LOB mode (Mode LOB complet) permet de déplacer toutes lesdonnées LOB de vos tables, mais le processus peut avoir un impact significatif sur les performances.

Pour certains moteurs de base de données, tels que PostgreSQL, AWS DMS traite les types de donnéesJSON comme des données LOB. Si vous avez choisi Limited LOB mode (Mode LOB limité), assurez-vousque l'option Max LOB size (Taille LOB maximale) est définie sur une valeur qui n'entraîne pas la troncaturedes données JSON.

AWS DMS prend en charge intégralement l'utilisation des types de données LOB (BLOB, CLOB etNCLOB). Les points de terminaison sources suivants prennent en charge intégralement les LOB :

• Oracle• Microsoft SQL Server• ODBC

Les points de terminaison cibles suivants prennent en charge intégralement les LOB :

• Oracle• Microsoft SQL Server

Le point de terminaison cible suivant offre une prise en charge limitée des LOB. Vous ne pouvez pasutiliser une taille LOB illimitée pour ce point de terminaison cible.

• Amazon Redshift

Pour les points de terminaison prennent en charge les LOB intégralement, vous pouvez également définirune limite de taille pour les types de données LOB.

Réplication continueAWS DMS permet la réplication continue des données, en maintenant la synchronisation entre les basesde données source et cible. Il réplique uniquement une quantité limitée de DDL (langage de définition dedonnées). AWS DMS ne propage pas les éléments tels que les index, les utilisateurs, les privilèges, lesprocédures stockées et autres modifications apportées à la base de données qui ne soient pas directementliées aux données de la table.

Si vous envisagez d'utiliser la réplication continue, vous devez activer l'option Multi-AZ lorsque vous créezune instance de réplication. En choisissant l'option Multi-AZ, vous obtenez la prise en charge de la hautedisponibilité et du basculement pour l'instance de réplication. Toutefois, cette option peut avoir un impactsur les performances.

Version de l'API API Version 2016-01-01479

Page 487: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurModification de l'utilisateur et duschéma pour une cible Oracle

Modification de l'utilisateur et du schéma pour unecible Oracle

Si vous utilisez Oracle comme cible, AWS DMS migre les données vers le schéma détenu par l'utilisateurdu point de terminaison cible.

Par exemple, supposons que vous migrez un schéma nommé PERFDATA vers un point de terminaisoncible Oracle, et que le nom d'utilisateur du point de terminaison cible est MASTER. AWS DMS se connecteraà la cible Oracle en tant que MASTER et remplira le schéma MASTER avec des objets de base de donnéesen provenance de PERFDATA.

Pour remplacer ce comportement, vous devez fournir une transformation de schéma. Par exemple, si voussouhaitez migrer les objets du schéma PERFDATA vers un schéma PERFDATA au point de terminaisoncible, vous pouvez utiliser la transformation suivante :

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "PERFDATA" }, "rule-target": "schema", "rule-action": "rename", "value": "PERFDATA"}

Pour plus d'informations sur les transformations, consultez Spécification d'une sélection de table et detransformations par mappage de table à l'aide de JSON (p. 368).

Modification des espaces de table de table etd'index pour une cible Oracle

Si vous utilisez Oracle comme cible, AWS DMS migre les espaces de table tels qu'ils sont définis dans lasource si cette dernière est aussi Oracle. Toutefois, si la source n'est pas Oracle, AWS DMS migre toutesles tables et tous les index vers des espaces de table de table et d'index dans la cible.

Par exemple, supposons que votre source est un moteur de base de données autre qu'Oracle. Toutes lestables et tous les index cible sont migrés vers les mêmes espaces de table par défaut.

Pour remplacer ce comportement, vous devez fournir les transformations d'espace de tablecorrespondantes. Par exemple, supposons que vous souhaitez migrer des tables et des index vers desespaces de table de table et d'index dans la cible Oracle qui sont nommés après le schéma dans la source.Dans ce cas, vous pouvez utiliser des transformations similaires à ce qui suit : Ici, le schéma dans lasource est nommé INVENTORY et les espaces de table de table et d'index correspondants dans la ciblesont nommés respectivement INVENTORYTBL et INVENTORYIDX.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY",

Version de l'API API Version 2016-01-01480

Page 488: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurAmélioration des performances en casde migration de tables volumineuses

"table-name": "%", "table-tablespace-name": "%" }, "value": "INVENTORYTBL"},{ "rule-type": "transformation", "rule-id": "4", "rule-name": "4", "rule-action": "rename", "rule-target": "index-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "index-tablespace-name": "%" }, "value": "INVENTORYIDX"}

Pour plus d'informations sur les transformations, consultez Spécification d'une sélection de table et detransformations par mappage de table à l'aide de JSON (p. 368).

Amélioration des performances en cas de migrationde tables volumineuses

Si vous souhaitez améliorer les performances lors de la migration d'une table volumineuse, vous pouvezdiviser la migration en plusieurs tâches. Pour diviser la migration en plusieurs tâches à l'aide du filtragedes lignes, utilisez une clé ou une clé de partition. Par exemple, si vous avez un ID de clé primaire entiercompris entre 1 et 8 000 000, vous pouvez créer huit tâches à l'aide du filtrage de lignes et migrer 1 milliond'enregistrements dans chacune des tâches.

Pour appliquer le filtrage des lignes dans AWS Management Console, ouvrez la console, choisissezTâches et créez une nouvelle tâche. Dans la section Table mappings (Mappages de table), ajoutez unevaleur pour Selection Rule (Règle de sélection). Vous pouvez ensuite ajouter un filtre de colonne avec unopérateur inférieur ou égal à, supérieur ou égal à, égal à ou une condition de plage (entre deux valeurs).Pour plus d'informations sur le filtrage des colonnes, consultez Spécification d'une sélection de table et detransformations par mappage de table à partir de la console (p. 363).

Sinon, si vous avez une table partitionnée de grande taille qui est partitionnée par date, vous pouvez migrerles données en fonction de la date. Par exemple, supposons que vous avez une table partitionnée parmois, et que seules les données du mois en cours sont mises à jour. Dans ce cas, vous pouvez créer unetâche de chargement complet pour chaque partition mensuelle statique et créer une tâche de chargementcomplet + CDC pour la partition actuellement mise à jour.

Utilisation de votre propre serveur de noms sur siteNormalement, une instance de réplication AWS DMS utilise le résolveur DNS dans une instance EC2pour résoudre les points de terminaison de domaine. Toutefois, vous pouvez utiliser votre propre serveurde noms sur site pour résoudre certains points de terminaison si vous utilisez le résolveur DNS d'AWSRoute 53. Il s'agit d'un ensemble de fonctionnalités qui permettent les requêtes bidirectionnelles entre lesressources sur site et AWS via des connexions privées. Vous utilisez des points de terminaison entrants etsortants, des règles de transfert et une connexion privée via un réseau DirectConnect (DX) ou un réseauprivé virtuel (VPN) pour activer le résolveur DNS d'AWS Route 53.

La fonction de requête entrante est fournie par les points de terminaison qui permettent aux requêtes DNSd'origine locale de résoudre les domaines hébergés par AWS. Les points de terminaison sont configurés

Version de l'API API Version 2016-01-01481

Page 489: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de votre propre serveur de noms sur site

via l'attribution d'une adresse IP dans chaque sous-réseau auquel vous souhaitez fournir un résolveur. Laconnectivité doit être établie entre votre infrastructure DNS locale et AWS via un réseau Direct Connect(DX) ou un réseau privé virtuel (VPN).

Les points de terminaison sortants se connectent à votre serveur de noms sur site. Le groupe de sécuritédu point de terminaison sortant doit être le même que le groupe de sécurité de l'instance de réplication. Deplus, les adresses IP définies dans le point de terminaison sortant doivent figurer dans une liste blanche(accès accordé) sur le serveur de noms. L'adresse IP de votre serveur de noms est l'adresse IP cible.

Les règles de transfert sont utilisées pour sélectionner les domaines à transférer vers le serveur de noms.Plusieurs règles de transfert peuvent exister pour un point de terminaison sortant. La portée de la règlede transfert est le Virtual Private Cloud (VPC). Une règle de transfert associée à un VPC (Virtual PrivateCloud) vous permet d'allouer une section logiquement isolée du cloud AWS à partir de laquelle vous lancezdes ressources AWS dans un réseau virtuel.

Les domaines hébergés au sein de votre infrastructure DNS locale peuvent être configurés en tant querègles de transfert conditionnel permettant d'utiliser les requêtes DNS sortantes. Lorsqu'une requête esteffectuée sur l'un de ces domaines, ces règles déclenchent une tentative de transfert des demandes DNSvers les serveurs DNS qui ont été configurés avec ces règles. Comme pour les requêtes entrantes, uneconnexion privée via un réseau DX ou VPN est requise.

Pour de plus amples informations sur le résolveur DNS d'AWS Route-53, veuillez consulter https://docs.aws.amazon.com/ Route53/latest/DeveloperGuide/resolver-getting-started.html dans le Manuel dudéveloppeur Amazon Route 53.

L'exemple de procédure ci-dessous fournit une vue d'ensemble de la configuration d'un serveur de nomssur site pour résoudre certains points de terminaison.

Version de l'API API Version 2016-01-01482

Page 490: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de votre propre serveur de noms sur site

Exemple de procédure de configuration

1. Le résolveur Route 53 est spécifique à la région. Par conséquent, commencez par choisir la région quevous souhaitez configurer et choisissez la direction de la requête (sortante, entrante ou les deux).

2. En supposant que vous avez sélectionné à la fois le trafic entrant et le trafic sortant pour cette chargede travail, fournissez votre configuration de requête entrante. Entrez un nom et choisissez un VPC.Affectez un ou plusieurs sous-réseaux à partir du VPC (par exemple, choisissez-en deux pour assurerla disponibilité). À partir de ces sous-réseaux, affectez des adresses IP spécifiques à utiliser commepoints de terminaison ou laissez le résolveur Route 53 les affecter automatiquement.

3. Créez une règle pour votre domaine local afin que les charges de travail à l'intérieur du VPC puissentrouter les requêtes DNS vers votre infrastructure DNS. Entrez une ou plusieurs adresses IP pour vosserveurs DNS locaux et créez votre règle.

Version de l'API API Version 2016-01-01483

Page 491: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurUtilisation de votre propre serveur de noms sur site

Tout est créé, votre VPC est associé à vos règles entrantes et sortantes et peut commencer à router letrafic. Les règles de transfert conditionnel peuvent être partagées entre plusieurs comptes à l'aide d'AWSResource Access Manager (RAM).

Version de l'API API Version 2016-01-01484

Page 492: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurType de données AWS DMS

Référence AWS DMSCette section de référence comprend des informations supplémentaires dont vous pouvez avoir besoinlorsque vous utilisez AWS Database Migration Service (AWS DMS), y compris des informations deconversion de type de données.

AWS DMS conserve les types de données lorsque vous effectuez une migration de base de donnéeshomogène dans laquelle la source et la cible utilisent tous les deux le même type de moteur. Lorsque vouseffectuez une migration hétérogène au cours de laquelle vous migrez des données d'un type de moteur debase de données vers un autre moteur de base de données, les types de données sont convertis en untype de données intermédiaire. Pour voir comment s'affichent les types de données sur la base de donnéescible, consultez les tables de types de données pour les moteurs de base de données source et cible.

Tenez compte de quelques points importants sur les types de données lors de la migration d'une base dedonnées :

• Le type de données FLOAT est par essence une approximation. Lorsque vous insérez une valeurspécifique dans FLOAT, elle peut être représentée différemment dans la base de données. Cettedifférence est liée au fait que FLOAT n'est pas un type de données exact, comme un type de donnéesdécimales tel que NUMBER ou NUMBER(p,s). Par conséquent, la valeur interne des données FLOATstockées dans la base de données peut être différente de la valeur que vous insérez. La valeur migréed'une donnée FLOAT peut donc ne pas correspondre exactement à la valeur dans la base de donnéessource.

Pour plus d'informations sur ce problème, consultez les articles suivants :• Virgule flottante IEEE dans Wikipedia• Représentation de la virgule flottante IEEE sur MSDN• Pourquoi les nombres à virgule flottante peuvent perdre leur précision sur MSDN

Rubriques• Types de données pour AWS Database Migration Service (p. 485)

Types de données pourAWS Database Migration Service

AWS Database Migration Service utilise des types de données intégrés pour migrer les données d'un typede moteur de base de données vers un autre type de moteur de base de données. Le tableau suivantillustre les types de données intégrées et leurs descriptions.

Type de données AWS DMS Description

STRING Chaîne de caractères.

WSTRING Chaîne de caractères à deux octets.

BOOLEAN Valeur booléenne.

BYTES Valeur de données binaires.

DATE Valeur de date : année, mois, jour.

Version de l'API API Version 2016-01-01485

Page 493: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurType de données AWS DMS

Type de données AWS DMS Description

TIME Valeur temporelle : heure, minutes, secondes.

DATETIME Valeur d'horodatage : année, mois, jour, heure,minute, seconde, fractions de secondes. Lesfractions de secondes ont une échelle maximale de9 chiffres.

INT1 Entier signé sur un octet.

INT2 Entier signé sur deux octets.

INT4 Entier signé sur quatre octets.

INT8 Entier signé sur huit octets.

NUMERIC Valeur numérique exacte avec une précision et uneéchelle fixes.

REAL4 Valeur à virgule flottante simple précision.

REAL8 Valeur à virgule flottante double précision.

UINT1 Entier non signé sur un octet.

UINT2 Entier non signé sur deux octets.

UINT4 Entier non signé sur quatre octets.

UINT8 Entier non signé sur huit octets.

BLOB Objet binaire volumineux. Ce type de donnéespeut être utilisé uniquement avec les points determinaison Oracle.

CLOB Grand objet de caractères.

NCLOB Grand objet de caractères natif.

Note

AWS DMS ne peut pas migrer un type de données LOB vers un point de terminaison ApacheKafka.

Version de l'API API Version 2016-01-01486

Page 494: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour pour AWS DMS 3.3.2

Notes de mise à jour d'AWS DMSVous trouverez ci-dessous les notes de mise à jour des versions d'AWS Database Migration Service (AWSDMS).

Note

• AWS DMS version 3.3.0 est maintenant obsolète. Vous pouvez directement mettre à niveauvotre version 3.3.0 vers la version 3.3.2.

• AWS DMS 3.1.3 est maintenant obsolète. Vous pouvez directement mettre à niveau votreversion 3.1.3 vers la version 3.3.2.

Le tableau suivant présente les chemins de mise à niveau actuellement pris en charge depuis n'importequelle version AWS DMS vers une version ultérieure.

Mise à niveau à partir decette version...

Vers cette version...

2.4.4 3.3.2

2.4.5 3.3.2

3.1.2 3.3.2

3.1.3 3.3.2

3.1.4 3.3.2

3.3.0 3.3.2

3.3.1 3.3.2

Notes de mise à jour pourAWS Database Migration Service (AWS DMS) 3.3.2

Le tableau suivant présente les fonctions et les correctifs de bogues propres à la version 3.3.2d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Nouvelle version d'Oracle Oracle 19c est désormais pris en charge en tant que source et cible.

Nouvelle version de SQLServer

SQL Server 2019 est désormais pris en charge en tant que source etcible.

Prise en charge des LOBdans Kafka en tant que cible

La réplication des données LOB vers une cible Kafka est désormaisprise en charge.

Prise en charge de lavalidation partielle des LOB

Ajoute la prise en charge de la validation partielle des LOB pour lespoints de terminaison MySQL, Oracle et PostgreSQL.

Version de l'API API Version 2016-01-01487

Page 495: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour pour AWS DMS 3.3.1

Les problèmes résolus sont les suivants :

• Plusieurs correctifs liés à la validation des données :• Validation désactivée pour les types longs Oracle.• Amélioration des mécanismes de nouvelle tentative basée sur les codes d'erreur du pilote.• Correction d'un problème de blocage permanent de la validation lors de la récupération des données

de la source et de la cible.• Correction d'un problème de validation du type UUID PostgreSQL.• Correction de plusieurs problèmes de blocage de validation.

• Correction d'un problème de perte de données avec S3 comme cible lors d'un plantage du processus detâche de réplication sur l'instance de réplication.

• Correction d'un problème de non-migration des colonnes de types de données d'horodatage lors del'utilisation de mappages d'attributs dans Kinesis et Kafka.

• Correction d'un problème entraînant le passage à l'état « échec » des tâches de réplication avec Oracleou PostgreSQL en tant que source lorsque vous tentez de les arrêter.

• Correction d'un problème en raison duquel l'application par lots ne fonctionnait pas comme prévu pourles réplications vers Redshift lors de l'utilisation de clés primaires composites.

• Correction d'un problème de mémoire insuffisante sur l'instance de réplication lors de l'utilisation deMariaDB en tant que source.

• Correction d'un problème quand AWS DMS insère des valeurs aléatoires dans une cible S3 plutôt quedes valeurs nulles comme prévu.

Notes de mise à jour pourAWS Database Migration Service (AWS DMS) 3.3.1

Le tableau suivant présente les fonctions et les correctifs de bogues pour la version 3.3.1d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Prise en charge de laréplication bidirectionnelleentre deux bases de donnéesdistinctes

Ajoute la prise en charge de la réplication des modifications entre deuxbases de données différentes à l'aide de deux tâches simultanées. L’unedes tâches réplique les modifications d'une base de données A en tantque source vers une base de données B en tant que cible. L'autre tâcheréplique les modifications de la base de données B en tant que sourcevers la base de données A en tant que cible. Vous pouvez utiliser laréplication bidirectionnelle entre une combinaison limitée de types depoints de terminaison. La réplication bidirectionnelle inclut également laprévention des boucles, afin d’empêcher la réplication d'une modificationidentique dans les deux tâches, ce qui peut corrompre les données. Pourde plus amples informations, veuillez consulter Effectuer une réplicationbidirectionnelle (p. 357)

Apache Kafka comme cible Ajoute la prise en charge d'un cluster Apache Kafka auto-géré et d'uncluster Amazon Managed Streaming for Apache Kafka (Amazon MSK)en tant que cible.

Prise en charge des LOBdans Kinesis Data Streamsen tant que cible

Ajout de la prise en charge de la migration des LOB depuis l'une de nossources prises en charge vers Kinesis Data Streams en tant que cible.

Version de l'API API Version 2016-01-01488

Page 496: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour pour AWS DMS 3.3.1

Nouvelle fonction ouamélioration

Description

Amélioration desperformances pour KinesisData Streams en tant quecible

Ajoute des améliorations aux performances des appels d'APIPutRecords lors de l'écriture de modifications en cours dans KinesisData Streams en tant que cible.

Prise en charge de lamigration du type de donnéesspatiales

Ajout de fonctionnalités prenant en charge la migration des donnéesspatiales d'Oracle vers Oracle et PostgreSQL, et de PostgreSQL versPostgreSQL.

Prise en charge améliorée dela réplication à partir de SQLServer lorsque le suivi desmodifications est activé

Ajout de la prise en charge de la réplication des modifications en coursdepuis SQL Server en tant que source lorsque le suivi des modificationsest activé. La tâche n'échoue plus lorsque le suivi des modifications estactivé.

Prise en charge du type dedonnées JSON dans MySQLen tant que source

Ajout d'une fonctionnalité prenant en charge la migration du type dedonnées JSON de MySQL vers n'importe quelle cible AWS DMScompatible.

Prise en charge de la capturedes modifications basée surun lecteur binaire dans RDSpour Oracle 12.2 en tant quesource

Ajout de la prise en charge de la capture des modifications basée surun lecteur binaire dans RDS pour Oracle en tant que source dans lesversions AWS DMS 12.2 et ultérieures.

Mise à niveau du piloteOracle pour les sources et lescibles

Mise à niveau du pilote Oracle sous-jacent dans l'instance de réplicationAWS DMS pour tirer parti des avantages suivants :

• Amélioration de la gestion des erreurs• Prise en charge complète des types de données, tels que l'horodatage

avec fuseau horaire et l'horodatage avec fuseau horaire local• SSL V3

Validation des données pourIBM Db2 LUW en tant quesource

Ajout de la prise en charge de la validation des données pour Db2 LUWen tant que source.

Amélioration de la validationdes données

Prise en charge de plusieurs améliorations liées à la validation desdonnées.

Améliorations de S3 en tantque cible (lac de données)

Ajout d'unes fonctionnalité permettant de capturer et de répliquer desinsertions et des mises à jour uniquement pour Amazon S3 en tant quecible.

Améliorations de DynamoDBen tant que cible

Ajout de la prise en charge de la migration du type de données CLOBvers Amazon DynamoDB en tant que cible.

Les problèmes résolus sont les suivants :

• Résolution d'un problème dans lequel la réplication en cours vers PostgreSQL 11+ en tant que sourceéchoue avec la version AWS DMS 3.3.0 bêta.

• Correction des problèmes suivants concernant la réplication des modifications en cours au formatParquet/CSV sur Amazon S3 en tant que cible :• Correction d'un problème de données manquantes dans le fichier CSV/Parquet lors de l'arrêt et de la

reprise de la tâche.

Version de l'API API Version 2016-01-01489

Page 497: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour pour AWS DMS 3.3.0

• Correction d'un bogue au format Parquet lors de la réplication de données nulles.• Correction de la gestion des types INT lors de la réplication de données au format Parquet.• Correction d'un problème dans lequel une seule tâche de réplication en cours avec S3 comme cible

échouait à partir d'une condition de concurrence dans le moteur de réplication.• Correction d'un problème de segmentation lors de l'écriture de modifications en cours au format

Parquet sur S3 en tant que cible.• Correction d'un problème dans les flux de données Kinesis en tant que cible lorsque partition-key-type dans le mappage d'objets n'est pas défini sur primary-key.

• Correction d'un problème de validation des données dans lequel une récupération en bloc pendantla réplication en cours avait une latence élevée. Cela causait des problèmes avec les métriques devalidation.

• Correction d'un problème de fuite de mémoire dans l'instance de réplication AWS DMS de la version 3.3qui entraînait l'arrêt des tâches de réplication.

• Correction d'un problème avec un déchargement parallèle basé sur une partition depuis Oracle en tantque source, où les requêtes de métadonnées utilisées pour construire des lectures à partir de chaquepartition étaient lentes et parfois bloquées.

• Correction d'un problème où le type de données datetime dans Oracle n'était pas migré comme prévuvers les cibles RDS pour PostgreSQL et Aurora PostgreSQL.

• Correction d'un problème de données manquantes lors de la réplication des modifications en coursdepuis Oracle en tant que source vers Amazon Redshift.

• Correction de plusieurs problèmes liés à la journalisation pour des cibles telles qu'Amazon S3 et AmazonRedshift.

• Correction d'un problème où DMS bascule vers l'utilisation de points de sauvegarde pour PostgreSQLen tant que cible, est bloqué dans une boucle et ne parvient pas à réutiliser les points de sauvegardeprovoquant ainsi une pression de mémoire.

• Correction d'un problème où le déchargement basé sur les partitions automatiques ne fonctionnait pascomme prévu avec Db2 LUW en tant que source.

• Correction d'un problème où AWS DMS ne gérait pas proprement la déconnexion de la source oplogpour MongoDB et continuait à fonctionner sans signaler les problèmes de déconnexion.

• Correction d'un problème où les dates zéro n'étaient pas gérées comme prévu lors de la migration versPostgreSQL et Redshift en tant que cible.

• Correction d'un problème de mise en forme timestamp dans les flux de données Kinesis, DynamoDBet Elasticsearch en tant que cible. Si la précision des secondes inclut un seul chiffre, aucun 0supplémentaire n'était ajouté.

• Correction d'un problème avec toutes les cibles relationnelles où une instruction alter table incluait parerreur un paramètre NULL. Cela provoquait un remplacement inattendue de la valeur de la colonne ciblepar NULL.

Notes de mise à jour pourAWS Database Migration Service (AWS DMS)version bêta 3.3.0

Les tableaux suivants présentent les fonctions et les correctifs de bogues pourAWS Database Migration Service (AWS DMS) version bêta 3.3.0.

Note

La version 3.3.0 est maintenant obsolète. Vous pouvez directement mettre à niveau votreversion 3.3.0 vers la version 3.3.2.

Version de l'API API Version 2016-01-01490

Page 498: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour pour AWS DMS 3.3.0

Nouvelle fonction ouamélioration

Description

Nouvelles versions d'Oracle Oracle 18c est désormais pris en charge en tant que point determinaison source et cible.

Nouvelles versions dePostgreSQL

Les versions PostgreSQL10.x et 11.x sont désormais prises en chargeen tant que point de terminaison source et cible.

Améliorations pour Oracle entant que point de terminaisonsource

Ajout de la prise en charge des éléments suivants :

• Tables imbriquées.• La commande RESETLOGS.• Contrôle le nombre de threads en lecture parallèle et de tampons de

lecture anticipée pour Oracle Automatic Storage Management (ASM)lors de la collecte des modifications pour un chargement de capturedes données modifiées (CDC). Pour plus d'informations sur cesaméliorations pour l'utilisation d'Oracle ASM, consultez Configurationde la capture des données modifiées (CDC) sur une base de donnéessource Oracle (p. 125).

Améliorations pour MicrosoftSQL Server en tant que pointde terminaison source

Ajout de la prise en charge d'AlwaysOn amélioré. Vous pouvezdésormais migrer les modifications à partir d'un réplica AlwaysOn.

Prise en charge des misesà jour volumineuses versAmazon DynamoDB

Ajout de la prise en charge de la division des mises à jour volumineusesen plusieurs fragments inférieur à 4 Ko chacun et de leur application àDynamoDB pour contourner la limitation. Un message d'avertissementindique quand cela se produit.

Les problèmes résolus sont les suivants :

• Résolution d'un problème où DMS ne pouvait pas se connecter à une source Azure SQL Server.• Résolution d'un problème où les colonnes LOB JSON dans PostgreSQL n'étaient pas migrées.• Résolution d'un problème où les dates étaient migrées en tant que 0101-01-01 dans une migration de

MySQL vers MySQL.• Résolution d'un problème où DMS ne pouvait pas créer une table avec une colonne de tableau

numérique lors d'une réplication continue vers PostgreSQL.• Résolution d'un problème où des mises à jour ne pouvaient pas être appliquées dans l'instance Amazon

Redshift cible lorsque la table n'avait pas de PK.• Résolution d'un problème où DMS ne pouvait pas sélectionner des tables à partir de schémas dont les

noms commençaient par « pg% » dans des sources PostgreSQL.• Résolution d'un problème où une tâche échouait lors de la migration d'une valeur booléenne à partir

d'Aurora PostgreSQL vers Amazon Redshift.• Résolution d'un problème où les caractères spéciaux avec un encodage EUC_JP n'étaient pas migrés

depuis PostgreSQL vers PostgreSQL.• Résolution d'un problème où une tâche DMS échouait, car elle ne pouvait pas créer le contrôle aws_dms_apply_exceptions.

• Résolution de problèmes avec SQL Server et Oracle comme source où la réplication continue à partird'un instant donné échouait avec une erreur « Not a valid time value supplied » (Valeur temporelle nonvalide fournie).

• Résolution d'un problème où la réplication continue s'interrompait lorsqu'une table possédait une cléprimaire et une contrainte unique, et quand des modifications continues étaient effectuées sur la colonnede contrainte unique.

Version de l'API API Version 2016-01-01491

Page 499: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.4

• Résolution d'un problème où la migration de la colonne TIMESTAMP(0) MySQL entraînait l'arrêt de laréplication des modifications par la la tâche.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 3.1.4

Le tableau suivant présente les fonctions et les correctifs de bogues pour la version 3.1.4d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Ajout d'une colonned'horodatage de validation desource pour les fichiers cibleAmazon S3

Vous pouvez désormais utiliser un paramètre de point de terminaisoncible pour insérer l'horodatage de validation de la source dansune colonne supplémentaire de fichiers .csv ou .parquet lors dela migration vers S3. Vous pouvez également spécifier le nom dela colonne supplémentaire. Pour plus d'informations, consulteztimestampColumnName.

Inclusion de la colonned'opération pour lechargement complet dans lesfichiers cible Amazon S3

Pour conserver la cohérence des fichiers cible S3 pour les chargementscomplets et les opérations de réplication continue, vous pouvezdésormais spécifier un point de terminaison cible qui ajoute une colonned'opération lors du chargement complet (format .csv uniquement). Pourplus d'informations, consultez includeOpForFullLoad.

Rendre les formats desfichiers Amazon S3 source etAmazon S3 cible cohérents

Ajout d'améliorations pour rendre les formats des fichiers S3 sourcecohérents avec le format des fichier cible S3. Pour plus d'informationssur la façon dont les valeurs de colonne d'opération sont codées dansles fichiers S3, consultez les notes dans Utilisation de Amazon S3comme source pour AWS DMS (p. 198). Pour plus d'informations sur lesoptions pour coder ces valeurs, consultez Indication des opérations debase de données source dans des données S3 migrées (p. 265).

Spécification de laprécision pour les colonnesTIMESTAMP dans les fichierscible Amazon S3 avec leformat de fichier .parquet

Pour les fichiers cible S3 au format .parquet uniquement, vous pouvezspécifier que toutes les colonnes TIMESTAMP ont une précisionà la microseconde ou à la milliseconde. La spécification d'uneprécision à la milliseconde permet aux données d'être traitées parAmazon Athena et AWS Glue. Pour plus d'informations, consultezparquetTimestampInMillisecond.

Chargements multithreadsdans Amazon Kinesis DataStreams

Cette version de DMS accélère les chargements dans Kinesis DataStreams en utilisant plusieurs threads.

Prise en charge des misesà jour volumineuses versAmazon DynamoDB

Ajout de la prise en charge de la division des mises à jour volumineusesen plusieurs fragments inférieur à 4 Ko chacun et de leur application àDynamoDB pour contourner la limitation. Un message d'avertissementindique quand cela se produit.

Diverses améliorationsdes performances pour lavalidation des données

Ajout de diverses améliorations des performances pour la validationdes données, avec notamment la possibilité de traiter des clés uniquesautorisant la valeur NULL.

Améliorations de lajournalisation

Ajout de diverses améliorations pour la journalisation.

Version de l'API API Version 2016-01-01492

Page 500: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.3

Les problèmes résolus sont les suivants :

• Résolution d'un problème où DMS ne parvenait pas à capturer les modifications à partir d'une sourceOracle avec ASM configurée et quand DMS exécutait des lectures de modification en parallèle.

• Résolution d'un problème où DMS ne parvenait pas à capturer les modifications pour une colonnenvarchar à partir de sources de données Microsoft SQL Server lors de la lecture de modifications à partirde sauvegardes de journal des transactions.

• Résolution d'un problème où une tâche DMS se bloquait parce que le processus de réplication nepouvait pas trouver les détails relatifs à une colonne d'une table avec la journalisation supplémentaireactivée depuis des métadonnées de table dans Oracle.

• Résolution d'un problème où DMS transmettait un paramètre non valide lors d'une tentative de reprise dela collecte des modifications là où l'opération s'était arrêtée et recherchait d'anciennes modifications quiavaient été purgées.

• Modification des messages de mémoire tampon de flux dans les journaux de tâche DMS pour journaliserles messages une fois et non plusieurs fois. La journalisation de ces messages plusieurs fois entraînait lasaturation du stockage sous-jacent et créait d'autres problèmes de performance liés à la tâche.

• Correction d'une erreur quand DMS renvoyait une état d'échec au lieu d'un état d'arrêt pour une tâchelorsque que l'utilisateur avait tenté d'arrêter celle-ci.

• Correction d'un problème d'erreur de segmentation avec IBM Db2 pour Linux, UNIX et Windows (Db2LUW) comme source lorsque les attributs de connexion supplémentaires étaient utilisés avec Db2comme source.

• Résolution de plusieurs problèmes liés à l'échec de la troncature de LOB avec PostgreSQL commesource.

• Résolution d'un problème où la tâche n'échouait pas si un compartiment source S3 n'existait pas. Latâche échoue désormais avec un message d'erreur.

• Résolution d'une fuite de mémoire lorsque DMS migre des données S3 au format de fichier Parquet.• Inclusion de divers correctifs pour la validation des données.• Résolution d'un problème où une commande de suppression de collection dans MongoDB entraînait un

échec de la tâche si la collection supprimée n'était pas dans la portée de la tâche.• Résolution d'un problème où des tâches avec un point de terminaison cible S3 se bloquaient à cause des

valeurs NULL dans les données.• Résolution d'un problème où les chargements en bloc vers S3 étaient trop lents en raison de la création

d'un nouveau pool de mémoire. Les chargements complets vers S3 sont désormais 20 % plus rapidedans DMS 3.1.4.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 3.1.3

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 3.1.3d'AWS Database Migration Service (AWS DMS).

Note

La version 3.1.3 est maintenant obsolète. Vous pouvez directement mettre à niveau votreversion 3.1.3 vers la version 3.3.2.

Nouvelle fonction ouamélioration

Description

Prise en charge de AmazonDocumentDB (avec

Vous pouvez désormais utiliser Amazon DocumentDB comme cible pourdéployer un service de base de données de documents rapide, fiable

Version de l'API API Version 2016-01-01493

Page 501: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.3

Nouvelle fonction ouamélioration

Description

compatibilité MongoDB) entant que cible

et entièrement géré qui permet de configurer, d'exécuter et de mettre àl'échelle aisément des bases de données compatibles MongoDB.

Prise en charge du formatde stockage Apache Parquetpour les cibles Amazon S3

Vous pouvez désormais sélectionner et configurer des fichiers .parquetcomme format de stockage pour les objets cibles S3.

Chiffrement de clé AWS KeyManagement Service (AWSKMS) pour les données ciblesAmazon Redshift et AmazonS3

Vous pouvez désormais utiliser des clés KMS pour le chiffrement côtéserveur des données pour des cibles Amazon Redshift et S3.

Amélioration de la sélectionet de la transformation dedonnées avec le mappage detable

Vous pouvez désormais sélectionner de manière explicite une table etson schéma. Vous pouvez également transformer les espaces de tablede table et d'index pour une cible Oracle et mettre à jour la clé principalepour une table sur n'importe quelle cible.

Prise en charge du balisagedes objets cibles Amazon S3

Vous pouvez désormais associer des balises à chaque objet écrit dansvotre compartiment cible S3.

Types de donnéesTIMESTAMP migrés depuisMicrosoft SQL Server versdes cibles sélectionnées

Les types de données TIMESTAMP migrés depuis Microsoft SQLServer vers des cibles Amazon Elasticsearch Service ou AmazonKinesis sont désormais convertis du format binaire en une chaîne codéeau format hexadécimal (par exemple, 0x654738). Auparavant, cesvaleurs TIMESTAMP étaient perdues lors du mappage comme donnéesbinaires.

Transitions vers le niveau dejournalisation DEFAULT ouINFO

AWS DMS enregistre désormais le moment où le niveau de journalrevient à DEFAULT ou INFO. Auparavant, ces transitions de niveau dejournalisation n'étaient pas enregistrées.

Validation de données etparamètres de filtre

La validation de données respecte maintenant les paramètres de filtragede lignes lors de la validation des données entre la source et la cible.

Option de traitement deschaînes pour les objetssource Amazon S3

Un nouvel attribut de connexion supplémentaire rfc4180 est disponiblepour contrôler la façon dont les chaînes source avec des guillemets (")sont traitées.

La substitution de caractèresest prise en charge pourplusieurs bases de donnéesrelationnelles en tant quesources ou cibles, et pourAmazon Redshift en tant quecible

Vous pouvez désormais spécifier des paramètres de tâche quiremplacent des caractères dans la base de données cible en fonctiondes points de code Unicode des caractères de base de données sourcesélectionnés et de leurs remplacements dans la cible. De plus, vouspouvez désormais spécifier qu'une substitution de caractère unique alieu sur la cible pour tous les caractères qui ne sont pas valides dans unjeu de caractères spécifié. Cela garantit que votre base de données ciblestocke uniquement les caractères valides dans le seul jeu de caractèreschoisi.

Les problèmes résolus sont les suivants :

Version de l'API API Version 2016-01-01494

Page 502: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.2

Date de signalement Description

17 décembre 2018 Résolution d'un problème où l'activation de SSL (Secure Sockets Layer)entraînait un échec de la tâche avec une source Amazon S3 et une ciblePostgreSQL.

11 décembre 2018 Résolution d'un problème où le pourcentage d'achèvement pour MySQLétait indiqué de manière incorrecte.

11 novembre 2018 Résolution d'un problème où une source Amazon S3 dans laquelle unguillemet (") dans une chaîne entraînait un échec de la tâche.

6 novembre 2018 Résolution d'un problème où une valeur de délimiteur .csv personnaliséedans un en-tête de colonne pour une cible Amazon S3 n'était pasappliquée correctement.

16 août 2018 Résolution d'un problème qui provoquait une erreur de contraintedupliquée lorsqu'une récupération de point de contrôle était activée.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 3.1.2

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 3.1.2d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Prise en charge de AmazonKinesis Data Streams en tantque cible

Vous pouvez désormais utiliser Kinesis Data Streams comme cible pourtraiter de grandes quantités de données en temps réel.

Prise en charge de AmazonElasticsearch Service en tantque cible

Vous pouvez désormais utiliser Amazon ES comme cible pour ledéploiement et l'utilisation d'un moteur d'analyse et de requêtescomplexes pour toutes vos données à l'aide d'un code Elasticsearchopen source. Entre autres fonctions, cela inclut la prise du chargementcomplet multithread et de la capture de données modifiées (CDC) pourmaintenir le moteur de requêtes à jour.

Prise en charge d'une versionmise à jour d’IBM Db2 pourWindows (Db2 LUW) en tantque source

Vous pouvez désormais utiliser Db2 LUW version 11.1 en tant quesource, avec tous les Fix Packs pris en charge.

Prise en charge du recalculde la latence en cas depassage à l'heure d'été

Vous pouvez désormais recalculer les décalages horaires lors d'unpassage à l'heure d'été lorsque votre source est Oracle ou PostgreSQL.

Les problèmes résolus sont les suivants :

Version de l'API API Version 2016-01-01495

Page 503: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.1

Date de signalement Description

19 juillet 2018 Résolution d'un problème où PostgreSQL en tant que source envoyait àOracle des valeurs Empty au lieu de Null lors de la capture de donnéesde modification en mode Full LOB.

19 septembre 2018 Résolution d'un problème où les valeurs Null dans des colonnesvarchar SQL Server migraient différemment selon les cibles.

7 octobre 2018 Résolution d'un problème où le paramètre LOB ne fonctionnait paslorsque des règles de transformation étaient présentes.

12 octobre 2018 Résolution d'un problème où la réplication en cours des tâches avecOracle en tant que source ne parvenait pas à reprendre après un arrêtdans certains cas.

12 octobre 2018 Résolution d'un problème où la réplication en cours des tâches avecSQL Server en tant que source ne parvenait pas à reprendre après unarrêt dans certains cas.

Plusieurs dates Résolution de plusieurs problèmes avec PostgreSQL en tant que sourcequi étaient présents dans la version 3.1.1.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 3.1.1

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 3.1.1d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Migration des caractèresUTF8 4 octets

AWS DMS prend désormais en charge tous les jeux de caractères à 4octets, comme UTF8MB4, etc. Cette fonction est opérationnelle sansaucune modification de configuration.

Prise en charge de MicrosoftSQL Server 2017 commesource

Ajout de la prise en charge de SQL Server 2017 comme source. Pour ensavoir plus, consultez Utilisation d'une base de données Microsoft SQLServer comme source pour AWS DMS (p. 149).

Prise en charge duchargement complet enparallèle des tables

Ajout de la prise en charge du chargement complet en parallèle destables volumineuses basées sur des partitions et sous-partitions. Cettefonctionnalité utilise un thread de déchargement distinct pour chaquepartition ou sous-partition de table afin d'accélérer le processus dechargement en bloc. Vous pouvez également spécifier des plages oupartitions spécifiques pour migrer un sous-ensemble des données detable. Les sources prises en charge sont Oracle, SQL Server, Sybase,MySQL, et IBM Db2 pour Linux, UNIX, PostgreSQL et Windows (Db2LUW). Pour plus d'informations, consultez Règles table-settings etopérations (p. 382).

Contrôle des paramètres LOBpar table

Vous pouvez désormais contrôler les paramètres LOB par table. Pourplus d'informations, consultez Paramètres de metadonnées des tâches

Version de l'API API Version 2016-01-01496

Page 504: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 3.1.1

Nouvelle fonction ouamélioration

Description

cibles (p. 334). Les sources prises en charge sont Oracle, SQL Server,MySQL et PostgreSQL.

Contrôle de l'ordre dechargement des tables dansune seule tâche de migration

Vous pouvez désormais contrôler l'ordre de chargement des tablesavec des mappages de table dans une tâche de migration. Vous pouvezspécifier l'ordre en balisant la table avec un entier non signé d'ordre dechargement dans les mappages de table. Les tables avec des valeursd'ordre de chargement plus élevées sont migrées en premier. Pour plusd'informations, consultez Utilisation du mappage de table pour spécifierdes paramètres de tâche (p. 363).

Prise en charge des misesà jour des valeurs de cléprimaire lors de l'utilisation dePostgreSQL comme source

Les mises à jour des valeurs de clé primaire sont désormais répliquéeslorsque vous utilisez PostgreSQL comme source pour une réplicationcontinue.

Les problèmes résolus sont les suivants :

Date de signalement Description

24 avril 2018 Résolution d'un problème dans lequel les utilisateurs ne pouvaient pascréer Azure SQL en tant que point de terminaison source pour SQLServer 2016.

5 mai 2018 Résolution d'un problème dans lequel CHR (0) dans une sourceOracle était migré en tant que CHR (32) dans une cible Aurora aveccompatibilité MySQL.

10 mai 2018 Résolution d'un problème dans lequel la réplication continue à partird'Oracle comme source ne fonctionnait pas comme prévu lors del'utilisation d'Oracle LogMiner pour migrer des modifications à partird'une instance de secours physique Oracle.

27 mai 2018 Résolution d'un problème dans lequel les caractères de différents typesde données dans PostgreSQL étaient triplés lors de la migration versPostgreSQL.

12 juin 2018 Résolution d'un problème dans lequel les données étaient modifiées aucours d'une migration de TEXT vers NCLOB (PostgreSQL vers Oracle)en raison des différences dans la façon dont ces moteurs gèrent lesvaleurs null dans une chaîne.

17 juin 2018 Résolution d'un problème dans lequel la tâche de réplication neparvenait pas à créer des clés primaires dans l'instance MySQLversion 5.5 cible lors de la migration des données depuis une sourceMySQL version 5.5.

23 juin 2018 Résolution d'un problème dans lequel les colonnes JSON étaienttronquées en mode LOB complet lors de la migration d'une instancePostgreSQL vers Aurora avec compatibilité PostgreSQL.

27 juin 2018 Résolution d'un problème dans lequel l'application de traitement par lotsdes modifications avec PostgreSQL comme cible échouait en raison d'un

Version de l'API API Version 2016-01-01497

Page 505: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.5

Date de signalement Descriptionproblème de création de la table de modifications nettes intermédiairesur la cible.

30 juin 2018 Résolution d'un problème dans lequel l'horodatage MySQL'0000-00-00 00:00:00' n'était pas migré comme prévu, tout eneffectuant un chargement complet.

2 juillet 2018 Résolution d'un problème dans lequel une tâche de réplication DMSne se poursuivait pas comme prévu après le basculement de l'AuroraMySQL source.

9 juillet 2018 Résolution d'un problème lié à une migration de MySQL vers AmazonRedshift, dans lequel la tâche échouait avec une erreur signalant unecolonne et un type de données inconnus.

21 juillet 2018 Résolution d'un problème dans lequel les caractères null d'une chaîne decaractères étaient migrés différemment de SQL Server vers PostgreSQLdans les modes LOB complet et LOB limité.

23 juillet 2018 Résolution d'un problème dans lequel les transactions de sauvegardedans SQL Server en tant que source saturaient le journal destransactions dans SQL Server.

26 juillet 2018 Résolution d'un problème dans lequel les valeurs null étaient migréesen tant que valeurs vides dans une migration de restauration parprogression de PostgreSQL vers Oracle.

Plusieurs dates Résolution de divers problèmes de journalisation afin que les utilisateurssoient mieux informés sur la migration par les journaux AmazonCloudWatch.

Plusieurs dates Résolution de divers problèmes de validation des données.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.5

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.5d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Chiffrement de clé KMS pourles données cibles AmazonRedshift et Amazon S3

Vous pouvez désormais utiliser des clés KMS pour le chiffrement côtéserveur des données pour des cibles Amazon Redshift et S3.

Transitions vers le niveau dejournalisation DEFAULT ouINFO

AWS DMS enregistre désormais le moment où le niveau de journalrevient à DEFAULT ou INFO. Auparavant, ces transitions de niveau dejournalisation n'étaient pas enregistrées.

Validation de données etparamètres de filtre

La validation de données respecte maintenant les paramètres de filtragede lignes lors de la validation des données entre la source et la cible.

Version de l'API API Version 2016-01-01498

Page 506: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.4

Nouvelle fonction ouamélioration

Description

Option de traitement deschaînes pour les objetssource Amazon S3

Un nouvel attribut de connexion supplémentaire rfc4180 est disponiblepour contrôler la façon dont les chaînes source avec des guillemets (")sont traitées.

Les problèmes résolus sont les suivants :

Date de signalement Description

19 janvier 2019 Résolution d'un problème pour les points de terminaison Oracle oùsecurityDbEncryptionName n'était pas défini correctement lorsquepassword et securityDbEncryptionName étaient définis sansasm_password.

11 décembre 2018 Résolution d'un problème où le pourcentage d'achèvement pour MySQLétait indiqué de manière incorrecte.

11 novembre 2018 Résolution d'un problème où une source Amazon S3 dans laquelle unguillemet (") dans une chaîne entraînait un échec de la tâche.

6 novembre 2018 Résolution d'un problème où une valeur de délimiteur .csv personnaliséedans un en-tête de colonne pour une cible Amazon S3 n'était pasappliquée correctement.

16 août 2018 Résolution d'un problème qui provoquait une erreur de contraintedupliquée lorsqu'une récupération de point de contrôle était activée.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.4

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.4d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Validation des migrationsavec des clauses de filtre

Vous pouvez désormais valider les données lors de la migration d'unsous-ensemble d'une table à l'aide de filtres de table.

Mises à niveau du piloteOpen Database Connectivity(ODBC)

Le pilote ODBC sous-jacent pour MySQL a été mis à niveau vers laversion 5.3.11-1 et le pilote ODBC sous-jacent pour Amazon Redshift aété mis à niveau vers la version 1.4.2-1010.

Recalcul de la latence en casde modifications de l'heured'été

Vous pouvez désormais recalculer le décalage horaire lors desmodifications de l'heure d'été pour Oracle et PostgreSQL en tant quesource. Les calculs de latence source et cible sont exacts après lamodification de l'heure d'été.

Conversion du type dedonnées UUID (SQL Serververs MySQL)

Vous pouvez désormais convertir un type de donnéesUNIQUEIDENTIFER (c'est-à-dire, un identifiant unique universel ou

Version de l'API API Version 2016-01-01499

Page 507: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.3

Nouvelle fonction ouamélioration

Description

UUID) en octets lors de la migration entre SQL Server comme source etMySQL comme cible.

Possibilité de modifier lesmodes de chiffrement pourAmazon S3 comme sourceet Amazon Redshift commecible

Vous pouvez désormais modifier le mode de chiffrement lors de lamigration entre S3 comme source et Amazon Redshift comme cible.Vous spécifiez le mode de chiffrement avec un attribut de connexion. Lechiffrement côté serveur et AWS KMS sont tous deux pris en charge.

Les problèmes résolus sont les suivants :

Date de signalement Description

17 juillet 2018 Résolution d'un problème dans lequel PostgreSQL comme sourceenvoyait des valeurs null en tant que valeurs vides aux bases dedonnées Oracle cible au cours de la capture de données modifiées(CDC) en mode LOB complet.

29 juillet 2018 Résolution d'un problème dans lequel la reprise des tâches de migrationvers et depuis Amazon S3 échouait après la mise à niveau à partir deDMS version 1.9.0.

5 août 2018 Résolution d'un problème dans lequel l'attribut de connexionsupplémentaire ResumeFetchForXRows ne fonctionnait pascorrectement avec une clé primaire VARCHAR pour une base de donnéesMySQL source.

12 septembre 2018 Résolution d'un problème dans lequel DMS fonctionnant avecles transactions de sauvegarde SQL Server bloquait le journal detransactions et empêchait son utilisation.

21 septembre 2018 Résolution d'un problème se traduisant par l'échec des chargements enbloc de PostgreSQL comme source vers Amazon Redshift comme cible.Les tâches ayant échoué ne signalaient pas de défaillance lorsque lechargement complet était interrompu.

3 octobre 2018 Résolution d'un problème dans lequel une tâche de migration DMSn'échouait pas lorsque les conditions préalables requises pour laréplication continue n'étaient pas correctement configurées pour SQLServer en tant que source.

Plusieurs dates Résolution de plusieurs problèmes liés à la validation des données, etajout de la prise en charge améliorée de la validation des caractèresmultioctets UTF-8.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.3

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.3d'AWS Database Migration Service (AWS DMS).

Version de l'API API Version 2016-01-01500

Page 508: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.2

Nouvelle fonction ouamélioration

Description

Recréation des métadonnéesde table en cas de non-correspondance

Ajout d'un nouvel attribut de connexion supplémentaire pour les pointsde terminaison MySQL : CleanSrcMetadataOnMismatch.

Il s'agit d'un attribut booléen qui nettoie et recrée les informations demétadonnées de table sur l'instance de réplication lorsqu'une non-correspondance survient. Exemple : lorsque l'exécution d'une instructionalter en langage DDL sur la table peut générer des informationsdifférentes sur la table mise en cache dans l'instance de réplication. Pardéfaut, cet attribut est défini sur false.

Améliorations desperformances de validationdes données

Les améliorations sont, entre autres, les suivantes :

• La validation des données partitionne maintenant les données avantde commencer, et peut donc comparer les partitions et les valider.Cette version apporte des améliorations et des changements àl'extraction en bloc des partitions, qui accélèrent le partitionnement,ainsi que la validation des données.

• Améliorations permettant de gérer automatiquement les différences declassement en fonction des paramètres de tâche.

• Améliorations permettant d'identifier les faux positifs lors de lavalidation, ce qui réduit aussi les faux positifs au cours de la phaseavec les modifications mises en cache.

• Améliorations de la journalisation générale pour la validation desdonnées.

• Améliorations apportées aux requêtes utilisées par la validation desdonnées lorsque les tables ont des clés primaires composites.

Les problèmes résolus sont les suivants :

Date de signalement Description

12 février 2018 Correction d'un problème de réplication continue avec applicationde traitement par lots dans lequel AWS DMS manquait d'élémentslorsqu'une contrainte unique était mise à jour dans la table.

16 mars 2018 Résolution d'un problème dans lequel une tâche de migration d'Oraclevers PostgreSQL se bloquait au cours de la phase de réplicationcontinue, en raison d'un basculement multi-AZ sur l'instance AmazonRDS pour Oracle source.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.2

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.2d'AWS Database Migration Service (AWS DMS).

Version de l'API API Version 2016-01-01501

Page 509: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.2

Nouvelle fonction ouamélioration

Description

Prise en charge de BinaryReader pour Amazon RDSpour Oracle au cours dela capture des donnéesmodifiées

Ajout de la prise en charge de Binary Reader dans les scénarios decapture de données modifiées (CDC) à partir d'une source Amazon RDSpour Oracle pendant une réplication continue.

Paramètres de commandeCOPY supplémentaires pourAmazon Redshift commecible

Introduction de la prise en charge des paramètres de copie AmazonRedshift supplémentaires ci-dessous via les attributs de connexionsupplémentaires. Pour plus d'informations, consultez Attributs deconnexion supplémentaires lors de l'utilisation de Amazon Redshift entant que cible pour AWS DMS (p. 237).

• TRUNCATECOLUMNS

• REMOVEQUOTES

• TRIMBLANKS

Possibilité de mise en échecd'une tâche de migrationlorsqu'une table est tronquéedans une source PostgreSQL

Ajout de la prise en charge de la mise en échec d'une tâche lorsqu'unetroncature est rencontrée dans une source PostgreSQL lors del'utilisation d'un nouveau paramètre de tâche. Pour plus d'informations,consultez le paramètre ApplyErrorFailOnTruncationDdl dans lasection Paramètres de traitement des erreurs pour une tâche (p. 348).

Prise en charge de lavalidation de JSON/JSONB/HSTORE dans les points determinaison PostgreSQL

Ajout de la prise en charge de la validation des données des colonnesJSON, JSONB et HSTORE pour PostgreSQL comme source et commecible.

Amélioration de lajournalisation pour lessources MySQL

Amélioration de la visibilité des erreurs dans les journaux lors de lalecture des journaux binaires MySQL (binlog) pendant la capturede données modifiées (CDC). Les journaux affichent maintenantclairement une erreur ou un avertissement en cas de difficultés d'accèsaux journaux binaires source MySQL pendant la capture de donnéesmodifiées.

Statistiques de validation desdonnées supplémentaires

Ajout de statistiques de table de réplication supplémentaires. Pour plusd'informations, consultez Statistiques des tâches de réplication (p. 421).

Les problèmes résolus sont les suivants :

Date de signalement Description

14 janvier 2018 Correction de tous les problèmes liés à la gestion des dates zéro(0000-00-00) en direction des cibles MySQL pendant le processusde chargement complet et de capture de données modifiées. MySQLn'accepte pas les dates 0000-00-00 (non valides dans MySQL) alorsque certains moteurs les acceptent. Toutes ces dates sont remplacéespar 0101-01-01 pour une cible MySQL.

21 janvier 2018 Résolution du problème lié à l'échec de la migration d'une table dont lenom contient un signe $.

Version de l'API API Version 2016-01-01502

Page 510: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.1

Date de signalement Description

3 février 2018 Résolution d'un problème dans lequel une colonne JSON à partir d'unesource PostgreSQL était tronquée lorsqu'elle était migrée vers une cibleprise en charge.

12 février 2018 Résolution d'un problème d'échec de tâche de migration après lebasculement dans Aurora MySQL cible.

21 février 2018 Résolution d'un problème dans lequel une tâche de migration n'étaitpas en mesure de démarrer la phase de réplication continue après unproblème de connectivité réseau.

23 février 2018 Résolution d'un problème dans lequel certaines règles de transformationdans les mappages de table causaient l'échec de la tâche de migrationdurant la réplication continue vers les cibles Amazon Redshift.

Signalés à plusieurs dates Résolution de divers problèmes de validation des données :

• Résolution de gros problèmes de gestion des chaînes lors de lavalidation source et cible Oracle.

• Gestion de la validation lorsqu'une colonne est supprimée d'une tabledans des mappages de table.

• Amélioration des performances de validation pour les sources ayantun fort taux de modification.

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.1

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.1d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Prise en charge de JSONBpour les sources PostgreSQL

Introduction de la prise en charge de la migration JSONB à partir d'unesource PostgreSQL. JSONB est considéré comme un type de donnéesLOB et exige l'utilisation de paramètres LOB appropriés.

Prise en charge de HSTOREpour les sources PostgreSQL

Introduction de la prise en charge de la migration du type de donnéesHSTORE à partir d'une source PostgreSQL. HSTORE est considérécomme un type de données LOB et exige l'utilisation de paramètres LOBappropriés.

Paramètres de commandeCOPY supplémentaires pourAmazon Redshift commecible

Introduction de la prise en charge des paramètres de copiesupplémentaires ci-dessous via l'utilisation de ces attributs de connexionsupplémentaires :

• ACCEPTANYDATE

• DATEFORMAT

• TIMEFORMAT

• EMPTYASNULL

Version de l'API API Version 2016-01-01503

Page 511: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.1

Les problèmes résolus sont les suivants :

Date de signalement Description

12 juillet 2017 Résolution d'un problème de mise en suspens de la tâche de migrationavant le démarrage de la phase de chargement complet lorsque lalecture s'effectuait à partir d'une table Oracle avec le chiffrement decolonne TDE activé.

3 octobre 2017 Résolution d'un problème lié à une colonne JSON issue d'une sourcePostgreSQL, qui ne migrait pas comme prévu.

5 octobre 2017 Résolution d'un problème lié à la tâche de migration DMS qui indiquaitune latence source égale à 0 lorsqu'un fichier journal redo d'archivageétait introuvable dans l'instance Oracle source. Dans ces conditions, cecorrectif augmente la latence source de façon linéaire.

20 novembre 2017 Résolution d'un problème de migration LOB au cours de laquelle unecolonne TEXT dans PostgreSQL était migrée dans une colonne CLOBdans Oracle avec des espaces superflus après chaque caractère dansl'entrée LOB.

20 novembre 2017 Résolution d'un problème lié à une tâche de migration qui ne s'arrêtaitpas comme prévu après la mise à niveau d'une instance de réplicationsous-jacente de la version 1.9.0 vers la version 2.4.0.

30 novembre 2017 Résolution d'un problème lié à une tâche de migration DMS quine capture pas correctement les modifications apportées par unecommande copy exécutée sur une instance PostgreSQL source.

11 décembre 2017 Résolution d'un problème lié à une tâche de migration qui échouait lorsde la lecture des données modifiées dans un journal binaire inexistantd'une source MySQL.

11 décembre 2017 Résolution d'un problème dans lequel DMS lisait les données modifiéesdans une table inexistante issue d'une source MySQL.

20 décembre 2017 Comprend plusieurs correctifs et améliorations pour la fonction devalidation de données.

22 décembre 2017 Résolution d'un problème lié au paramètre maxFileSize pour les ciblesAmazon Redshift. Ce paramètre était interprété à tort comme des octetset non comme des kilo-octets.

4 janvier 2018 Résolution d'un bogue d'allocation de mémoire pour une instanceAmazon DynamoDB comme tâche de migration cible. Dans certainesconditions, AWS DMS n'allouait pas suffisamment de mémoire si lemappage d'objet utilisé contenait une clé de tri.

10 janvier 2018 Résolution d'un problème lié à Oracle 12.2 comme source danslequel les instructions DML (data manipulation language) n'étaient pascapturées comme prévu lorsque des éléments ROWDEPENDENCIESétaient utilisés.

Version de l'API API Version 2016-01-01504

Page 512: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.4.0

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.4.0

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.4.0d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

Réplication des espaces detable d'index Oracle

Ajoute une fonction pour la prise en charge de la réplication desespaces de table d'index Oracle. Vous trouverez des informationssupplémentaires sur les espaces de table d'index ici.

Prise en charge de l'accèsAmazon S3 entre comptes

Ajoute une fonction qui prend en charge des ACL prêtes à l'emploi(octrois prédéfinis) pour la gestion de l'accès entre comptes avec despoints de terminaison S3. Vous trouverez plus d'informations sur les ACLprêtes à l'emploi dans Liste ACL prête à l'emploi dans le Amazon SimpleStorage Service Manuel du développeur.

Utilisation : Définissez un attribut de connexion supplémentairedans un point de terminaison S3, qui a pour valeurCannedAclForObjects=value. Les valeurs possibles sont lessuivantes :

• NONE

• PRIVATE

• PUBLIC_READ

• PUBLIC_READ_WRITE

• AUTHENTICATED_READ

• AWS_EXEC_READ

• BUCKET_OWNER_READ

• BUCKET_OWNER_FULL_CONTROL

Les problèmes résolus sont les suivants :

Date de signalement Description

19 juillet 2017 Correction d'un problème dans lequel la tâche de réplications'exécute en boucle lorsqu'une instance PostgreSQL source manqued'emplacements de réplication. Avec ce correctif, la tâche échoue avecune erreur signalant que DMS ne peut pas créer un emplacement deréplication logique.

27 juillet 2017 Correction d'un problème dans le moteur de réplication où le type dedonnées MySQL enum générait l'échec d'une tâche avec une erreurd'allocation de mémoire.

7 août 2017 Correction d'un problème à l'origine d'un comportement inattendu destâches de migration avec Oracle en tant que source, lorsque la sourceest à l'arrêt pendant plus de cinq minutes. Ce problème entraînait leblocage de la phase de réplication continue, même une fois que lasource était devenue disponible.

Version de l'API API Version 2016-01-01505

Page 513: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.3.0

Date de signalement Description

24 août 2017 Correction d'un problème avec PostgreSQL cible, dans lequel lapartie fractionnaire du type de données TIME était traitée de manièreincorrecte.

14 septembre 2017 Correction d'un problème dans lequel des valeurs incorrectes étaientécrites dans les champs TOAST des cibles basées sur PostgreSQL lorsde mises à jour au cours de la phase CDC.

8 octobre 2017 Correction d'un problème à compter de la version 2.3.0, dans lequel laréplication continue avec des sources MySQL 5.5 ne fonctionnait pascomme prévu.

12 octobre 2017 Correction d'un problème lié à la lecture des modifications depuisune source SQL Server 2016 au cours de la phase de réplicationcontinue. Ce correctif doit être utilisé avec l'attribut de connexionsupplémentaire suivant dans le point de terminaison SQL Server source :IgnoreTxnCtxValidityCheck=true

Notes de mise à jourAWS Database Migration Service (AWS DMS) 2.3.0

Les tableaux suivants présentent les fonctions et les correctifs de bogues pour la version 2.3.0d'AWS Database Migration Service (AWS DMS).

Nouvelle fonction ouamélioration

Description

S3 comme source Utilisation de Amazon S3 comme source pour AWS DMS (p. 198)

SQL Azure comme source Utilisation de Microsoft Azure SQL Database comme source pour AWSDMS (p. 161)

Plateforme : mise à jour AWSSDK

Mise à jour du kit SDK AWS dans l'instance de réplication vers 1.0.113.Le kit SDK AWS est utilisé pour certains points de terminaison (commeAmazon Redshift et S3) pour charger des données au nom des clientsdans ces points de terminaison. L'utilisation est sans restriction.

Source Oracle : prise encharge de la réplicationd'espace de table dansOracle

Possibilité de migrer des espaces de table à partir d'une source Oraclesans qu'il soit nécessaire de créer au préalable des espaces de tabledans la cible avant la migration.

Utilisation : Utilisez le paramètre ReadTableSpaceName dans lesattributs de connexion supplémentaires du point de terminaison sourceOracle et définissez-le sur « true » pour la prise en charge de laréplication d'espace de table. La valeur par défaut de cette option est« false ».

Source Oracle : prise encharge de la capture desdonnées modifiées pour uneinstance de secours OracleActive Data Guard en tantque source

Possibilité d'utiliser une instance de secours pour Oracle Active DataGuard comme source pour la réplication des modifications en courssur une cible prise en charge. Ainsi, vous n'avez plus besoin de vousconnecter à une base de données active qui peut être en production.

Version de l'API API Version 2016-01-01506

Page 514: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.3.0

Nouvelle fonction ouamélioration

Description

Utilisation : Utilisez le paramètre StandbyDelayTime dans les attributsde connexion supplémentaires du point de terminaison source Oracleet indiquez le temps, en minutes, pour spécifier le retard dans lasynchronisation de l'instance de secours.

Source PostgreSQL : ajoutd'une pulsation WAL

Ajout d'une pulsation de journal WAL (write-ahead log) (c'est-à-dire, exécution de requêtes fictives) pour la réplication à partir d'unesource PostgreSQL. Cette fonctionnalité a été ajoutée afin que lesemplacements de réplication logique inactifs ne conservent pasles anciens journaux WAL, ce qui peut entraîner une saturation dustockage sur la source. Cette pulsation permet de relancer l'exécution derestart_lsn et de prévenir les scénarios de saturation du stockage.

L'utilisation, le cas échéant, s'effectue comme suit :

• HeartbeatEnable est défini sur « true » (valeur par défaut :« false »).

• HeartbeatSchema est le schéma pour les artefacts de pulsation(valeur par défaut : « public »).

• HeartbeatFrequency est la fréquence de pulsation en minutes(valeur par défaut : « 5 », valeur minimum : « 1 »)

Tous les points determinaison : maintiende l'homogénéitéd'une réplication avectransformation

La possibilité de procéder à des migrations constantes pour des tâchesde migration homogènes (à partir d'une perspective structure de table/type de données) est fournie dans la version 2.2.0. Toutefois, DMSconvertissait toujours les types de données en interne lorsqu'une tâcheétait lancée avec des transformations de table. Cette fonction permetde conserver les types de données de la source sur la cible pour desmigrations homogènes de type « lift and shift » (portage virtuel), mêmelorsque des transformations sont utilisées.

L'utilisation est sans restriction pour toutes les migrations homogènes.

Tous les points determinaison : échec de latâche lorsque les tables sontintrouvables

Possibilité de forcer l'échec d'une tâche de réplication lorsque les règlesde transformation incluses ne détectent pas de correspondance.

Utilisation : Modifiez la tâche FailOnNoTablesCaptured en ladéfinissant sur « true ».

Source Oracle : arrêt de latâche lorsque le journal redod'archivage est manquant

Possibilité de sortir d'une boucle et d'arrêter une tâche lorsque le journalredo d'archivage est manquant sur la source.

Utilisation : Utilisez l'attribut de connexion supplémentaireRetryTimeoutInMinutes pour spécifier le délai d'arrêt, en minutes.

Les problèmes résolus sont les suivants :

Date de signalement Description

5 janvier 2017 Correction d'une erreur de collision d'ID serveur lors du lancement deplusieurs tâches DMS sur la même instance MySQL (version 5.6+)

21 février 2017 Correction d'un problème dans lequel la création d'une table échouepour nestingLevel=ONE lorsque _id dans MongoDB est une chaîne

Version de l'API API Version 2016-01-01507

Page 515: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurNotes de mise à jour AWS DMS 2.3.0

Date de signalement Descriptiondu document. Avant cette correction, _id (lorsque c'était une chaîne)était créé en tant que LONGTEXT (MySQL) ou CLOB (Oracle), ce quientraînait une défaillance lorsque le système tentait d'en faire une cléprimaire.

5 mai 2017 Correction d'un problème dans lequel les LOB NULL était migrés entant qu'objets vides lors de l'utilisation du mode LOB complet avec unesource Oracle.

5 mai 2017 Correction d'un problème dans lequel une tâche avec MySQL commesource échoue avec un nombre d'erreurs de connexion trop importantquand l'heure du début des modifications CDC personnalisées date deplus de 24 heures.

24 mai 2017 Correction d'un problème dans lequel une tâche était à l'état démarréedepuis trop longtemps lorsque plusieurs tâches étaient lancéessimultanément sur l'instance de réplication.

7 juillet 2017 Résolution d'un problème qui provoquait un message d'erreurPostgreSQL sur l'utilisation de tous les emplacements de connexiondisponibles. Désormais, une erreur est consignée dans le niveau dejournalisation par défaut lorsque tous les emplacements de connexiondisponibles vers PostgreSQL sont utilisés et que DMS ne peut pasobtenir davantage d'emplacements pour poursuivre la réplication.

19 juillet 2017 Correction d'un problème dans lequel les mises à jour et lessuppressions depuis Oracle vers DynamoDB n'étaient pas migréescorrectement.

8 août 2017 Correction d'un problème à l'origine d'un comportement inattendu aucours des modifications CDC lorsqu'une instance de base de donnéessource Oracle s'arrêtait pendant plus de cinq minutes au cours d'unemigration.

12 août 2017 Correction d'un problème dans lequel les valeurs null de n'importequelle source étaient migrées en tant que valeurs amazon_null, ce quientraînait de problèmes lors de leur insertion dans des types de donnéesnon-varchar dans Amazon Redshift.

27 août 2017 Pour MongoDB, correction d'un problème dans lequel une tâche dechargement complet échoue lorsque nestingLevel=NONE et _id n'ontpas la valeur ObjectId.

Version de l'API API Version 2016-01-01508

Page 516: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMises à jour antérieures

Historique du documentLe tableau suivant décrit les modifications majeures apportées au Guide de l'utilisateur AWS DatabaseMigration Service depuis janvier 2018.

Vous pouvez vous abonner à un flux RSS afin de recevoir les notifications des mises à jour de cettedocumentation.

update-history-change update-history-description update-history-date

Migration avec AWS SnowballEdge

Mise à jour de la documentationpour utiliser AWS Snowball Edgepour la migration des bases dedonnées volumineuses.

January 24, 2019

Prise en charge de AmazonElasticsearch Service et AmazonKinesis Data Streams commecibles

Ajout de la prise en charge deAmazon ES et Kinesis DataStreams comme cibles pour lamigration de données.

November 15, 2018

Prise en charge du point dedépart natif CDC

Ajout de la prise en charge despoints de départ natifs lors del'utilisation de la capture desdonnées modifiées (CDC).

June 28, 2018

Prise en charge de R4 Ajout de la prise en charge desclasses d'instance de réplicationR4.

May 10, 2018

Prise en charge de DB2 LUW Ajout de la prise en charge deIBM Db2 LUW comme source dela migration des données.

April 26, 2018

Prise en charge du journal destâches

Ajout de la prise en charge dela visualisation de l'utilisationdes journaux des tâches et de lapurge de ces journaux.

February 8, 2018

Prise en charge de SQL Servercomme cible

Ajout de la prise en charged'Amazon RDS for Microsoft SQLServer comme source.

February 6, 2018

Mises à jour antérieuresLe tableau suivant décrit les modifications majeures apportées au Guide de l'utilisateur AWS DatabaseMigration Service avant janvier 2018.

Modification Description Date de modification

Nouvelle fonction Ajout de la prise en charge de l'utilisation d'AWS DMSavec AWS Snowball pour migrer les bases de donnéesvolumineuses. Pour plus d'informations, consultezMigration de magasins de données volumineux avec

17 novembre 2017

Version de l'API API Version 2016-01-01509

Page 517: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMises à jour antérieures

Modification Description Date de modificationAWS Database Migration Service et AWS SnowballEdge (p. 434).

Nouvelle fonction Ajout de la prise en charge du rapport d'évaluationde tâche et de la validation des données. Pour plusd'informations sur le rapport d'évaluation de tâche,consultez Création d'un rapport d'évaluation detâche (p. 321). Pour plus d'informations sur la validationdes données, consultez Paramètres de la tâche devalidation des données (p. 342).

17 novembre 2017

Nouvelle fonction Ajout de la prise en charge des modèles AWSCloudFormation. Pour plus d'informations,consultez Prise en charge de AWS DMS pour AWSCloudFormation (p. 15).

11 juillet 2017

Nouvelle fonction Ajout de la prise en charge de l'utilisationd'Amazon Dynamo en tant que cible. Pour plusd'informations, consultez Utilisation d'une base dedonnées Amazon DynamoDB comme cible pourAWS Database Migration Service (p. 267).

10 avril 2017

Nouvelle fonction Ajout de la prise en charge de l'utilisation de MongoDBen tant que source. Pour plus d'informations, consultezUtilisation de MongoDB comme source pour AWSDMS (p. 193).

10 avril 2017

Nouvelle fonction Ajout de la prise en charge de l'utilisation de Amazon S3comme cible. Pour de plus amples informations, veuillezconsulter Utilisation d'Amazon S3 comme cible pourAWS Database Migration Service (p. 243).

27 mars 2017

Nouvelle fonction Ajout de la prise en charge de la recharge des tables debase de données pendant une tâche de migration. Pourplus d'informations, consultez Rechargement de tablespendant une tâche (p. 360).

7 mars 2017

Nouvelle fonction Ajout de la prise en charge des événements et desabonnements aux événements. Pour plus d'informations,consultez Utilisation d'événements et notifications dansAWS Database Migration Service (p. 429).

26 janvier 2017

Nouvelle fonction Ajout de la prise en charge des points de terminaison SSLpour Oracle. Pour plus d'informations, consultez Prise encharge de SSL pour un point de terminaison Oracle (p. 85).

5 décembre 2016

Nouvelle fonction Ajout de la prise en charge de l'utilisation de la capturedes données modifiées (CDC) avec une instance debase de données Amazon RDS PostgreSQL. Pour plusd'informations, consultez Configuration d'une instancede base de données Amazon RDS PostgreSQL commesource (p. 169).

14 septembre 2016

Version de l'API API Version 2016-01-01510

Page 518: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateurMises à jour antérieures

Modification Description Date de modification

Prise en charged'une nouvellerégion

Ajout de la prise en charge pour les régions Asie-Pacifique (Mumbai), Asie-Pacifique (Séoul) et Amériquedu Sud (Sao Paulo). Pour obtenir une liste desrégions prises en charge, consultez la page Qu'est-cequ'AWS Database Migration Service ? (p. 1).

3 août 2016

Nouvelle fonction Ajout de la prise en charge de la réplication continue.Pour plus d'informations, consultez Réplicationcontinue (p. 479).

13 juillet 2016

Nouvelle fonction Ajout de la prise en charge des connexionssécurisées avec SSL. Pour plus d'informations,consultez Utilisation du protocole SSL avecAWS Database Migration Service (p. 81).

13 juillet 2016

Nouvelle fonction Ajout de la prise en charge de SAP Adaptative ServerEnterprise (ASE) en tant que point de terminaisonsource ou cible. Pour plus d'informations, consultezUtilisation d'une base de données SAP ASE commesource pour AWS DMS (p. 188) et Utilisation d'unebase de données SAP ASE comme cible pourAWS Database Migration Service (p. 241).

13 juillet 2016

Nouvelle fonction Ajout de la prise en charge des filtres pour déplacer unsous-ensemble de lignes de la base de données sourcevers la base de données cible. Pour plus d'informations,consultez Utilisation de filtres de source (p. 402).

2 mai 2016

Nouvelle fonction Ajout de la prise en charge d'Amazon Redshiften tant que point de terminaison cible. Pour plusd'informations, consultez Utilisation d'une basede données Amazon Redshift comme cible pourAWS Database Migration Service (p. 228).

2 mai 2016

Disponibilitégénérale

Première version de AWS Database Migration Service 14 mars 2016

Version préliminairepublique

Documentation préliminaire publiée pourAWS Database Migration Service.

21 janvier 2016

Version de l'API API Version 2016-01-01511

Page 519: AWS Database Migration Service · AWS Database Migration Service Guide de l'utilisateur Spécification d'une sélection de table et de transformations par mappage de table à l'aide

AWS Database Migration Service Guide de l'utilisateur

Glossaire AWSPour la terminologie AWS la plus récente, consultez le Glossaire AWS dans le document AWS GeneralReference.

Version de l'API API Version 2016-01-01512