La fonctionnalité de modification standard des données dans Data Management Service (DMS) vous permet d'exécuter des instructions SQL pour modifier les données d'une base de données. Vous pouvez exécuter des instructions telles que INSERT, UPDATE, DELETE et TRUNCATE immédiatement ou selon une planification. Cette rubrique décrit comment soumettre un ticket de modification standard des données.
Aperçu de l'opération
-
Configurer et soumettre un ticket de modification standard des données
Sélectionnez la base de données ou l'instance que vous souhaitez modifier. Saisissez les instructions SQL pour la modification ou téléchargez une pièce jointe SQL.
-
Pré-vérification
Lors de la phase de pré-vérification, DMS vérifie les instructions SQL que vous avez soumises. Le service contrôle si le type SQL est valide pour une modification standard des données et si vous disposez des autorisations requises.
-
Approuver le ticket
Pendant la phase d'approbation, DMS vérifie si les instructions SQL auront un impact sur les performances de la base de données. Le service vérifie également si l'utilisateur qui a soumis le ticket est autorisé à exécuter les instructions SQL.
-
Exécuter la modification des données
Les instructions SQL soumises pour la modification sont exécutées. Si la modification est incorrecte ou si vous devez annuler les instructions SQL pour des raisons professionnelles, DMS vous permet de créer un ticket d'annulation. Cela vous aide à restaurer rapidement les données d'origine une fois la modification terminée.
Sélection de la stratégie
Lorsque vous effectuez une modification des données, vous pouvez choisir une méthode de modification en fonction de votre scénario professionnel :
Vérifier l'effet avec une modification sans verrou en premier : Une modification sans verrou convient aux opérations SQL simples sur une seule table. Soumettez un ticket de modification sans verrou pour exécuter la défragmentation et vérifier le résultat.
Passer à une modification standard des données si le résultat n'est pas conforme aux attentes : Si la modification sans verrou ne produit pas le résultat attendu, soumettez un ticket de modification standard des données pour effectuer la modification à la place.
Une modification des données sans verrou prend uniquement en charge les opérations SQL simples sur une seule table. Pour des modifications plus complexes, utilisez directement une modification standard des données.
Prérequis
Le mode de contrôle de l'instance doit être Stable Change ou Security Collaboration. Pour plus d'informations, consultez Modes de contrôle.
Remarques
Vous pouvez fermer un ticket quel que soit son statut d'approbation. Cela évite l'exécution accidentelle d'une tâche après l'approbation du ticket.
-
Vous pouvez gérer les modifications des données dans l'environnement de staging à l'aide de tickets. Les tickets offrent des garanties telles que des sauvegardes de données et des vérifications du nombre de lignes. Si une opération ne produit pas le résultat attendu, vous pouvez restaurer rapidement les données.
RemarqueSi vous craignez que l'approbation des tickets n'affecte l'efficacité du développement, vous pouvez configurer des paramètres dispensés d'approbation. Pour plus d'informations, consultez Modification SQL.
-
Si vous avez configuré bases de données logiques, tables logiques et algorithmes de routage, vous pouvez soumettre un seul ticket pour les modifications de sharding. Il n'est pas nécessaire de soumettre des tickets distincts pour chaque base de données et table physique.
Si vous utilisez un algorithme de routage et que la condition de mise à jour inclut un champ de routage, l'instruction est automatiquement routée vers la base de données et la table physiques correctes pour l'exécution.
L'instruction SQL s'exécute sur chaque shard un par un dans les scénarios suivants, ce qui peut augmenter le temps d'exécution : aucun algorithme de routage n'est configuré, la condition de modification n'inclut pas de champ de routage, ou le type ou la définition de structure du champ de routage est incorrect.
DMS génère automatiquement une pièce jointe de script de sauvegarde uniquement avant d'exécuter les instructions
UPDATEouDELETE.
Procédure
Étape 1 : Configurer et soumettre le ticket
Connectez-vous à DMS 5.0.
-
Placez le pointeur sur l'icône

