Migration d'Amazon Redshift vers Autonomous Database

L'assistant de migration d'Amazon Redshift de SQL Developer, disponible avec SQL Developer 18.3 et versions ultérieures, fournit une structure pour migrer facilement des environnements Amazon Redshift par schéma.

Cette section décrit les étapes et le workflow de migration en ligne d'Amazon Redshift et de génération de scripts pour une migration manuelle planifiée que vous exécutez ultérieurement.

Présentation de la migration de Redshift vers Autonomous Database

Avec SQL Developer, vous pouvez migrer des fichiers de base de données d'Amazon Redshift vers Autonomous Database.

  • Capter : capturez les tables et les schémas de métadonnées à partir de la base de données source et stockez-les dans un référentiel de migration.

  • Conversion : les types de données Redshift sont mis en correspondance avec les types de données Oracle. Les noms d'objet Redshift sont convertis en noms Oracle en fonction de la convention de dénomination d'Oracle. Les valeurs par défaut de colonne qui utilisent des fonctions Redshift sont remplacées par leurs équivalents Oracle.

  • Génération : générez des schémas et des DDL en fonction des métadonnées converties.

  • Déploiement : déployez les schémas et les DDL générés.

  • Copier les données : déchargez des données des tables Redshift vers le stockage Amazon S3, puis copiez des données du stockage Amazon vers des tables Autonomous Database (dans les schémas) qui ont été déployées précédemment.

Connexion à Amazon Redshift

Avec SQL Developer, vous pouvez migrer des schémas et des tables de base de données d'Amazon Redshift vers Autonomous Database. Pour extraire les métadonnées et les données d'Amazon Redshift pour une migration, vous devez vous connecter à Amazon Redshift à l'aide de SQL Developer.

Téléchargement du pilote JDBC Amazon Redshift et ajout du pilote tiers

  1. Téléchargez un pilote JDBC Amazon Redshift pour accéder à Amazon Redshift. Consultez la documentation Amazon Redshift pour connaître l'emplacement du pilote JDBC le plus récent. Pour plus d'informations sur la configuration d'une connexion JDBC.

    Remarque

    Utilisez le pilote JDBC Amazon Redshift compatible avec JDBC 4.2.
  2. Stockez le pilote JDBC Amazon Redshift dans un répertoire local dans lequel SQL Developer peut accéder au pilote JDBC Amazon Redshift.

  3. Avant d'établir une connexion, ajoutez le pilote JDBC Amazon Redshift en tant que tiers à SQL Developer. Dans SQL Developer, accédez à Tools > Preferences > Database > Third Party JDBC Drivers (pour Mac : Oracle SQL Developer > Preferences Database > Third Party JDBC Drivers.

  4. Cliquez sur Ajouter une entrée et sélectionnez le chemin du pilote JDBC Amazon Redshift que vous téléchargez.


    Description de l'image dwcs_aws_migration_jdbc_add1.png
    Description de l'illustration dwcs_aws_migration_jdbc_add1.png
  5. Cliquez sur OK pour ajouter le pilote JDBC Amazon Redshift que vous téléchargez.


Description de l'image dwcs_aws_migration_jdbc_add2.png
Description de l'illustration dwcs_aws_migration_jdbc_add2.png

Ajout d'une connexion à la base de données Amazon Redshift

Connectez-vous à la base de données Amazon Redshift.

  1. Dans le panneau Connexions, cliquez avec le bouton droit de la souris sur Connexions et sélectionnez Nouvelle connexion....

  2. Sélectionnez l'onglet Amazon Redshift et saisissez les informations de connexion d'Amazon Redshift.

    Si vous envisagez de migrer plusieurs schémas, il est recommandé de vous connecter au système Amazon Redshift avec le nom utilisateur maître.


    Description de l'image adw_migrate_aws_connect1.png
    Description de l'illustration adw_migrate_aws_connect1.png

Testez la connexion avant de l'enregistrer.

Informations supplémentaires sur l'authentification et le contrôle d'accès Amazon

Connexion à Autonomous Database

Avec SQL Developer, vous pouvez créer une connexion à Autonomous Database.

