Migration d'une base de données SQL Server vers Babelfish for Aurora PostgreSQL - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Migration d'une base de données SQL Server vers Babelfish for Aurora PostgreSQL

Vous pouvez utiliser Babelfish for Aurora PostgreSQL pour migrer une base de données SQL Server vers un cluster de bases de données Amazon Aurora PostgreSQL. Avant toute migration, consultez Utilisation de Babelfish avec une ou plusieurs bases de données.

Présentation du processus de migration

Le résumé suivant énumère les étapes nécessaires pour réussir la migration de votre application SQL Server et la faire fonctionner avec Babelfish. Pour plus d'informations sur les outils que vous pouvez utiliser pour les processus d'exportation et d'importation, et pour plus de détails, consultez Outils d'importation/exportation pour la migration de SQL Server vers Babelfish. Pour charger les données, nous vous recommandons d'utiliser un cluster AWS DMS de base de données Aurora PostgreSQL comme point de terminaison cible.

  1. Créez un cluster de bases de données Aurora PostgreSQL dans lequel Babelfish est activé. Pour savoir comment procéder, veuillez consulter la section Création d'un cluster de bases de données Babelfish for Aurora PostgreSQL.

    Pour importer les différents artefacts SQL exportés de votre base de données SQL Server, connectez-vous au cluster Babelfish en utilisant un outil SQL Server tel que sqlcmd. Pour de plus amples informations, veuillez consulter Utilisation d'un client SQL Server pour se connecter au cluster de bases de données.

  2. Sur la base de données SQL Server que vous souhaitez migrer, exportez le langage de définition de données (DDL). Le DDL est un code SQL qui décrit les objets de base de données contenant des données utilisateur (comme des tables, des index et des vues) et du code de base de données écrit par l'utilisateur (comme des procédures stockées, des fonctions définies par l'utilisateur et des déclencheurs).

    Pour de plus amples informations, veuillez consulter Utilisation de SQL Server Management Studio (SSMS) pour migrer vers Babelfish.

  3. Exécutez un outil d'évaluation pour évaluer la portée des modifications dont vous pourriez avoir besoin pour que Babelfish puisse prendre en charge l'application exécutée sur SQL Server. Pour de plus amples informations, veuillez consulter Évaluation et gestion des différences entre SQL Server et Babelfish.

  4. Passez en revue les limites du point de terminaison AWS DMS cible et mettez à jour le script DDL si nécessaire. Pour plus d'informations, consultez Limitations relatives à l'utilisation d'un point de terminaison cible PostgreSQL avec des tables Babelfish dans Utilisation de Babelfish pour Aurora PostgreSQL comme cible.

  5. Sur votre nouveau cluster de bases de données Babelfish, exécutez la DDL dans votre base de données T-SQL spécifiée pour créer uniquement les schémas, les types de données définis par l'utilisateur, et les tables avec leurs contraintes de clé primaire.

  6. Utilisez-le AWS DMS pour migrer vos données de SQL Server vers les tables Babelfish. Pour la réplication continue à l'aide de SQL Server Change Data Capture ou SQL Replication, utilisez Aurora PostgreSQL au lieu de Babelfish comme point de terminaison. Pour ce faire, consultez l'article Utiliser Babelfish pour Aurora PostgreSQL comme cible pour. AWS Database Migration Service

  7. Lorsque le chargement des données est terminé, créez tous les objets T-SQL restants qui prennent en charge l'application sur votre cluster Babelfish.

  8. Reconfigurez l'application cliente pour qu'elle se connecte au point de terminaison Babelfish au lieu de votre base de données SQL Server. Pour de plus amples informations, veuillez consulter Connexion à un cluster de bases de données Babelfish.

  9. Modifiez l'application si nécessaire et procédez à un nouveau test. Pour de plus amples informations, veuillez consulter Différences entre Babelfish for Aurora PostgreSQL et SQL Server.

