La fonctionnalité de création de tâche inverse du service Data Transmission Service (DTS) permet de renvoyer les données vers une base de données source dans des scénarios de reprise après sinistre ou de basculement de service.
Prérequis
Créez une base de données de reprise après sinistre avec un espace de stockage supérieur à celui de la base de données de production. Nous vous recommandons d'allouer au moins 10 % d'espace supplémentaire par rapport à l'utilisation de la base de données de production.
-
Créez des comptes de base de données pour la synchronisation des données dans la base de données de production et dans la base de données de reprise après sinistre. Pour plus d'informations sur les autorisations requises, consultez Synchronisation unidirectionnelle entre des instances RDS MySQL, Synchronisation entre des instances RDS SQL Server, Synchroniser des données d'une instance ApsaraDB for MongoDB en replica set vers une autre instance en replica set ou en cluster fragmenté, et Synchroniser des données d'une instance ApsaraDB for MongoDB en cluster fragmenté vers une instance ApsaraDB for MongoDB en replica set ou en cluster fragmenté.
ImportantLe compte de la base de données de reprise après sinistre nécessite des autorisations supplémentaires :
Pour une instance de synchronisation entre des bases de données SQL Server : le compte de la base de données de destination doit disposer des permissions du rôle
sysadmin. Pour accorder ces permissions, utilisez un compte privilégié pour exécuter la commande suivante :EXEC sp_addsrvrolemember @loginame = N'<Account name>', @rolename = N'sysadmin';Pour une instance de synchronisation entre des bases de données MySQL : le compte de la base de données de destination doit également disposer des permissions
REPLICATION CLIENT,REPLICATION SLAVE,SHOW VIEWetSELECT. Pour savoir comment accorder ces permissions, consultez la documentation officielle MySQL.Pour une instance de synchronisation entre des instances ApsaraDB for MongoDB : le compte de la base de données de destination doit également disposer des permissions
readsur la base de données à synchroniser, ainsi que sur les bases de donnéesadminetlocal. Pour plus d'informations, consultez Gérer les comptes de base de données à l'aide de DMS.
Notes d'utilisation
-
Vous pouvez créer une instance inverse uniquement pour une instance de synchronisation entre des bases de données SQL Server, MySQL ou des instances ApsaraDB for MongoDB. Pour l'instance inverse, sélectionnez uniquement Incremental Data Synchronization dans les Synchronization Types.
ImportantSi l'instance de synchronisation d'origine implique des bases de données SQL Server ou MySQL, cette fonctionnalité est prise en charge uniquement lorsque la base de données de destination est une instance de base de données ApsaraDB.
L'instance inverse ne synchronise pas les données écrites directement dans la base de données de destination avant sa création.
Après la création d'une instance inverse, une pré-vérification s'exécute immédiatement. Si la pré-vérification réussit, DTS commence à capturer les données incrémentielles, mais le module d'écriture des données incrémentielles ne s'exécute pas.
Pour éviter toute incohérence des données ou panne de l'instance, suspendez l'instance d'origine avant de démarrer l'instance inverse correspondante.
Vous ne pouvez créer qu'une seule instance inverse pour chaque instance de synchronisation. Une fois l'instance inverse démarrée, vous ne pouvez pas redémarrer directement l'instance d'origine.
Vous ne pouvez pas créer d'instance inverse pour une instance de synchronisation inter-régions ou inter-pays.
Les tables à synchroniser doivent comporter des clés primaires ou des contraintes UNIQUE, et tous les champs inclus dans ces contraintes doivent être uniques. Dans le cas contraire, des données en double peuvent apparaître.
Définissez la période de conservation des journaux binaires en fonction du temps de récupération estimé après une exception survenant dans la base de données de production.
Si la tâche d'origine utilise une instance Serverless, la tâche inverse utilise une instance facturable à l'utilisation avec la spécification micro. Si la tâche d'origine utilise une instance par abonnement ou facturable à l'utilisation, la tâche inverse utilise par défaut la même méthode de facturation et les mêmes spécifications que la tâche d'origine.
Si la tâche d'origine est une tâche de synchronisation inter-régions, basculez vers la région source de la tâche directe pour afficher la tâche inverse dans la liste des tâches de synchronisation.
Une tâche inverse vous est facturée même lorsqu'elle est suspendue.
L'état Status d'une tâche DTS peut afficher Retrying si une exception empêche la connexion à la base de données métier. Il s'agit d'un comportement attendu.
Procédure
Scénario de reprise après sinistre de la base de données
-
Créez une tâche de synchronisation directe pour synchroniser les données de la base de données de production vers la base de données de reprise après sinistre, selon vos besoins métier.
Sélectionnez les spécifications nécessaires. Définissez le paramètre Retry Time for Failed Connections en fonction du temps de récupération estimé pour votre base de données. Pour plus d'informations sur la création d'une tâche de synchronisation directe, consultez Synchronisation unidirectionnelle entre des instances RDS MySQL, Synchronisation entre des instances RDS SQL Server, Synchroniser des données d'une instance ApsaraDB for MongoDB en replica set vers une autre instance en replica set ou en cluster fragmenté, et Synchroniser des données d'une instance ApsaraDB for MongoDB en cluster fragmenté vers une instance ApsaraDB for MongoDB en replica set ou en cluster fragmenté.
-
Attendez que l'état Status de la tâche de synchronisation directe passe à Running, puis créez une tâche inverse.
Dans la liste des Data Synchronization Tasks, localisez votre tâche de synchronisation directe.
Dans la colonne Actions de l'instance cible, choisissez .
-
Dans la boîte de dialogue Note, cliquez sur OK.
Attendez la fin de la pré-vérification de l'instance inverse ; l'état Status passe alors à Performing Initial Synchronization.
RemarqueSi l'option Auto Refresh est désactivée, cliquez manuellement sur l'icône
située au-dessus de la colonne Actions pour mettre à jour l'état Status de l'instance de synchronisation.Si la pré-vérification échoue, cliquez sur View Cause. Cliquez ensuite sur View Details pour l'élément de vérification ayant échoué, corrigez le problème comme indiqué, puis relancez la pré-vérification.
Une fois la tâche inverse créée, aucune autre opération n'est requise.
-
Si la connexion à la base de données de production est impossible en raison d'une exception, suivez les étapes ci-dessous pour restaurer votre service.
-
Suspendez la tâche DTS d'origine.
Sur la page Data Synchronization Tasks, recherchez la tâche DTS d'origine.
À droite de la tâche, choisissez .
Dans la boîte de dialogue Note, cliquez sur OK.
Dans la boîte de dialogue Task Paused, cliquez sur OK.
Basculez vos services vers la base de données de reprise après sinistre.
-
Démarrez l'instance inverse.
Sur la page Data Synchronization Tasks, recherchez l'instance inverse nouvellement créée.
Dans la colonne Actions de l'instance cible, choisissez .
Dans la boîte de dialogue Note, cliquez sur OK.
-
-
Une fois la base de données de production restaurée, suivez les étapes ci-dessous pour rebasculer vos services vers la base de données de production et reprendre les tâches de synchronisation.
Rebasculez vos services vers la base de données de production d'origine.
-
Attendez que la tâche inverse n'affiche plus de latence, puis suspendez-la.
La tâche inverse synchronise les données écrites dans la base de données de reprise après sinistre vers la base de données de production.
Une fois la tâche inverse suspendue, démarrez la tâche de synchronisation directe d'origine.
Scénario de basculement de service
-
Créez une tâche de synchronisation inverse.
Dans la liste des Data Synchronization Tasks, recherchez la tâche de synchronisation directe (la tâche DTS d'origine).
Dans la colonne Actions de l'instance cible, choisissez .
-
Dans la boîte de dialogue Note, cliquez sur OK.
Attendez la fin de la pré-vérification de l'instance inverse ; l'état Status passe alors à Performing Initial Synchronization.
RemarqueSi l'option Auto Refresh est désactivée, cliquez manuellement sur l'icône
située au-dessus de la colonne Actions pour mettre à jour l'état Status de l'instance de synchronisation.Si la pré-vérification échoue, cliquez sur View Cause. Cliquez ensuite sur View Details pour l'élément de vérification ayant échoué, corrigez le problème comme indiqué, puis relancez la pré-vérification.
Une fois la tâche de synchronisation inverse créée, aucune autre opération n'est requise.
-
Attendez que le module Incremental Data Collection soit en cours d'exécution avec une latence nulle.
Cliquez sur l'ID d'une tâche de synchronisation inverse. Sur la page Task Management, consultez l'état et la latence du module dans la section Progress.
-
Arrêtez l'écriture des données métier.
Pour éviter toute perte de données, suspendez temporairement vos services et assurez-vous qu'aucune nouvelle donnée n'est écrite dans la base de données.
-
Suspendez la tâche DTS d'origine.
Sur la page Data Synchronization Tasks, recherchez la tâche DTS d'origine.
À droite de la tâche, choisissez .
Dans la boîte de dialogue Note, cliquez sur OK.
Dans la boîte de dialogue Task Paused, cliquez sur OK.
Basculez vos services vers la base de données de destination de la tâche de synchronisation directe.
-
Démarrez l'instance inverse.
Sur la page Data Synchronization Tasks, recherchez l'instance inverse nouvellement créée.
Dans la colonne Actions de l'instance cible, choisissez .
Dans la boîte de dialogue Note, cliquez sur OK.
-
Terminez ou libérez la tâche de synchronisation directe.
Pour plus d'informations, consultez Terminer une tâche DTS et Libérer une tâche DTS.
FAQ
-
Comment sélectionner les spécifications lors de la création d'une tâche de synchronisation directe ?
Sélectionnez la plus petite spécification (micro). Après avoir créé la tâche inverse, augmentez les spécifications de la tâche en fonction de votre volume d'activité. Pour plus d'informations, consultez Mettre à niveau les spécifications de liaison d'une tâche.
-
Que faire si une tâche DTS se trouve dans l'état Échec après la restauration de la base de données de production ?
Démarrez la tâche DTS. Pour plus d'informations, consultez Démarrer une tâche DTS.
> Create Reverse Task