Obtenez le fichier ZIP du portefeuille d'informations d'identification client. Pour plus d'informations, reportez-vous à Download Client Credentials (Wallets).
  1. Dans le panneau Connexions, cliquez avec le bouton droit de la souris sur Connections et sélectionnez Nouvelle connexion....
  2. Sélectionnez l'onglet Oracle et saisissez les informations de connexion d'Autonomous Database.
  3. Pour la connexion de la migration d'AWS Redshift, sélectionnez la connexion _low à votre base de données.

    Pour plus d'informations, reportez-vous à Noms de service de base de données pour Autonomous Database.

  4. Ajoutez une connexion à Autonomous Database.


    Description de l'image adb_connect_sqldev_17.4.png
    Description de l'illustration adb_connect_sqldev_17.4.png

    Pour plus d'informations, reportez-vous à Connexion d'Oracle SQL Developer avec un portefeuille (mTLS).

    Testez la connexion avant de l'enregistrer.

Démarrage de l'assistant de migration vers le cloud

Appelez l'assistant de migration vers le cloud à partir du menu Outils de SQL Developer pour lancer la migration d'Amazon Redshift vers Autonomous Database.

L'assistant de migration vers le cloud démarre lorsque vous cliquez sur Migrations vers le cloud dans Migration dans le menu Outils. L'assistant Migrations vers le cloud vous permet de migrer les schémas, les objets (tables) et les données d'une base de données Amazon Redshift vers Autonomous Database.

L'assistant de migration vers le cloud comporte un ensemble simple d'étapes. L'assistant de migration vers le cloud vous guide pour :

  • Identifiez les schémas de la base de données Amazon Redshift à migrer.

  • Identifier l'instance Autonomous Database cible

  • indiquer si vous voulez migrer les métadonnées (DDL), les données ou les deux ;

  • choisir de migrer le système en ligne, de générer des scripts ou les deux.

Identification de la base de données Amazon Redshift

Identifiez les schémas de la base de données Amazon Redshift à migrer. Tous les objets du schéma, principalement les tables, seront migrés. La migration vers Autonomous Database s'effectue schéma par schéma. Les schémas ne peuvent pas être renommés dans le cadre de la migration.

  1. Dans la migration vers AWS Redshift, indiquez la connexion.


    Description de l'image adw_migrate_redshift_step1of3.png
    Description de l'illustration adw_migrate_redshift_step1of3.png
  • Connexion : nom de la connexion à la base de données Redshift.

  • Schémas disponibles : schémas disponibles pour la connexion spécifique.

  • Schémas sélectionnés : cliquez sur l'icône d'ajout pour sélectionner les schémas à migrer à partir de Schémas disponibles.

  • Inclure les données : DDL et DATA migrent les données et les schémas sélectionnés.

Lorsque vous migrez des données, vous devez fournir la clé d'accès AWS, la clé d'accès AWS et un URI de bucket S3 existant où les données Redshift seront déchargées et préparées. Les informations d'identification de sécurité requièrent certains privilèges pour stocker des données dans S3. Il est recommandé de créer des clés d'accès distinctes pour la migration. La même clé d'accès est utilisée ultérieurement pour charger les données dans Autonomous Database à l'aide de demandes REST sécurisées.

Format d'URI de bucket Amazon S3

Pour les fichiers source résidant dans Amazon S3, reportez-vous à Accès à un bucket pour obtenir une description du format d'URI permettant d'accéder à vos fichiers. Par exemple, l'élément suivant fait référence au dossier de fichier folder_name dans le bucket adwc de la région us-west-2.

https://s3-us-west-2.amazonaws.com/adwc/folder_name

Configuration de bucket S3 : exemple 1

Si vous indiquez l'URI de bucket S3 suivant :

https://s3-us-west-2.amazonaws.com/my_bucket

L'assistant vérifie l'intégralité du chemin, y compris my_bucket. Une tentative d'écriture d'un fichier de test est effectuée. S'il n'est pas accessible, une invite apparaît. Si my_bucket n'existe pas, une erreur est signalée :

Validation Failed

La génération du code crée ensuite le chemin suivant pour la fonction DBMS_CLOUD.COPY_DATA :

file_uri_list => "https://s3-us-west-2.amazonaws.com/my_bucket/oracle_schema_name/oracle_table_name/*.gz"

L'assistant de migration crée les dossiers oracle_schema_name/oracle_table_name dans le bucket my_bucket.

Bucket S3 : exemple 2

Si vous indiquez l'URI de bucket S3 suivant :

https://s3-us-west-2.amazonaws.com/my_bucket/another_folder

L'assistant vérifie l'intégralité du chemin, y compris my_bucket. Une tentative d'écriture d'un fichier de test est effectuée. S'il n'est pas accessible, une invite apparaît. Si my_bucket n'existe pas, une erreur est signalée :

Validation Failed

Dans ce cas, another_folder ne doit pas nécessairement exister. La migration crée le bucket another_folder dans my_bucket.