Vous devez toujours évaluer vos requêtes SQL côté client. Les schémas générés à partir de votre instance SQL Server convertissent uniquement le code SQL côté serveur. Nous vous recommandons d'effectuer les étapes suivantes :

  • Capturez les requêtes côté client à l'aide de SQL Server Profiler avec le modèle prédéfini TSQL_Replay. Ce modèle capture les informations des instructions T-SQL que vous pouvez ensuite lire à nouveau pour des réglages et des tests itératifs. Vous pouvez démarrer Profiler dans SQL Studio Management Studio, à partir du menu Tools (Outils). Choisissez SQL Server Profiler pour ouvrir Profiler et choisissez le modèle TSQL_Replay.

    Pour l'utiliser pour votre migration Babelfish, démarrez une trace, puis exécutez votre application à l'aide de vos tests fonctionnels. Profiler capture les instructions T-SQL. Une fois que vous avez terminé le test, arrêtez la trace. Enregistrez le résultat dans un fichier XML avec vos requêtes côté client (File > Save as > Trace XML File for Replay) (Fichier > Enregistrer sous > Tracer le fichier XML pour le relire).

    Pour plus d'informations, consultez SQL Server Profiler dans la documentation Microsoft. Pour plus d'informations sur le modèle TSQL_Replay, consultez Modèles du Générateur de profils SQL Server.

  • Pour les applications comportant des requêtes SQL complexes côté client, nous vous recommandons d'utiliser Babelfish Compass pour les analyser afin de vérifier la compatibilité de ces requêtes avec Babelfish. Si l'analyse indique que les instructions SQL côté client contiennent des fonctions SQL non prises en charge, examinez les aspects SQL de l'application cliente et modifiez-les si nécessaire.

  • Vous pouvez également capturer les requêtes SQL en tant qu'événements étendus (format .xel). Pour ce faire, utilisez le XEvent profileur SSMS. Après avoir généré le fichier .xel, extrayez les instructions SQL dans des fichiers .xml que Compass peut ensuite traiter. Pour plus d'informations, consultez la section Utiliser le XEvent profileur SSMS dans la documentation Microsoft.

Lorsque vous êtes satisfait de tous les tests, de toutes les analyses et de toutes les modifications nécessaires pour votre application migrée, vous pouvez commencer à utiliser votre base de données Babelfish en production. Pour ce faire, arrêtez la base de données d'origine et redirigez les applications clientes en direct pour utiliser le port Babelfish TDS.

Note

AWS DMS prend désormais en charge la réplication des données de Babelfish. Pour plus d'informations, consultez la section Supporte AWS DMS désormais Babelfish pour Aurora PostgreSQL en tant que source.

Évaluation et gestion des différences entre SQL Server et Babelfish

Pour de meilleurs résultats, nous vous recommandons d'évaluer le code de requête généré DDL/DML et le code de requête client avant de migrer votre application de base de données SQL Server vers Babelfish. Selon la version de Babelfish et les fonctionnalités spécifiques de SQL Server implémentées par votre application, vous devrez peut-être refactoriser votre application ou utiliser des alternatives aux fonctionnalités qui ne sont pas encore entièrement prises en charge dans Babelfish.

  • Pour évaluer le code de votre application SQL Server, utilisez Babelfish Compass sur la DDL générée pour déterminer la quantité de code T-SQL prise en charge par Babelfish. Identifiez le code T-SQL qui pourrait nécessiter des modifications avant d'être exécuté sur Babelfish. Pour plus d'informations sur cet outil, consultez l'outil Babelfish Compass sur. GitHub

    Note

    Babelfish Compass est un outil open source. Signalez tout problème avec Babelfish Compass par le biais du Support GitHub plutôt que par le biais du Support AWS .

Vous pouvez utiliser l'assistant Generate Script (Génération de scripts) avec SQL Server Management Studio (SSMS) pour générer le fichier SQL qui est évalué par Babelfish Compass ou CLI AWS Schema Conversion Tool . Nous recommandons les étapes suivantes pour rationaliser l'évaluation.

  1. Sur la page Choose Objects (Choisir des objets), sélectionnez Script entire database and all database objects (Script de la base de données entière et tous les objets de la base de données).

    Utilisez l'assistant Generate Scripts (Génération de scripts) SSMS pour choisir les objets.
  2. Pour l'option Set Scripting Options (Définir les options de script), choisissez Save as script file (Enregistrer comme fichier de script) en tant que Single script file (Fichier de script unique).

    Utiliser l'assistant Generate Script (Génération de scripts) SSMS pour définir les options de script.
  3. Choisissez Advanced (Avancé) pour modifier les options de script par défaut afin d'identifier les fonctionnalités qui sont normalement définies sur faux pour une évaluation complète :

    • Option Script Change Tracking définie sur True

    • Option Script Full-Text Indexes définie sur True

    • Option Script Triggers définie sur True

    • Option Script Logins définie sur True

    • Option Script Owner définie sur True

    • Option Script Object-Level Permissions définie sur True

    • Option Script Collations définie sur True

    Utiliser l'assistant Generate Script (Génération de scripts) SSMS pour définir les options de script avancées.
  4. Effectuez les étapes restantes de l'assistant pour générer le fichier.

Outils d'importation/exportation pour la migration de SQL Server vers Babelfish

