Data Transmission Service (DTS) migre les données d'une instance PolarDB-X 2,0 vers une instance Tablestore avec un temps d'arrêt minimal. Cette approche prend en charge la migration du schéma, la migration complète des données et la migration incrémentielle des données, ce qui vous permet de maintenir la base de données source en ligne pendant l'exécution de la migration.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Une instance Tablestore. Pour obtenir des instructions de configuration, consultez Utiliser Tablestore
L'ID AccessKey et le secret AccessKey du compte Alibaba Cloud (et non d'un utilisateur Resource Access Management (RAM)) propriétaire de l'instance Tablestore. Consultez la section Créer une paire de clés AccessKey
Si vous utilisez l'ID AccessKey d'un utilisateur RAM, la tâche de migration des données peut échouer car l'utilisateur RAM ne dispose pas des autorisations requises. Utilisez plutôt les informations d'identification du compte Alibaba Cloud.
Limitations
Base de données source
| Contrainte | Détail |
|---|---|
| Clé primaire ou contrainte d'unicité | Les tables doivent disposer d'une contrainte PRIMARY KEY ou UNIQUE avec tous les champs uniques. Sans cette contrainte, la destination peut contenir des enregistrements en double. |
| Sensibilité à la casse des noms de table | Les tables dont les noms contiennent des lettres majuscules ne prennent en charge que la migration du schéma ; la migration complète et incrémentielle n'est pas prise en charge pour ces tables. |
| Nombre maximal de tables par tâche | Jusqu'à 5 000 tables lors de la migration de tables individuelles avec renommage. Le dépassement de cette limite entraîne une erreur de requête. Pour migrer davantage de tables, divisez le travail en plusieurs tâches ou migrez l'intégralité de la base de données. |
| Journalisation binaire | Le paramètre binlog_row_image doit être défini sur full. Si ce n'est pas le cas, la vérification préalable échoue et la tâche ne peut pas démarrer. Consultez la page Paramètres. |
Destination (Tablestore)
| Contrainte | Détail |
|---|---|
| Nombre maximal de tables | Jusqu'à 64 tables par instance Tablestore. Le dépassement de cette limite entraîne une erreur de migration. Contactez le support technique Tablestore pour augmenter cette limite. |
| Nomination des tables et des colonnes | Les noms ne doivent contenir que des lettres, des chiffres et des traits de soulignement (_), et doivent commencer par une lettre ou un trait de soulignement. Longueur : 1 à 255 caractères. |
| Étendue des objets | Une seule base de données (ou plusieurs tables au sein de la même base de données) peut être migrée par tâche. Le mappage des noms au niveau de la base de données n'est pas pris en charge. |
Généralités
Exécutez les migrations pendant les heures creuses. La migration complète des données utilise d'importantes ressources de lecture et d'écriture sur la source et la destination, ce qui augmente la charge du serveur de base de données.
La migration complète des données entraîne une fragmentation dans les tables de destination. Après la migration, l'utilisation du stockage de destination dépasse celle de la source.
Écrivez des données dans la destination uniquement via DTS pendant la migration. L'écriture à partir d'autres sources provoque une incohérence des données entre la source et la destination.
Facturation
| Type de migration | Frais de configuration de l'instance | Frais de trafic Internet |
|---|---|---|
| Migration du schéma et migration complète des données | Gratuit | Gratuit |
| Migration incrémentielle des données | Facturé. Consultez la section Présentation de la facturation. | — |
Opérations SQL prises en charge pour la migration incrémentielle
| Type d'opération | Instructions SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Autorisations de compte de base de données requises
| Base de données | Migration du schéma | Migration complète des données | Migration incrémentielle des données |
|---|---|---|---|
| Source PolarDB-X 2,0 | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT et SELECT sur les objets à migrer |
Pour obtenir des instructions sur la création de comptes et l'attribution d'autorisations, consultez les rubriques Gérer les comptes de base de données et Autorisations requises pour qu'un compte synchronise les données.
Créer une tâche de migration
Étape 1 : Ouvrir la page Tâches de migration de données
Connectez-vous à la console Data Management (DMS).
Dans la barre de navigation supérieure, cliquez sur DTS.
Dans le volet de navigation de gauche, choisissez DTS (DTS) > Data Migration.
Les étapes ci-dessus peuvent varier selon le mode et la disposition de la console DMS. Consultez les pages Mode simple et Personnaliser la disposition et le style de la console DMS. Vous pouvez également accéder directement à la page Tâches de migration de données de la nouvelle console DTS.
Étape 2 : Sélectionner une région
Dans la liste déroulante située à côté de Tâches de migration de données, sélectionnez la région où réside l'instance de migration de données.
Dans la nouvelle console DTS, sélectionnez la région dans le coin supérieur gauche de la page.
Étape 3 : Configurer les bases de données source et de destination
Cliquez sur Create Task. Dans l'assistant Create Task, configurez les paramètres suivants.
Base de données source
| Paramètre | Description |
|---|---|
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance DMS existante pour remplir automatiquement les paramètres de connexion, ou laissez vide pour configurer manuellement. |
| Database Type | Sélectionnez PolarDB-X 2.0. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région où réside l'instance PolarDB-X 2,0 source. |
| Replicate Data Across Alibaba Cloud Accounts | Sélectionnez No si la source et la destination se trouvent dans le même compte. |
| Instance ID | L'ID de l'instance PolarDB-X 2,0 source. |
| Database Account | Le compte disposant des autorisations répertoriées dans la section Autorisations de compte de base de données requises. |
| Database Password | Le mot de passe du compte de base de données. |
Base de données de destination
| Paramètre | Description |
|---|---|
| Select an existing DMS database instance | (Facultatif) Sélectionnez une instance DMS existante pour remplir automatiquement les paramètres de connexion, ou laissez vide pour configurer manuellement. |
| Database Type | Sélectionnez Tablestore. |
| Access Method | Sélectionnez Alibaba Cloud Instance. |
| Instance Region | La région où réside l'instance Tablestore de destination. |
| Instance ID | L'ID de l'instance Tablestore de destination. |
| AccessKey ID of Alibaba Cloud Account | L'ID AccessKey du compte Alibaba Cloud propriétaire de l'instance Tablestore. N'utilisez pas l'ID AccessKey d'un utilisateur RAM. |
| AccessKey Secret of Alibaba Cloud Account | Le secret AccessKey du compte Alibaba Cloud propriétaire de l'instance Tablestore. |
Étape 4 : Tester la connectivité
Cliquez sur Test Connectivity and Proceed.
DTS ajoute automatiquement ses blocs CIDR de serveur à la liste d'autorisation IP des instances de base de données Alibaba Cloud. Pour les bases de données gérées par l'utilisateur sur des instances Elastic Compute Service (ECS), DTS ajoute les blocs CIDR aux règles du groupe de sécurité ECS. Si la base de données gérée par l'utilisateur s'étend sur plusieurs instances ECS, ajoutez manuellement les blocs CIDR DTS au groupe de sécurité de chaque instance. Pour les bases de données locales ou hébergées sur un cloud tiers, ajoutez manuellement les blocs CIDR à la liste d'autorisation IP de la base de données. Consultez la page Ajouter les blocs CIDR des serveurs DTS aux paramètres de sécurité des bases de données locales.
L'ajout des blocs CIDR des serveurs DTS aux listes d'autorisation IP ou aux règles de groupe de sécurité introduit des risques de sécurité. Avant de poursuivre, prenez des mesures préventives, notamment : renforcer la sécurité des comptes et des mots de passe, restreindre les ports exposés, authentifier les appels API, auditer régulièrement les listes d'autorisation IP et les règles de groupe de sécurité, et utiliser Express Connect, VPN Gateway ou Smart Access Gateway pour connecter les bases de données à DTS.
Étape 5 : Configurer les objets et les paramètres de migration
Configurez les paramètres suivants.
Type de migration
| Option | Quand l'utiliser |
|---|---|
| Migration du schéma + Migration complète des données | Migration ponctuelle. Nous vous recommandons de ne pas écrire de données dans la base de données source pendant la migration afin de garantir la cohérence des données. |
| Migration du schéma + Migration complète des données + Migration incrémentielle des données | Migration avec un temps d'arrêt minimal. DTS continue de capturer les modifications de la source pendant la migration complète, puis les applique à la destination. |
Si vous ne sélectionnez pas Incremental Data Migration, nous vous recommandons de ne pas écrire de données dans la base de données source pendant la migration. Cela garantit la cohérence des données entre les bases de données source et de destination.
Gestion des conflits
| Paramètre | Option | Comportement |
|---|---|---|
| Processing Mode of Conflicting Tables | Vérification préalable et signalement des erreurs | Échec de la vérification préalable si les tables de destination partagent des noms avec les tables source. Utilisez le mappage des noms d'objets pour renommer les tables avant de commencer. |
| Ignorer les erreurs et continuer | Ignore la vérification préalable. Les lignes avec des clés primaires correspondantes ne sont pas migrées ; les différences de schéma peuvent entraîner une migration partielle ou l'échec de la tâche. À utiliser avec prudence. |
Paramètres spécifiques à Tablestore
| Paramètre | Options et conseils |
|---|---|
| Processing Policy of Dirty Data | Ignorer ignore les erreurs d'écriture et continue. Bloquer arrête la tâche en cas d'erreurs d'écriture. |
| Data Write Mode | Écraser la ligne utilise l'opération UpdateRowChange pour écraser les lignes dans l'instance Tablestore. Mettre à jour la ligne utilise l'opération PutRowChange pour mettre à jour les lignes dans l'instance Tablestore. |
| Batch Write Mode | BulkImportRequest écrit les données hors ligne et offre une efficacité de lecture et d'écriture plus élevée à moindre coût. BatchWriteRowRequest écrit les données par lots. Utilisez BulkImportRequest pour atteindre une efficacité plus élevée et réduire les coûts d'utilisation de l'instance Tablestore. |
| More (avancé) | Queue Size : longueur de la file d'attente d'écriture. Thread Quantity : nombre de threads de rappel d'écriture. Concurrency : nombre maximal de threads d'écriture simultanés. Buckets : nombre maximal de compartiments simultanés pour les données incrémentielles (doit être inférieur ou égal à Concurrency). |
Sélection d'objets
| Paramètre | Description |
|---|---|
| Operation Types | Les types d'opérations DML à migrer. Tous les types sont sélectionnés par défaut. |
| Capitalization of Object Names in Destination Instance | Contrôle la mise en majuscule des noms de base de données, de table et de colonne dans la destination. La valeur par défaut est Stratégie par défaut DTS. Consultez la page Spécifier la mise en majuscule des noms d'objets dans l'instance de destination. |
| Source Objects | Sélectionnez les tables ou les bases de données à migrer et cliquez sur l'icône de flèche pour les ajouter à Selected Objects. Tablestore ne prend en charge la migration que d'une seule base de données, ou de plusieurs tables au sein de la même base de données, par tâche. |
| Selected Objects | Cliquez avec le bouton droit sur un objet pour le renommer. Cliquez sur Batch Edit pour renommer plusieurs objets. Remarque : le mappage des noms de base de données n'est pas pris en charge ; seuls les noms de table et de colonne peuvent être mappés. Pour filtrer les lignes, cliquez avec le bouton droit sur une table et spécifiez des conditions SQL. Consultez la rubrique Utiliser des conditions SQL pour filtrer les données. |
Étape 6 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Select the dedicated cluster used to schedule the task | Par défaut, DTS planifie la tâche sur un cluster partagé. Sélectionnez un cluster dédié pour des ressources dédiées. Consultez la page Qu'est-ce qu'un cluster dédié DTS ?. |
| Set Alerts | Sélectionnez Yes pour recevoir des notifications lorsque la tâche échoue ou que la latence de migration dépasse un seuil. Spécifiez les contacts d'alerte et les seuils. Consultez la page Configurer la surveillance et les alertes. |
| Retry Time for Failed Connections | Durée pendant laquelle DTS tente de reconnecter une connexion ayant échoué avant de marquer la tâche comme ayant échoué. Plage : 10–1440 minutes. Par défaut : 720 minutes. Définissez une valeur d'au moins 30 minutes pour permettre la récupération après des pannes transitoires. |
| The wait time before a retry when other issues occur in the source and destination databases | Durée pendant laquelle DTS retente les opérations DDL ou DML ayant échoué. Plage : 1–1440 minutes. Par défaut : 10 minutes. Définissez une valeur d'au moins 10 minutes. Cette valeur doit être inférieure à Durée de tentative pour les connexions ayant échoué. |
| Enable Throttling for Full Data Migration | Limite la charge de lecture/écriture sur la source et la destination pendant la migration complète. Configurez QPS to the source database, RPS de la migration complète des données et Vitesse de migration des données pour la migration complète (Mo/s). Affiché uniquement lorsque Migration complète des données est sélectionné. |
| Enable Throttling for Incremental Data Migration | Limite la charge pendant la migration incrémentielle. Configurez RPS of Incremental Data Migration et Vitesse de migration des données pour la migration incrémentielle (Mo/s). Affiché uniquement lorsque Migration incrémentielle des données est sélectionné. |
| Environment Tag | Un tag facultatif pour identifier l'instance DTS. |
| Configure ETL | L'extraction, la transformation et le chargement (ETL) ne sont pas pris en charge pour ce chemin de migration. Sélectionnez No. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Sélectionnez Yes pour empêcher DTS d'écrire dans les tables de pulsation de la base de données source. Dans ce cas, une latence de l'instance DTS peut s'afficher. Sélectionnez No pour écrire les opérations de pulsation. Dans ce cas, des fonctionnalités spécifiques telles que la sauvegarde physique et le clonage de la base de données source peuvent être affectées. |
Étape 7 : Configurer les colonnes de clé primaire
Cliquez sur Next: Configure Database and Table Fields. Dans la boîte de dialogue Remarque, cliquez sur OK.
DTS mappe automatiquement la colonne de clé primaire de chaque table à la Colonne de clé primaire Tablestore. Pour modifier le mappage, définissez Definition Status sur Tous et sélectionnez une ou plusieurs colonnes dans la liste déroulante pour créer une clé primaire composite.
Étape 8 : Exécuter la vérification préalable
Cliquez sur Next: Save Task Settings and Precheck.
Pour afficher un aperçu des paramètres API pour cette configuration avant l'enregistrement, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters.
La tâche exécute une vérification préalable avant de démarrer. Si des éléments de vérification préalable échouent :
Cliquez sur View Details à côté de l'élément ayant échoué, résolvez le problème, puis cliquez sur Precheck Again.
Si un élément d'alerte peut être ignoré en toute sécurité, cliquez sur Confirm Alert Details, cliquez sur Ignore, confirmez en cliquant sur OK, puis cliquez sur Precheck Again.
Ignorer les alertes de vérification préalable peut entraîner une incohérence des données. Ne poursuivez que si vous comprenez les implications.
Étape 9 : Attendre la réussite de la vérification préalable
Attendez que le taux de réussite atteigne 100 %, puis cliquez sur Next: Purchase Instance.
Étape 10 : Configurer la classe d'instance
Sur la page Purchase Instance, configurez les paramètres suivants sous Nouvelle classe d'instance.
| Paramètre | Description |
|---|---|
| Resource Group | Le groupe de ressources pour l'instance DTS. Par défaut : groupe de ressources par défaut. Consultez la page Qu'est-ce que Resource Management ? |
| Instance Class | Contrôle le débit de migration. Sélectionnez une classe en fonction du volume de données et des contraintes de temps. Consultez la page Spécifications des instances de migration de données. |
Étape 11 : Accepter les conditions de service
Lisez et acceptez les Conditions de service Data Transmission Service (paiement à l'utilisation) en cochant la case.
Étape 12 : Démarrer la migration
Cliquez sur Buy and Start. La tâche apparaît dans la liste des tâches, où vous pouvez suivre sa progression.