La génération du code crée ensuite le chemin suivant pour la fonction DBMS_CLOUD.COPY_DATA :

file_uri_list => ‘https://s3-us-west-2.amazonaws.com/my_bucket/another_folder/oracle_schema_name/oracle_table_name/*.gz

Etape 2 sur 3 : Autonomous Data Warehouse Cloud

Commencez par créer une connexion pour l'instance Autonomous Database cible. Reportez-vous à Connexion à Autonomous Database. L'utilisateur de cette connexion doit disposer des privilèges d'administration. La connexion est utilisée tout au long de la migration pour créer des schémas et des objets.

Remarque

Employez l'utilisateur ADMIN ou un utilisateur doté du rôle d'administrateur.

L'assistant de migration d'Amazon Redshift vous permet d'effectuer une migration en ligne immédiatement, de générer tous les scripts nécessaires à une migration, ou les deux. Si vous choisissez de stocker les scripts dans un répertoire local, vous devez indiquer ce dernier (il doit être accessible en écriture par l'utilisateur).

  • Connexion : nom de la connexion Autonomous Data Warehouse Cloud. Créez une connexion pour l'instance Autonomous Database si nécessaire. L'utilisateur doit disposer de privilèges d'administration car cette connexion est utilisée tout au long de la migration pour créer des schémas et des objets.

  • Mot de passe du référentiel de migration : mot de passe du référentiel de migration installé dans l'instance Autonomous Database dans le cadre de la migration de schéma. Utilisez le mot de passe prérempli ou saisissez un nouveau mot de passe.

  • Enlever le référentiel une fois la migration effectuée : sélectionnez cette option pour enlever le référentiel une fois la migration effectuée. Le référentiel n'est pas requis après la migration.

  • Migrer maintenant : sélectionnez cette option pour effectuer une migration en ligne immédiatement.

    Remarque

    • Si les options Inclure les données de l'étape 1 et Migrer maintenant sont désélectionnées, vous choisissez de générer uniquement tous les scripts SQL requis pour la migration manuelle.

    • Si l'option Inclure les données de l'étape 1 est désactivée et que l'option Migrer maintenant est sélectionnée, tous les schémas sélectionnés et leurs tables seront déployés dans Autonomous Database, mais les données ne seront pas chargées dans les tables.

    • Si les options Inclure les données de l'étape 1 et Migrer maintenant sont sélectionnées, tous les schémas sélectionnés et leurs tables seront déployés dans Autonomous Database et les données seront chargées dans les tables.

  • Répertoire : indiquez le répertoire dans lequel stocker les scripts générés nécessaires à la migration. Les scripts sont ainsi enregistrés dans un répertoire local.

Paramètres avancés (facultatif)

Les paramètres par défaut fonctionnent, sauf si vous voulez contrôler les options de format lors du déchargement vers le stockage S3 ou de la copie du stockage S3 vers Autonomous Database. Pour plus d'informations sur les options de format, reportez-vous à DBMS_CLOUD Options de format de package. Pour utiliser les options avancées, cliquez sur Paramètres avancés.

Répertoire de sortie : saisissez le chemin ou cliquez sur Sélectionner un répertoire afin de sélectionner le répertoire ou le dossier pour la migration.

Nombre maximal de threads : saisissez le nombre de threads parallèles à activer lors du chargement de données dans les tables d'Autonomous Database.

Utiliser le planificateur : Sélectionnez cette option afin d'activer le planificateur pour la migration. Vous pouvez programmer des travaux pour les opérations de migration de chargement de données du bucket AWS S3 vers Autonomous Database. Vous avez la possibilité d'exécuter les travaux programmés immédiatement, ou à une date et une heure ultérieures. Pour surveiller les travaux programmés de chargement de données, utilisez le noeud Planificateur dans le navigateur Connexions.

Choix d'exécution de migration :

  • L'option Immédiatement exécute le planificateur dès que la migration de Redshift est déclenchée.

  • L'option Une seule fois exécute la planificateur à une date ultérieure. Indiquez la date de début et le fuseau horaire. Par défaut, la date de début affiche la date et l'heure actuelles du système local. Pour modifier la date de début, cliquez deux fois sur l'icône du calendrier et sélectionnez la date, ou sélectionnez la date à l'aide du curseur, puis cliquez sur le champ pour le définir.

Options de téléchargement Redshift : Autoriser l'écrasement : si cette option est activée, le processus de téléchargement écrasera les fichiers existants, y compris le fichier manifeste (qui répertorie les fichiers de données créés par le processus de téléchargement). Par défaut, le déchargement échoue si des fichiers peuvent être écrasés.