dans le coin supérieur gauche de la console DMS, puis sélectionnez .RemarqueSi vous utilisez la console DMS en mode normal, sélectionnez dans la barre de navigation supérieure.
-
Sur la page Demande de ticket de modification des données, configurez les paramètres du ticket. Le tableau suivant décrit certains des paramètres.
RemarqueL'exemple suivant montre comment configurer les paramètres pour une instance en mode Security Collaboration. Les paramètres peuvent varier si vous sélectionnez une instance en mode Stable Change.
La fonctionnalité de modification des instances source de données est en cours de déploiement progressif.
Élément de configuration
Obligatoire
Description
Change Target
Oui
Vous pouvez sélectionner Database ou Data Source Instance.
RemarqueActuellement, vous ne pouvez sélectionner que des instances MySQL des types suivants pour les modifications d'instance source de données : RDS MySQL, PolarDB for MySQL et AnalyticDB for MySQL.
Database ou Data Source Instance
Oui
Recherchez et sélectionnez une base de données ou une instance pour laquelle vous disposez des autorisations de modification.
RemarqueActuellement, vous ne pouvez sélectionner qu'une seule instance pour une modification d'instance source de données.
Reason Category
Oui
Sélectionnez une raison pour la modification des données afin de faciliter sa recherche ultérieure.
RemarqueLes administrateurs peuvent configurer la liste des catégories de raisons dans la section . Pour plus d'informations, consultez Gestion de la configuration.
Business Background
Oui
Fournissez une description détaillée de la raison ou de l'objectif de la modification afin de réduire la charge de communication.
Execution Method
Oui
Sélectionnez une méthode d'exécution pour le ticket :
-
Après approbation, le demandeur exécute l'opération.
-
Exécution automatique après approbation.
-
Exécution par le dernier approbateur.
RemarqueLes administrateurs peuvent modifier la liste des méthodes d'exécution dans la section . Pour plus d'informations, consultez Gestion de la configuration.
Affected Rows
Oui
Estimez le nombre de lignes de données que cette modification affectera.
Change SQL
Oui
Vous pouvez sélectionner Text ou Attachment.
SQL Text
Oui
Cet élément de configuration apparaît uniquement si vous définissez Change SQL sur Text. Dans la zone de texte SQL, saisissez les instructions SQL pouvant être exécutées directement.
Remarque-
Séparez plusieurs instructions SQL par un point-virgule (;).
-
Si la cible de modification est une instance, vous devez ajouter le nom de la base de données avant chaque nom de table dans les instructions SQL. Utilisez le format
${dbName}.${tableName}. -
Lorsque vous soumettez le ticket, le système vérifie automatiquement la syntaxe SQL. Si la syntaxe est incorrecte, vous ne pouvez pas soumettre le ticket.
Attachment
Oui
Cet élément de configuration apparaît uniquement si vous définissez Change SQL sur Attachment. Téléchargez la pièce jointe SQL pour la modification.
RemarqueLa pièce jointe peut être un fichier .txt, .zip ou .sql. La taille maximale du fichier est de 15 Mo.
Rollback SQL
Non
Vous pouvez sélectionner Text ou Attachment.
RemarqueDMS remplit automatiquement les informations SQL d'annulation lors de la création d'un ticket d'annulation uniquement si vous saisissez le SQL d'annulation ou téléchargez un fichier d'annulation. Sinon, vous devez saisir les informations vous-même.
SQL Text
Non
Cet élément de configuration apparaît uniquement si vous définissez Rollback SQL sur Text. Saisissez les instructions SQL d'annulation. Le SQL d'annulation est le script inverse du SQL de modification.
Attachment
Non
Cet élément de configuration apparaît uniquement si vous définissez Rollback SQL sur Attachment. Cliquez sur Upload File pour télécharger la pièce jointe SQL d'annulation.
RemarqueLa pièce jointe peut être un fichier .txt, .zip ou .sql. La taille maximale du fichier est de 15 Mo.
Stakeholders
Non
Les parties prenantes spécifiées peuvent consulter le ticket et collaborer dessus. Les utilisateurs qui ne sont pas des parties prenantes ne peuvent pas consulter le ticket, à l'exception des administrateurs et des DBA.
Ticket Attachment
Non
Téléchargez une pièce jointe pour fournir des informations supplémentaires pour le ticket actuel.
Cliquez sur Submit Request.
Étape 2 : Pré-vérifier le SQL
Après avoir soumis le ticket, le système effectue automatiquement une pré-vérification. Si la pré-vérification échoue, modifiez les instructions SQL en fonction de l'invite et réessayez.
Une fois la pré-vérification réussie, le statut de chaque élément de vérification (SQL Splitting, Type Check, Permission Check, SQL Review et Check Scanned Rows) est Passed. Les Affected Rows sont également affichées. Le nombre réel de lignes affectées dépend du comportement d'exécution SQL.
Étape 3 : Approuver le ticket
Une fois la pré-vérification réussie, cliquez sur Submit for Approval. Dans la boîte de dialogue Notice, cliquez sur OK.
L'approbateur dans le modèle d'approbation par défaut pour les modifications de données est un DBA. Pour modifier le modèle d'approbation par défaut, consultez Modifier le modèle d'approbation par défaut.
La boîte de dialogue Notice affiche les informations de validation, telles que le nombre de bases de données physiques, le nombre d'instructions SQL et le nombre estimé de lignes affectées. Si le nombre de lignes affectées vérifié par le système diffère du nombre que vous avez saisi, un message d'avertissement rouge s'affiche. Confirmez les informations avant de soumettre le ticket.
Étape 4 : Exécuter la modification
Exécutez les modifications pendant les heures creuses si possible.
-
Une fois le ticket approuvé, cliquez sur Execute Change. Dans la boîte de dialogue Task Settings, définissez les paramètres d'exécution de la tâche, puis cliquez sur Execute.
RemarqueLors de la création du ticket, si vous définissez Execution Method sur Execute automatically after approval, le système ignore cette étape.
Si vous redémarrez une tâche en pause, le script reprend l'exécution là où il s'était arrêté.
Élément de configuration
Description
Execution Policy
Sélectionnez une politique d'exécution :
-
Execute Immediately : La tâche démarre immédiatement après que vous avez cliqué sur Execute.
-
Scheduled Execution : Spécifiez une heure de début pour la tâche. Par exemple, exécutez la tâche à 00:00:00 le 22 mai 2024.
RemarqueL'heure d'exécution réelle d'une tâche planifiée peut présenter une marge d'erreur de ±1 minute.
Specify End Time
Spécifiez une heure de fin pour la tâche. Si la tâche n'est pas terminée à l'heure de fin spécifiée, le système arrête l'exécution des tâches SQL restantes. Cela empêche les tâches de s'exécuter pendant les heures de pointe et d'affecter les opérations métier.
RemarqueL'heure de fin réelle de la tâche peut présenter une marge d'erreur de ±1 minute.
Enable Global Transaction
Sélectionnez si vous souhaitez activer les transactions globales. Cette fonctionnalité est désactivée par défaut.
-
Activer : Si l'exécution échoue, toutes les modifications sont annulées. Cela s'applique uniquement aux instructions DML, pas aux instructions DDL.
-
Désactiver : Les tâches SQL sont soumises une par une. Si une tâche échoue, l'exécution s'arrête, mais aucune modification n'est annulée.
Enable Backup
Sélectionnez si vous souhaitez activer les sauvegardes. Cette fonctionnalité est activée par défaut. Si vous activez cette fonctionnalité, vous pouvez utiliser le fichier de sauvegarde pour restaurer rapidement les données ultérieurement.
Remarque-
La sauvegarde des données est prise en charge uniquement lorsque vous exécutez des instructions UPDATE et DELETE.
-
La sauvegarde des données n'est pas prise en charge pour MongoDB et Redis.
-
Un maximum de 500 000 lignes de données peut être sauvegardé. Tout excédent est automatiquement tronqué.
-
La sauvegarde des données n'est pas prise en charge pour les tables associées.
-
Activer : Avant d'exécuter les instructions
UPDATEouDELETE, le système génère automatiquement une pièce jointe de script de sauvegarde.-
Si la base de données est MySQL ou MariaDB, une instruction de sauvegarde
REPLACE INTOest générée.RemarqueMySQL inclut : RDS MySQL, PolarDB for MySQL, PolarDB-X et autres sources MySQL.
-
Si la base de données est un moteur autre que MySQL ou MariaDB, une instruction de sauvegarde
INSERTest générée.
-
-
Désactiver : Aucune pièce jointe de sauvegarde n'est générée.
Enable Primary/Standby Check
Après avoir activé la vérification primaire/secondaire pour la base de données, vous pouvez garantir la synchronisation des données en temps réel entre les instances primaires et secondaires. Cela améliore la haute disponibilité de la base de données et la reprise rapide après sinistre.
Grayscale Type
La politique d'exécution des instructions SQL par lots.
-
No Grayscale : DMS exécute automatiquement toutes les instructions SQL de la tâche.
-
Pause after the first SQL statement succeeds : Après l'exécution réussie de la première instruction SQL, DMS met automatiquement l'exécution en pause. Pour continuer, cliquez sur Retry. Les instructions SQL restantes seront exécutées en une seule fois sans autres pauses.
-
Pause after each SQL statement succeeds : L'exécution est mise en pause après chaque instruction SQL. Vous devez cliquer manuellement sur Retry pour exécuter l'instruction SQL suivante.
RemarqueL'exécution des tâches SQL est surveillée par le module Security Rules, spécifiquement la section SQL Execution Control. Cela inclut des mécanismes tels que le délai d'expiration du verrou de la base de données avant l'exécution SQL, les vérifications de charge de la base de données et les politiques de veille après l'exécution SQL. Pour modifier les paramètres de point de détection par défaut, consultez Configurer le contrôle d'exécution SQL.
Une fois le ticket exécuté avec succès, dans la colonne Actions, cliquez sur Details pour afficher les détails tels que le statut d'exécution, le nombre d'exécutions, le nombre de lignes affectées, le script d'exécution et les journaux.
Une fois le ticket exécuté avec succès, vous pouvez accéder à la fenêtre SQL de la base de données cible pour vérifier si la modification des données répond à vos attentes.
-
Facultatif : Créez un ticket d'annulation pour restaurer rapidement les données d'origine.
Si la modification des données ne répond pas à vos attentes, vous pouvez créer un ticket d'annulation ou soumettre manuellement un ticket de modification standard des données pour restaurer rapidement les données d'origine. Les étapes suivantes montrent comment créer un ticket d'annulation :
Dans la zone Execution du ticket, cliquez sur Generate Rollback Ticket à droite de la tâche cible.
-
Sélectionnez une Source d'annulation et cliquez sur OK. Les trois sources d'annulation suivantes sont prises en charge :
Texte d'annulation : Le texte d'annulation que vous avez saisi lors de la configuration du ticket.
Pièce jointe d'annulation : La pièce jointe d'annulation que vous avez téléchargée lors de la configuration du ticket.
-
Fichier de sauvegarde : La pièce jointe de sauvegarde générée lors de l'exécution du ticket.
RemarquePour restaurer les données d'origine à l'aide d'un fichier de sauvegarde, vous devez activer les sauvegardes avant d'exécuter la modification.
-
(Facultatif) : Vous pouvez modifier le texte d'annulation, la pièce jointe ou le fichier de sauvegarde selon vos besoins.
Texte d'annulation : Vous pouvez le modifier directement dans la zone de texte SQL.
Pièce jointe d'annulation ou fichier de sauvegarde : Vous pouvez télécharger la pièce jointe sur votre ordinateur local, la modifier, puis la télécharger à nouveau sur le ticket d'annulation.
Une fois que vous avez confirmé que les informations d'annulation sont correctes, cliquez sur Submit Request. Le processus de ticket ultérieur est identique à celui d'un ticket de modification standard des données.
-
Téléchargez le fichier de sauvegarde.
Vous pouvez télécharger le fichier de sauvegarde pour l'enregistrer ou le modifier avant de le télécharger sur DMS.
-
Dans la colonne Actions, cliquez sur Télécharger la sauvegarde. Le fichier de sauvegarde contient les parties principales suivantes :
L'instruction SQL d'origine pour la modification.
L'instruction SQL de requête pour la modification des données.
Le SQL de sauvegarde de la modification des données.
Par exemple :
/* [Database]: rds@rm-bp144d5ky4l4rli0417****.mysql.rds.aliyuncs.com:3306[rds mysql] */ /* [SQL]: UPDATE t_order SET product_id = 88 WHERE id = 10054 [BACKUP SQL]: SELECT * FROM t_order WHERE id = 10054 */ REPLACE INTO `t_order`(`id`,`product_id`,`gmt_create`,`gmt_modified`,`customer_id`,`price`,`status`,`province`) VALUES (10054,81,'2021-12-14 09:44:44','2021-12-14 09:44:44',71,63.45,'Success','Hangzhou'); -
Extrayez l'instruction de sauvegarde du fichier de sauvegarde. Après avoir confirmé que l'instruction de sauvegarde est correcte, soumettez un nouveau ticket de modification standard des données pour restaurer les données selon vos besoins.
RemarqueSi une instruction
UPDATEa été exécutée par erreur et que l'instruction de sauvegarde est une instructionINSERT, vous devez déterminer vous-même la méthode de récupération.
-
-
(Facultatif) Vérifiez que la modification répond aux attentes.
Sur la page des détails du ticket, dans la zone Basic Information, placez le pointeur de la souris sur le nom de la base de données et cliquez sur Query.
Vous êtes redirigé vers la SQL Console. Interrogez les données de la table pour vérifier si elles répondent à vos attentes.
FAQ
-
Q : Lorsque je soumets une modification de données dans DMS, la soumission échoue avec le message d'erreur suivant : « The topology of the published database XXX is inconsistent with the topology of the change baseline database. Please correct the topology and try again. »
R : Pour une modification de base de données logique, la structure de sharding de la base de données de référence et de la base de données de production doit être cohérente. Par exemple, si la base de données de référence comporte 8 shards et 256 tables, la base de données de production doit également comporter 8 shards et 256 tables. Cette cohérence est requise car le script pour les modifications en ligne est généré en comparant la base de données de production avec la base de données de référence.
-
Q : Lorsque je crée un ticket de modification de données dans DMS, je ne trouve pas la base de données.
R : La liste déroulante des bases de données peut ne pas afficher toutes les bases de données disponibles. Elle affiche généralement uniquement les bases de données que vous avez utilisées récemment. Si une base de données ne figure pas dans la liste déroulante, vous devez la rechercher. Pour Redis, effectuez la recherche par nom de base de données. Les bases de données RDS PostgreSQL fonctionnent différemment : vous devez effectuer la recherche par nom de schéma. Par exemple, la recherche de
publicrenvoie des bases de données au formatpublic:postgres. Vous pouvez également copier la chaîne de connexion depuis la fenêtre SQL Console et l'utiliser pour la recherche. -
Q : Lorsque je sélectionne plusieurs bases de données et que je soumets un ticket de modification de données, dans quels cas les modifications sont-elles combinées en un seul ticket et dans quels cas sont-elles divisées en plusieurs tickets ?
R : Que les tickets soient combinés ou divisés est déterminé par les règles de sécurité et les propriétaires des bases de données sélectionnées :
Si les bases de données utilisent la même règle de sécurité et ont le même propriétaire, elles sont combinées en un seul ticket contenant plusieurs tâches.
Si les bases de données utilisent des règles de sécurité différentes ou ont des propriétaires différents, elles sont divisées en plusieurs sous-tickets.