Cette rubrique explique comment utiliser Data Transmission Service (DTS) pour migrer des données entre des instances ApsaraDB RDS. DTS prend en charge la migration de schéma, la migration complète des données et la migration incrémentielle des données. Combinez ces trois types de migration pour transférer votre base de données en toute transparence, sans interruption de service.
Prérequis
Les instances ApsaraDB RDS source et de destination doivent exécuter l'un des moteurs de base de données suivants :
|
Base de données source |
Base de données de destination |
|
RDS MySQL ApsaraDB RDS for MariaDB |
RDS MySQL ApsaraDB RDS for MariaDB |
|
ApsaraDB RDS for SQL Server |
ApsaraDB RDS for SQL Server |
|
ApsaraDB RDS for PostgreSQL |
ApsaraDB RDS for PostgreSQL |
Cette rubrique couvre les opérations dans l'ancienne console DTS. Pour obtenir des instructions sur l'utilisation de la nouvelle console, consultez Migrer des données entre des instances RDS MySQL, Migrer des données entre des instances ApsaraDB RDS for MariaDB, Migrer des données entre des instances ApsaraDB RDS for PostgreSQL, et Migrer des données entre des instances ApsaraDB RDS for SQL Server.
Précautions
La migration de données n'affecte pas les données de la base de données source. Pendant la migration, DTS lit les données de la base source et les réplique vers la base de destination sans supprimer aucune donnée de la source. Pour plus d'informations sur le fonctionnement de la migration de données, consultez Fonctionnement de la migration de données.
Lors d'une migration complète des données, DTS consomme des ressources de lecture et d'écriture sur les bases de données source et de destination, ce qui augmente leur charge. Si vos bases de données présentent de faibles performances, des spécifications limitées ou des charges de travail élevées (par exemple, si la base source contient de nombreuses requêtes SQL lentes ou des tables sans clés primaires, ou si des interblocages se produisent dans la base de destination), cette augmentation de la charge peut mettre vos bases sous tension, voire provoquer des interruptions de service. Effectuez la migration de données pendant les heures creuses, par exemple lorsque l'utilisation du CPU des deux bases est inférieure à 30 %.
Si une table source ne possède ni clé primaire ni contrainte d'unicité et contient des données non uniques, des données en double peuvent être créées dans la base de données de destination.
Lorsque vous effectuez uniquement une migration complète des données, n'écrivez pas de nouvelles données dans l'instance ApsaraDB RDS source pendant la migration afin de garantir la cohérence des données.
En cas d'échec d'une tâche de migration, DTS tente automatiquement de la reprendre. Lors du basculement vers l'instance de destination, arrêtez ou libérez d'abord la tâche de migration. Cela empêche la reprise automatique de la tâche, qui pourrait écraser les données de l'instance de destination avec celles de la base source.
-
DTS crée automatiquement les bases de données dans l'instance ApsaraDB RDS de destination. Si un nom de base de données ne respecte pas les conventions de nommage des instances ApsaraDB RDS, vous devez créer la base de données dans l'instance de destination avant de configurer la tâche de migration.
RemarquePour plus d'informations sur les conventions de nommage et sur la création d'une base de données, consultez Créer une base de données et un compte.
-
Si vous migrez des données entre des instances ApsaraDB RDS for PostgreSQL, sachez qu'après le basculement vers l'instance de destination, les nouvelles séquences ne commenceront pas à s'incrémenter à partir de la valeur maximale des séquences de la base source. Avant le basculement, interrogez la valeur maximale des séquences concernées dans la base source, puis définissez ces valeurs comme valeurs de départ pour les séquences correspondantes dans la base de destination. Exécutez la commande suivante pour interroger les valeurs des séquences dans la base source :
do language plpgsql $$ declare nsp name; rel name; val int8; begin for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S' loop execute format($_$select last_value from %I.%I$_$, nsp, rel) into val; raise notice '%', format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1); end loop; end; $$;
Facturation
|
Type de migration |
Frais de configuration de la tâche |
Frais de trafic Internet |
|
Migration de schéma et migration complète des données |
Gratuit. |
DTS facture des frais de trafic Internet lorsque la Access Method de la base de données de destination est définie sur Public IP Address. Présentation de la facturation. |
|
Migration incrémentielle des données |
Facturé. Présentation de la facturation. |
Types de migration
-
Migration de schéma
DTS migre les schémas des objets de migration vers l'instance de destination.
-
Migration complète des données
DTS migre toutes les données existantes des objets spécifiés de l'instance ApsaraDB RDS source vers l'instance ApsaraDB RDS de destination.
-
Migration incrémentielle des données
En plus de la migration complète des données, DTS synchronise les mises à jour incrémentielles de l'instance ApsaraDB RDS source vers l'instance de destination. La migration incrémentielle vous permet de migrer les données en toute transparence sans interrompre vos applications autogérées.
Opérations SQL pour la migration incrémentielle
|
Scénario de migration |
Type d'opération |
Opération SQL |
|
DML |
INSERT, UPDATE, DELETE, REPLACE |
|
DDL |
|
|
|
Migration entre des instances ApsaraDB RDS for SQL Server |
DML |
INSERT, UPDATE, DELETE Remarque
Les instructions UPDATE qui ne mettent à jour que des colonnes d'objets volumineux (LOB) ne sont pas synchronisées. |
|
DDL |
|
|
|
Migration entre des instances ApsaraDB RDS for PostgreSQL |
DML |
INSERT, UPDATE, DELETE |
|
DDL |
|
Autorisations des comptes de base de données
|
Scénario de migration |
Base de données |
Migration de schéma |
Migration complète des données |
Migration incrémentielle des données |
|
Instance source |
SELECT |
SELECT |
REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW et SELECT |
|
Instance de destination |
Autorisations de lecture et d'écriture |
Autorisations de lecture et d'écriture |
Autorisations de lecture et d'écriture |
|
|
Migration entre des instances ApsaraDB RDS for SQL Server |
Instance source |
SELECT |
SELECT |
Autorisations de propriétaire sur les objets à migrer. Remarque
Un compte privilégié répond à ces exigences. |
|
Instance de destination |
Autorisations de lecture et d'écriture |
Autorisations de lecture et d'écriture |
Autorisations de lecture et d'écriture |
|
|
Migration entre des instances ApsaraDB RDS for PostgreSQL |
Instance source |
Autorisation USAGE sur pg_catalog |
Autorisation SELECT sur les objets à migrer |
rds_superuser Remarque
|
|
Instance de destination |
Autorisations CREATE et USAGE sur les objets à migrer |
Autorisations de propriétaire sur la base de données autorisée, y compris INSERT, UPDATE et DELETE. Remarque
Un compte standard pour ApsaraDB RDS for PostgreSQL répond aux exigences d'autorisation. |
Autorisations de propriétaire sur la base de données autorisée, y compris INSERT, UPDATE et DELETE. Remarque
Un compte standard pour ApsaraDB RDS for PostgreSQL répond aux exigences d'autorisation. |
Procédure
-
Connectez-vous à la console Data Transmission Service (DTS).
RemarqueSi vous êtes redirigé automatiquement vers la console Data Management (DMS), cliquez sur l'icône
en bas à droite, puis cliquez sur
pour revenir à l'ancienne console DTS. Dans le volet de navigation de gauche, cliquez sur Data Migration.
En haut de la page Migration Tasks, sélectionnez la région où se trouve l'instance de destination.
Dans le coin supérieur droit de la page, cliquez sur Create Data Migration Task.
-
Configurez les bases de données source et de destination.
Section
Paramètre
Description
N/A
Task Name
DTS génère automatiquement un nom de tâche. Nous vous recommandons de le remplacer par un nom descriptif pour faciliter l'identification. Le nom de la tâche n'a pas besoin d'être unique.
Source Database
Instance Type
Sélectionnez RDS Instance.
Instance Region
Sélectionnez la région où se trouve l'instance ApsaraDB RDS source.
RDS Instance ID
Sélectionnez l'ID de l'instance ApsaraDB RDS source.
RemarqueLes instances ApsaraDB RDS source et de destination peuvent être identiques ou différentes. Vous pouvez utiliser DTS pour migrer des données au sein d'une seule instance ApsaraDB RDS ou entre deux instances ApsaraDB RDS distinctes.
Database Name
Saisissez le nom de la base de données à migrer depuis l'instance ApsaraDB RDS for PostgreSQL.
RemarqueCe paramètre est affiché et requis uniquement lorsque l'instance ApsaraDB RDS exécute le moteur PostgreSQL.
Database Account
Saisissez le compte de base de données pour l'instance ApsaraDB RDS source. Pour plus d'informations sur les autorisations requises, consultez Autorisations requises pour les comptes de base de données.
Database Password
Saisissez le mot de passe du compte de base de données.
RemarqueAprès avoir saisi les informations de la base de données source, vous pouvez cliquer sur Test Connectivity à côté de Database Password pour vérifier que les informations sont correctes. Si les informations sont correctes, le message Passed s'affiche. Si le message Failed s'affiche, cliquez sur Diagnose à côté du message Failed et ajustez les informations de la base de données source en suivant les instructions.
Connection Method
Sélectionnez Non-encrypted ou SSL-encrypted. Si vous sélectionnez SSL-encrypted, vous devez d'abord activer le chiffrement SSL pour l'instance ApsaraDB RDS. Pour plus d'informations, consultez Activer le chiffrement SSLActiver le chiffrement SSL.
RemarqueCe paramètre est affiché et requis uniquement lorsque l'instance ApsaraDB RDS exécute le moteur MySQL.
Le paramètre Encryption est pris en charge uniquement dans les régions de Chine continentale et de Chine (Hong Kong).
Destination Database
Instance Type
Sélectionnez RDS Instance.
Instance Region
Sélectionnez la région où se trouve l'instance ApsaraDB RDS de destination.
RDS Instance ID
Sélectionnez l'ID de l'instance ApsaraDB RDS de destination.
RemarqueLes instances ApsaraDB RDS source et de destination peuvent être identiques ou différentes. Vous pouvez utiliser DTS pour migrer des données au sein d'une seule instance ApsaraDB RDS ou entre deux instances ApsaraDB RDS distinctes.
Database Name
Saisissez le nom de la base de données de destination dans l'instance ApsaraDB RDS for PostgreSQL. Le nom peut différer de celui de la base source.
RemarqueCe paramètre est affiché et requis uniquement lorsque l'instance ApsaraDB RDS exécute le moteur PostgreSQL.
Database Account
Saisissez le compte de base de données pour l'instance ApsaraDB RDS de destination. Pour plus d'informations sur les autorisations requises, consultez Autorisations requises pour les comptes de base de données.
Database Password
Saisissez le mot de passe du compte de base de données.
RemarqueAprès avoir saisi les informations de la base de données de destination, vous pouvez cliquer sur Test Connectivity après Database Password pour vérifier que les informations saisies sont correctes. Si les informations sont correctes, un message Passed s'affiche. Si un message Failed s'affiche, cliquez sur Diagnose après Failed et ajustez les informations de la base de données de destination en suivant les instructions.
Connection Method
Sélectionnez Non-encrypted ou SSL-encrypted. Si vous sélectionnez SSL-encrypted, vous devez d'abord activer le chiffrement SSL pour l'instance ApsaraDB RDS. Pour plus d'informations, consultez Activer le chiffrement SSLActiver le chiffrement SSL.
RemarqueCe paramètre est affiché et requis uniquement lorsque l'instance ApsaraDB RDS exécute le moteur MySQL.
Le paramètre Encryption est pris en charge uniquement dans les régions de Chine continentale et de Chine (Hong Kong).
-
Une fois la configuration terminée, cliquez sur Set Whitelist and Next en bas à droite de la page.
DTS ajoute automatiquement les adresses IP des serveurs DTS de la région correspondante à la liste d'autorisation de votre instance ApsaraDB RDS. Pour plus d'informations sur les plages d'adresses IP des serveurs DTS, consultez Plages d'adresses IP des serveurs DTS.
AvertissementL'ajout des plages CIDR publiques des serveurs DTS, qu'il soit automatique ou manuel, peut introduire des risques de sécurité. En utilisant ce produit, vous reconnaissez et acceptez ces risques potentiels. Il vous incombe de mettre en œuvre des mesures de sécurité de base, notamment, mais sans s'y limiter, l'utilisation de mots de passe robustes, la restriction des ports ouverts, l'utilisation de l'authentification pour les appels API internes, la révision régulière et la restriction des segments réseau inutiles, ou la connexion via des réseaux privés tels qu'Express Connect, VPN Gateway ou Smart Access Gateway.
-
Sélectionnez les types de migration et les objets.
Paramètre
Description
Migration Type
Sélectionnez les types de migration en fonction de vos besoins métier et des fonctionnalités prises en charge par le moteur de base de données.
-
Pour effectuer uniquement une migration complète des données, sélectionnez à la fois Schema Migration et Full Data Migration.
-
Pour migrer les données sans interruption de service, sélectionnez Schema Migration, full data migration et incremental data migration.
RemarqueSi vous ne sélectionnez pas Incremental Data Migration, n'écrivez pas de nouvelles données dans l'instance ApsaraDB RDS source pendant la migration afin de garantir la cohérence des données.
Migration Objects
Dans la zone Migration Objects, cliquez sur les objets que vous souhaitez migrer, puis cliquez sur l'icône
pour les déplacer vers la zone Selected Objects.Remarque-
Vous pouvez sélectionner des objets au niveau de la base de données, de la table ou de la colonne. Si vous ne sélectionnez que des tables ou des colonnes, d'autres objets tels que les vues, les déclencheurs et les procédures stockées ne sont pas migrés.
-
Par défaut, les noms des objets dans la base de données de destination sont identiques à ceux de la base source. Pour renommer un objet dans la base de destination, utilisez la fonctionnalité de mappage des noms d'objets. Pour plus d'informations, consultez Mappage des noms d'objets.
-
L'utilisation de la fonctionnalité de mappage des noms d'objets peut entraîner l'échec de la migration des objets dépendants.
Map or Rename
Pour renommer les objets de migration dans la base de données de destination, utilisez la fonctionnalité de mappage des noms d'objets. Pour plus d'informations, consultez Mappage des noms d'objets.
Retry Duration for Unstable Connections
Lorsque la connexion à la base de données source ou de destination est instable, DTS tente de reconnecter pendant 720 minutes (12 heures) par défaut. Vous pouvez personnaliser cette durée. Si DTS se reconnecte avec succès dans le délai spécifié, la tâche de migration reprend automatiquement. Sinon, la tâche échoue.
RemarqueVous êtes facturé pour l'instance DTS pendant la période de tentative de reconnexion. Nous vous recommandons de personnaliser la durée de nouvelle tentative en fonction de vos besoins métier ou de libérer l'instance DTS dès que possible après la libération des instances source et de destination.
-
-
Une fois ces paramètres configurés, cliquez sur Pre-check and Start en bas à droite de la page.
RemarqueDTS effectue une pré-vérification avant le démarrage de la tâche. La tâche ne peut démarrer qu'après avoir réussi la pré-vérification.
-
Si la pré-vérification échoue, cliquez sur l'icône
à côté de l'élément ayant échoué pour afficher les détails.Corrigez les problèmes en fonction des détails, puis exécutez à nouveau la pré-vérification.
Pour les avertissements ne nécessitant pas de correction, vous pouvez sélectionner Ignore ou Ignore and Rerun Precheck pour exécuter à nouveau la pré-vérification.
Une fois la tâche passée avec succès la pré-vérification, cliquez sur Next.
Sur la page Confirm Order, sélectionnez une Instance Class et cochez la case Data Transmission Service (Pay-As-You-Go) Terms of Service.
-
Cliquez sur Buy and Start. La tâche de migration démarre.
-
Migration complète des données
N'arrêtez pas manuellement la tâche. Attendez qu'elle se termine automatiquement pour éviter toute perte de données.
-
Migration incrémentielle des données
La tâche ne s'arrête pas automatiquement. Vous devez l'arrêter manuellement lorsque vous êtes prêt.
RemarqueNous vous recommandons d'arrêter la tâche pendant les heures creuses ou lorsque vous êtes prêt à basculer vos charges de travail vers l'instance de destination.
Attendez que l'état de la tâche passe à Incremental Data Migration et affiche Undelayed. Ensuite, cessez d'écrire des données dans la base source pendant quelques minutes. L'état de Incremental Data Migration peut afficher une latence.
Attendez que l'état de Incremental Data Migration repasse à Undelayed. Ensuite, arrêtez manuellement la tâche de migration. La progression de la migration de schéma et de la migration complète des données affiche toutes deux 100 %. Pour mettre la tâche de migration en pause, sélectionnez la tâche et cliquez sur Pause dans la barre d'opérations par lot en bas.
-