Options de format ADWC - Limite de rejet : saisissez le nombre de lignes à rejeter lors du chargement de données dans les tables d'Autonomous Database. L'opération de migration génère une erreur après le rejet d'un nombre donné de lignes. La valeur par défaut est 0.

Vérification et fin de la migration d'Amazon Redshift

Le récapitulatif affiche les informations que vous avez indiquées.

Pour modifier des informations, cliquez sur Retour si nécessaire.


Description de adw_migrate_aws_summary.png
Description de l'image adw_migrate_aws_summary.png

Si vous avez choisi une migration immédiate, la boîte de dialogue de l'assistant de migration reste ouverte jusqu'à ce que la migration soit terminée. Si vous sélectionnez la génération des scripts, le traitement de migration génère les scripts nécessaires dans le répertoire local indiqué et n'exécute pas les scripts.

Pour effectuer la migration, cliquez sur Terminer.

Si le nom de schéma sélectionné dans AWS Redshift existe déjà dans Autonomous Database, le processus de migration exclut le déploiement de ces schémas sélectionnés et affiche la boîte de dialogue suivante :


Description de adw_migrate_aws_schema_exists.png
Description de l'image adw_migrate_aws_schema_exists.png

Récapitulatif : éléments créés par l'assistant de migration

  • Crée un utilisateur Autonomous Database à l'aide de schema_name de Redshift.

  • Crée un bucket sur S3 en fonction du nom de schéma.

  • Crée des sous-dossiers sur S3 pour chaque table.

Utilisation des scripts de migration Amazon Redshift générés

Lorsque vous choisissez de générer les scripts de migration, un sous-répertoire est créé dans le répertoire local indiqué dans l'assistant de migration. Vous pouvez exécuter ces scripts en temps réel ou les utiliser pour des traitements par programmation.

Le répertoire contient les scripts suivants :

  • redshift_s3unload.sql

  • adwc_ddl.sql

  • adwc_dataload.sql

  • adwc_dataload_scheduler.sql

Ces scripts contiennent toutes les commandes nécessaires pour migrer le système Amazon Redshift vers Autonomous Database. Vous pouvez exécuter ces scripts en temps réel ou les utiliser pour des traitements par programmation.

Déchargement des données Amazon Redshift dans S3

La première étape d'une migration consiste à décharger les données Amazon Redshift dans Amazon S3, qui sert de zone intermédiaire. Le script redshift_s3unload.sql dispose de toutes les commandes de déchargement Amazon Redshift permettant de décharger les données à l'aide des informations d'identification d'accès et du bucket S3 indiqués dans le workflow de l'assistant de migration.

Connectez-vous à l'environnement Amazon Redshift pour exécuter ce script.

Création des objets d'entrepôt de données

Pour préparer Autonomous Database, créez un schéma d'entrepôt de données vide avant de charger les données. L'assistant de migration d'Amazon Redshift a converti toutes les structures de schéma Amazon Redshift en structures Oracle dans le script adwc_ddl.sql.

Le script doit être exécuté lorsque vous êtes connecté à l'instance Autonomous Database en tant qu'utilisateur doté de privilèges, par exemple ADMIN.

Par défaut, le schéma créé pour la migration porte le même nom que le schéma dans Amazon Redshift. Vous devez remplacer le mot de passe par le mot de passe valide de l'utilisateur indiqué, dans le script ou après l'exécution du script. Si vous voulez modifier le nom du schéma, modifiez le nom du schéma et toutes les références à ce nom.

Chargement des données Amazon Redshift dans Oracle Autonomous Database

Le script adwc_dataload.sql contient toutes les commandes de chargement nécessaires pour charger les données Amazon Redshift déchargées directement de S3 vers Autonomous Database.

Exécutez le script lorsque vous êtes connecté à l'instance Autonomous Database en tant qu'utilisateur doté de privilèges, par exemple ADMIN.

Si vous voulez modifier le nom de schéma cible lorsque vous créez les objets d'entrepôt de données, vous devez modifier les noms de schéma cible dans ce script en conséquence.

Utilisation de JOB SCHEDULER

SQL Developer fournit une interface graphique permettant d'utiliser le package PL/SQL DBMS_SCHEDULER pour utiliser des objets Oracle Scheduler. Pour utiliser les fonctionnalités de programmation de SQL Developer, reportez-vous à Programmation de travaux à l'aide de SQL Developer dans le guide de l'utilisateur SQL Developer et le guide de l'administrateur Oracle Database afin de comprendre les concepts et les tâches essentielles de programmation de travaux.

