Tous les produits
Search
Centre de documentation

Data Management:Opération DML sans verrou

Dernière mise à jour :Oct 13, 2026

Si vous devez modifier un grand volume de données de table sans verrouiller celle-ci, utilisez la fonctionnalité Lockless Change dans Data Management (DMS). Cette fonctionnalité divise une instruction SQL unique en plusieurs lots d'exécution, ce qui permet de modifier les données sans verrouillage et réduit l'impact des opérations DML sur les performances et l'espace de la base de données. Cette rubrique explique comment effectuer des modifications de données sans verrou dans DMS.

Prérequis

  • Types de bases de données pris en charge :

    Moteur de base de données Instances prises en charge
    MySQL ApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL, PolarDB for Xscale, bases de données MySQL tierces
    PostgreSQL ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, MyBase for PostgreSQL, bases de données PostgreSQL tierces
    MariaDB ApsaraDB for MariaDB, bases de données MariaDB tierces
    OceanBase ApsaraDB for OceanBase en mode MySQL
    Compatible Oracle PolarDB for PostgreSQL (Compatible with Oracle)
  • L'instance doit être configurée en mode de contrôle Stable Change ou Security Collaboration. Pour plus d'informations, consultez Afficher le mode de contrôle d'une instance.

Limitations

Seules les instructions UPDATE, DELETE et INSERT...SELECT sont prises en charge.

UPDATE et DELETE

Contrainte Détails
Portée de la table Table unique uniquement
Clause WHERE Obligatoire. Pour mettre à jour ou supprimer toutes les lignes, utilisez WHERE 1=1
Sous-requêtes Non prises en charge
Clause LIMIT Non prise en charge : l'utilisation de LIMIT pour une pagination manuelle force une analyse complète de la table, ce qui provoque le verrouillage que cette fonctionnalité vise précisément à éviter

INSERT...SELECT

Contrainte Détails
Portée de SELECT Table unique uniquement
Clause WHERE Obligatoire dans la clause SELECT. Pour sélectionner toutes les lignes, utilisez WHERE 1=1
Clauses interdites Les clauses LIMIT, ORDER BY et GROUP BY ne sont pas prises en charge dans la clause SELECT