Nous vous recommandons de l'utiliser AWS DMS comme outil principal pour migrer de SQL Server vers Babelfish. Cependant, Babelfish prend en charge plusieurs autres façons de migrer les données à l'aide d'outils SQL Server, dont les suivants.

  • SQL Server Integration Services (SSIS) pour toutes les versions de Babelfish. Pour obtenir plus d'informations, consultez Migrate from SQL Server to Aurora PostgreSQL using SSIS and Babelfish (Migration de SQL Server vers Aurora PostgreSQL en utilisant SSIS et Babelfish).

  • Utilisez l' Import/Export assistant SSMS pour les versions 2.1.0 et ultérieures de Babelfish. Cet outil est disponible via SSMS, mais également en tant qu'outil autonome. Pour plus d'informations, consultez Assistant Importation et Exportation SQL Server dans la documentation Microsoft.

  • L'utilitaire Microsoft bulk data copy (bcp) vous permet de copier les données d'une instance Microsoft SQL Server vers un fichier de données au format que vous spécifiez. Pour plus d'informations, consultez Utilitaire bcp dans la documentation Microsoft. Babelfish prend désormais en charge la migration des données à l'aide du client BCP et l'utilitaire bcp prend désormais en charge l'indicateur -E (pour les colonnes d'identité) et l'indicateur -b (pour les insertions en lot). Certaines options de bcp ne sont pas prises en charge, notamment -C, -T, -G, -K, -R, -V et -h.

Utilisation de SQL Server Management Studio (SSMS) pour migrer vers Babelfish

Nous recommandons de générer des fichiers séparés pour chacun des types d'objets spécifiques. Vous pouvez utiliser l'assistant Generate Scripts (Génération de scripts) dans SSMS pour chaque ensemble d'instructions DDL d'abord, puis modifier les objets en tant que groupe pour résoudre tous les problèmes trouvés pendant l'évaluation.

Procédez comme suit pour migrer les données à l'aide de AWS DMS ou d'autres méthodes de migration de données. Exécutez d'abord ces types de script de création pour une approche plus efficace et plus rapide du chargement des données sur les tables Babelfish dans Aurora PostgreSQL.

  1. Exécutez les instructions CREATE SCHEMA.

  2. Exécutez les instructions CREATE TYPE pour créer des types de données définis par l'utilisateur.

  3. Exécutez les instructions CREATE TABLE de base avec les clés primaires ou les contraintes uniques.

Effectuez le chargement des données à l'aide de l' import/export outil recommandé. Exécutez les scripts modifiés pour les étapes suivantes afin d'ajouter les objets de base de données restants. Vous avez besoin des instructions de création de table pour exécuter ces scripts pour les contraintes, les déclencheurs et les index. Une fois les scripts générés, supprimez les instructions de création de table.

  1. Exécutez les instructions ALTER TABLE pour les contraintes de contrôle, les contraintes de clé étrangère, les contraintes par défaut.

  2. Exécutez les instructions CREATE TRIGGER.

  3. Exécutez les instructions CREATE INDEX.

  4. Exécutez les instructions CREATE VIEW.

  5. Exécutez les instructions CREATE STORED PROCEDURE.

Pour générer des scripts pour chaque type d'objet

Suivez les étapes suivantes pour créer les instructions de base de création de table à l'aide de l'assistant Generate Scripts (Génération de scripts) dans SSMS. Suivez les mêmes étapes pour générer des scripts pour les différents types d'objets.

  1. Connectez-vous à votre instance SQL Server existante.

  2. Ouvrez le menu contextuel (clic droit) à partir d'un nom de base de données.

  3. Choisissez Tasks (Tâches), puis Generate Scripts... (Générer des scripts...).

  4. Dans le panneau Choose Objects (Choisir des objets), choisissez Select specific database objects (Sélectionner des objets de base de données spécifiques). Choisissez Tables, puis sélectionnez toutes les tables. Choisissez Next (Suivant) pour continuer.

    Utilisez l'assistant Generate Scripts (Génération de scripts) SSMS pour choisir les objets et les tables.
  5. Sur la page Set Scripting Options (Définir les options de script), choisissez Advanced (Avancé) pour ouvrir les paramètres Options. Pour générer les instructions de base de création de table, modifiez les valeurs par défaut suivantes :

    • Option Script Defaults définie sur False.

    • Option Script Extended Properties définie sur False. Babelfish ne prend pas en charge les propriétés étendues.

    • Option Script Check Constraints définie sur False. Option Script Foreign Keys définie sur False.

    Utilisez l'assistant Generate Scripts (Génération de scripts) SSMS pour définir les options de script avancées.
  6. Choisissez OK.

  7. Sur la page Set Scripting Options (Définir les options de script), choisissez Save as script file (Enregistrer comme fichier de script), puis choisissez l'option Single script file (Fichier de script unique). Saisissez votre File name (Nom de fichier).

    Utilisez l'assistant Generate Scripts (Génération de scripts) SSMS pour définir les valeurs par défaut du script.
  8. Choisissez Next (Suivant) pour afficher la page Summary wizard (Assistant Résumé).

  9. Choisissez Next (Suivant) pour lancer la génération du script.

    Vous pouvez continuer à générer des scripts pour les autres types d'objets dans l'assistant. Au lieu de choisir Finish (Terminer) après l'enregistrement du fichier, cliquez trois fois sur le bouton Previous (Précédent) pour revenir à la page Choose Objects (Choisir des objets). Répétez ensuite les étapes de l'assistant pour générer des scripts pour les autres types d'objets.