Le noeud Fonction de programmation d'une connexion apparaît dans le navigateur Connexions et dans le navigateur DBA. Pour naviguer, utilisez l'utilisateur 'admin' ADWC qui affiche les objets du planificateur appartenant au statut de surveillance 'admin' des travaux de chargement de données.

Sous Connexion ADWC 'admin' → Scheduler → Jobs, vous verrez que les travaux de chargement de données d'AWS Redshift vers ADWC sont créés avec le nom <schema_name>_<table_name>. 

Pour afficher le statut d'achèvement de chaque chargement de données, développez chaque travail programmé et consultez le statut.

Pour plus d'informations sur l'opération de chargement de données, reportez-vous à la table MD_REPORT du schéma SQLDEV_MIGREPOS qui stocke les informations sur les colonnes de table, et les éléments suivants :

 OPERATION_ID, LOGFILE_TABLE, BADFILE_TABLE, SOURCE_SCHEMA_NAME, TARGET_SCHEMA_NAME, SOURCE_TABLE_NAME, 

et

 TARGET_TABLE_NAME, SOURCE_TABLE_ROWS, TARGET_TABLE_ROWS_LOADED, ERROR MESSAGE, 

et

STATUS (COMPLETED or FAILED)

Fichiers journaux et de rapport de migration de Redshift

Après la migration de Redshift, vous trouverez trois fichiers :

  • MigrationResults.log : fichier journal de la migration de Redshift.

  • readme.txt : fichier expliquant comment utiliser les scripts de migration Amazon Redshift générés.

  • redshift_migration_reportxxx.txt : contient des informations sur la migration. Voici un exemple :

    ______________________________________________________________
    OPERATION ID : 8566
    LOGFILE TABLE : COPY$8566_LOG
    BADFILE TABLE : COPY$8566_BAD
    SOURCE SCHEMA : sample
    TARGET SCHEMA : SAMPLE
    SOURCE TABLE : listing
    TARGET TABLE : LISTING
    SOURCE TABLE ROWS : 192497
    TABLE ROWS LOADED : 192497
    ERROR MESSAGE : null
    STATUS : COMPLETED
    START TIME : 2018-09-27 17:25:18.662075
    END TIME : 2018-09-27 17:25:25.012695
    ______________________________________________________________

Réalisation de tâches après migration

Une fois la migration de votre environnement Redshift effectuée, vous devez envisager d'effectuer les tâches postérieures à la migration suivantes :

  • Suppression du schéma SQLDEV_MIGREPOS

  • Suppression du bucket Amazon S3 utilisé pour la préparation

  • Renforcement du compte Amazon utilisé pour accéder à S3

  • Suppression des informations d'identification de base de données utilisées pour le chargement de données à partir de S3

  • Renforcement des comptes dans l'instance Autonomous Database

  1. Suppression du schéma SQLDEV_MIGREPOS

    Dans le cadre de la migration de schéma, l'assistant installe un référentiel de migration minimal dans l'instance Autonomous Database cible. Après la migration, ce compte n'est plus nécessaire et peut être supprimé ou verrouillé.

  2. Suppression du bucket Amazon S3 utilisé pour la préparation

    Sauf si vous voulez utiliser les données Redshift déchargées, vous pouvez supprimer le bucket contenant les données déchargées.

  3. Renforcement du compte Amazon utilisé pour accéder à S3

    Vous devez désactiver la clé d'accès de sécurité utilisée pour accéder à S3, sauf si elle est nécessaire à d'autres fins.

  4. Suppression des informations d'identification de base de données utilisées pour le chargement de données à partir de S3

    Les informations d'identification de sécurité Amazon permettant d'accéder à S3 sont stockées et cryptées en tant qu'informations d'identification de base de données REDSHIFT_DWCS_CREDS dans l'instance Autonomous Database dans le schéma de l'utilisateur doté de privilèges utilisé pour la migration. Oracle vous recommande de supprimer ces informations d'identification après la migration, sauf si elles sont nécessaires à d'autres fins. Pour plus d'informations, reportez-vous à Procédure DROP_CREDENTIAL.

  5. Renforcement des comptes dans l'instance Autonomous Database

    Pour le nouveau schéma créé dans le cadre de la migration avec l'assistant de migration, veillez à modifier les mots de passe de ces comptes, ou à les verrouiller et à les faire expirer s'ils sont uniquement utilisés pour le stockage des données.