Instructions

  1. Lisez le contenu anglais pour comprendre CE qui doit être communiqué

  2. Rédigez le français À PARTIR DE ZÉRO — oubliez la structure de phrase anglaise

  3. Conservez exactement tout le formatage markdown, les blocs de code, les liens et les images

  4. Balises xref (<a data-tag="xref" ...>texte</a>) — conservez la balise ENTIERE avec tous ses attributs dans l'ordre et la casse d'origine, traduisez UNIQUEMENT le texte visible entre > et

  5. Appliquez strictement toutes les règles linguistiques spécifiques

  6. Appliquez les règles de stopwords avec une tolérance zéro

  7. Utilisez le mode impératif dans les étapes numérotées et les listes à puces procédurales

  8. Assurez la cohérence terminologique — même terme = même traduction partout

  9. Variez les amorces de phrase dans les listes/tableaux — aucune amorce répétée 3 fois ou plus

  10. Renvoyez UNIQUEMENT le document markdown français, sans explication

    Procédure

    1. Connectez-vous à DMS 5.0.

    2. Dans la barre de navigation supérieure, choisissez Database Development > Data Change > Lockless Change.

      Remarque

      Si vous utilisez la console DMS en mode simple, cliquez sur l'icône function dans le coin supérieur gauche. Dans le volet de navigation qui s'affiche, choisissez All Features > Database Development > Data Change > Lockless Change.

    3. Configurez les paramètres du Lockless Change ticket et cliquez sur Submit. Le tableau suivant décrit certains des paramètres.

      Remarque

      Cet exemple illustre la configuration d'une instance en mode Security Collaboration. Pour les instances en mode Flexible Management ou Stable Change, il vous suffit de configurer les paramètres Database et SQL statements for change.

      Parameter

      Required

      Description

      Database

      Yes

      Recherchez et sélectionnez la base de données cible.

      Remarque

      Vous devez disposer des autorisations nécessaires pour modifier les données de la base de données cible. Pour plus d'informations, consultez View your permissions.

      Business Background

      No

      Fournissez un contexte pour la modification afin de réduire la charge de communication.

      Execution Method

      Yes

      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.

      Remarque

      Les administrateurs peuvent modifier la liste des méthodes d'exécution dans la section Operations Management > Configuration Management. Pour plus d'informations, consultez Configuration management.

      Affected rows

      Yes

      Estimez le nombre de lignes affectées. Vous pouvez exécuter une requête COUNT dans la SQL Console pour obtenir ce chiffre.

      Remarque

      Si des données sont écrites en continu dans la table, comptez uniquement le nombre de lignes de données existantes.

      SQL Statements for Change

      Yes

      Saisissez les instructions DML, telles que UPDATE, DELETE ou INSERT_SELECT.

      Remarque

      Si vous saisissez des instructions DDL, vous effectuez une tâche de modification de schéma sans verrou DDL. Pour plus d'informations, consultez Perform a lock-free schema change by using a Lockless Change ticket.

      SQL Statements for Rollback

      No

      Un script inverse pour les instructions figurant dans SQL statements for change. Le script doit être exécutable.

      SQL Text

      No

      Ce paramètre n'apparaît que si vous sélectionnez Text pour le paramètre Rollback SQL. Saisissez les instructions SQL de restauration, qui sont l'inverse des instructions SQL de modification.

      Attachment

      No

      Ce paramètre n'apparaît que si vous sélectionnez Attachment pour le paramètre SQL Statements for Rollback. Cliquez sur File pour télécharger la pièce jointe SQL de restauration.

      Remarque

      La pièce jointe peut être un fichier .txt, .zip ou .sql. La taille maximale du fichier est de 15 Mo.

      Change Stakeholder

      No

      Les parties prenantes spécifiées peuvent consulter le ticket et collaborer dessus. Les non-parties prenantes (à l'exception des administrateurs et des DBA) ne peuvent pas le voir.

      Attachments

      No

      Téléchargez des pièces jointes pour fournir plus de contexte pour ce ticket.

    4. Une fois le ticket soumis, vous pouvez activer la vérification de la latence entre le nœud primaire et le nœud secondaire, définir un seuil et modifier les instructions SQL.

      • (Facultatif) Activez la vérification de la latence entre le nœud primaire et le nœud secondaire et définissez un seuil. Cela permet d'éviter qu'une latence excessive n'affecte les basculements d'instance.

        Dans la section Basic Information, cliquez sur chunk option et définissez un seuil de latence raisonnable entre le nœud primaire et le nœud secondaire, exprimé en secondes. Si la latence dépasse ce seuil, l'exécution SQL est interrompue.

        Remarque

        Cette fonctionnalité est actuellement disponible uniquement pour les bases de données ApsaraDB RDS for MySQL.

      • (Facultatif) Modifiez les instructions SQL.

        Après avoir soumis la demande, le système effectue automatiquement une pré-vérification des instructions SQL. Si la pré-vérification échoue, vous pouvez cliquer sur Edit SQL, modifier les instructions en fonction de la raison de l'échec, puis réessayer.

    5. Cliquez sur Submit. Les tickets pour les instances en mode Security Collaboration nécessitent une approbation basée sur les règles configurées, tandis que les tickets pour les instances en mode Stable Change sont approuvés automatiquement.

    6. Une fois le ticket approuvé, cliquez sur Execute Change dans la section Execute de la page de détails du ticket.

      Remarque

      Vous pouvez consulter la progression de l'approbation dans la section Approval de la page de détails du ticket.

    7. Configurez les paramètres d'exécution de la tâche.

      Configuration Item

      Description

      Execution Strategy

      • Running immediately : option par défaut. La tâche est exécutée immédiatement après avoir cliqué sur Confirm Execution.

      • Schedule : sélectionnez une heure de début pour la tâche. Après avoir cliqué sur Confirm Execution, la tâche s'exécute à l'heure spécifiée.

      Remarque

      L'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 commerciales.

      Remarque

      L'heure de fin réelle de la tâche peut présenter une marge d'erreur de ±1 minute.

      Primary/Secondary Node Check

      L'activation de cette vérification garantit la synchronisation des données en temps réel entre les instances primaires et secondaires, une haute disponibilité et une récupération rapide en cas de panne.

      Canary Release Type

      La politique d'exécution des instructions SQL par lots.

      • No Canary Release : DMS exécute automatiquement toutes les instructions SQL de la tâche.

      • Suspend after Executing the First SQL Statement : après l'exécution réussie de la première instruction SQL, DMS met automatiquement la tâche en pause. Pour continuer, cliquez sur Retry. Les instructions SQL restantes sont ensuite exécutées en une seule fois sans autres pauses.

      • Suspend after Executing a SQL Statement : la tâche se met en pause automatiquement après chaque exécution d'instruction SQL. Vous devez cliquer manuellement sur Retry pour exécuter l'instruction SQL suivante.

    8. Cliquez sur Confirm Execution.

      Remarque

      Lorsqu'une tâche en pause est redémarrée, elle reprend depuis le début.

      Dans la section Execute, vous pouvez afficher l'état d'exécution de la tâche, les paramètres de la tâche, les détails et les Scheduling Logs.

    Documents connexes

    FAQ

    • Q : La fonctionnalité de modification des données sans verrou prend-elle en charge les opérations SQL complexes ?

      R : Non. Par exemple, elle ne prend pas en charge l'instruction CREATE_INDEX ni les opérations sur plusieurs tables, telles qu'une instruction DELETE incluant une clause JOIN. Pour plus d'informations sur les types SQL pris en charge, consultez la rubrique Limites.

    • Q : DMS Lockless Change détecte-t-il les verrous de table et les blocages ?

      R : Lorsque DMS effectue une modification des données sans verrou, il divise les instructions SQL volumineuses en petits lots et marque une pause après chaque lot. Cela permet d'éviter l'occupation prolongée des ressources. Pendant l'exécution, DMS n'effectue pas de détection préalable des verrous de ligne. MySQL verrouille toujours les lignes modifiées. L'impact global est minime grâce à la taille réduite des lots et aux pauses, mais cela ne garantit pas que la table ne sera pas verrouillée. Pour une modification de schéma sans verrou, DMS utilise une table temporaire pour simuler votre instruction DDL. Cette étape permet de vérifier au préalable si l'opération entraînera un verrouillage ou un blocage de la table. Si la vérification indique que l'opération verrouillera la table, celle-ci échoue et un message s'affiche.

    • Q : Est-il possible d'ajuster la vérification par relecture incrémentielle pour une tâche DMS Lockless Change ?

      R : Oui. Tout d'abord, accédez à la page O&M > Configuration Management, recherchez et activez la fonctionnalité « Allow adjustment of the playback data verification ratio for lockless change results ».

      1. Accédez au ticket DDL correspondant dans la console.

      2. Dans la section d'exécution, cliquez sur Details.

      3. Recherchez le script correspondant et cliquez sur Execution Progress.

      4. Le taux de vérification s'affiche en bas de page. Ajustez ce taux selon vos besoins. L'unité est le pour mille (‰).