Avant d'utiliser la fonctionnalité de modification de schéma sans verrouillage de Data Management (DMS), vous devez l'activer pour l'instance cible.
Prérequis
Types de base de données pris en charge : ApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL et les bases MySQL provenant d'autres sources.
Le mode de contrôle de l'instance est défini sur Stable Change ou Security Collaboration. Pour plus d'informations, consultez la rubrique Afficher les modes de contrôle.
Vous disposez du rôle DBA ou administrateur. Pour vérifier votre rôle, reportez-vous à la section Afficher mes rôles système.
Activer la modification de schéma sans verrouillage
Connectez-vous à DMS 5.0.
-
Sur la page d'accueil de la console, dans la liste Database Instances, faites un clic droit sur l'instance cible et sélectionnez Lock-free Schema Change.
RemarqueVous pouvez également accéder au menu supérieur et choisir . Dans l'onglet Instance List, cliquez sur à droite de l'instance concernée, puis activez la modification de schéma sans verrouillage dans la section Advanced Information.
Le tableau ci-dessous décrit les options disponibles.
Option
Description
Remarques
Enable (DMS OnlineDDL First)
DMS utilise son moteur propriétaire de modification DDL sans verrouillage pour garantir que la table n'est pas verrouillée.
RemarqueDans les cas suivants, DMS OnlineDDL ne peut pas être utilisé et le système revient automatiquement à MySQL native OnlineDDL. La tâche échoue si DMS détecte que l'exécution native verrouillera la table ou générera une erreur.
La table cible est vide. L'exécution native est privilégiée car elle est plus rapide et présente un risque faible lors de l'application d'une opération DDL sur une table vide.
DMS OnlineDDL ne prend pas en charge l'ajout d'une contrainte unique (UK).
L'exécution est plus lente que celle de MySQL native OnlineDDL, mais elle n'affecte pas le comportement de la réplication et réduit les risques de décalage de réplication.
Enable (MySQL Native OnlineDDL First)
DMS tente d'abord d'utiliser MySQL native OnlineDDL. Si le système détecte que l'exécution native verrouillera les tables ou échouera, il bascule automatiquement vers DMS OnlineDDL pour éviter tout verrouillage de table.
L'exécution est relativement rapide, mais elle peut entraîner le retour de la réplication parallèle de l'instance vers une réplication sérielle, ce qui peut provoquer un décalage de réplication.
Close
DMS envoie directement l'instruction native à MySQL pour exécution, sans aucun traitement intermédiaire.
S.O.
-
Dans la boîte de dialogue Modify Lock-free Schema Change, cliquez sur OK.
Une fois la modification de schéma sans verrouillage activée pour l'instance, vous pouvez soumettre un ticket de modification de schéma sans verrouillage.
Désactiver la modification de schéma sans verrouillage
Pour désactiver la modification de schéma sans verrouillage, utilisez le même point d'entrée que pour l'activation :
-
Sur la page d'accueil de la console, dans la liste Database Instances, faites un clic droit sur l'instance cible et sélectionnez Lock-free Schema Change > Close.
RemarqueVous pouvez également choisir Data Assets > Instances dans la barre de menu supérieure. Dans l'onglet Instances, cliquez sur dans la colonne Actions correspondant à l'instance cible, puis désactivez la modification de schéma sans verrouillage dans la section Advanced Information.
Dans la boîte de dialogue Modify Lock-free Schema Change, sélectionnez Close, puis cliquez sur OK.
Après avoir désactivé la modification de schéma sans verrouillage, DMS transmet directement les instructions DDL natives à MySQL pour exécution, sans traitement supplémentaire. Le verrouillage des tables lors des modifications de schéma dépend de la prise en charge de la fonctionnalité Online DDL par le moteur de base de données :
Si la base de données prend en charge Online DDL, l'opération DDL ne détient qu'un bref verrou de métadonnées et ne verrouille pas la table pendant une période prolongée.
Si la base de données ne prend pas en charge Online DDL, la table reste verrouillée durant toute l'opération DDL.
La désactivation ou la réactivation de la modification de schéma sans verrouillage ne nécessite aucun redémarrage de l'instance et n'affecte ni son statut ni ses données. Ce paramètre s'applique uniquement aux tickets de modification de schéma soumis via DMS et n'influence pas les instructions DDL exécutées directement par d'autres clients.
Opérations connexes
Lorsque la modification de schéma sans verrouillage est activée pour une instance, DMS privilégie cette méthode pour les types de tickets suivants sur cette instance :
-
Modification normale des données
RemarqueLes modifications de schéma soumises dans un ticket de modification normale des données utilisent généralement la méthode de modification de schéma sans verrouillage. Toutefois, si le ticket cible une instance entière plutôt qu'une base de données spécifique, la modification de schéma sans verrouillage n'est actuellement pas prise en charge. Dans ce cas, la tâche revient à la méthode d'exécution native, même si la fonctionnalité est activée pour l'instance.
FAQ
La désactivation et la réactivation de la modification de schéma sans verrouillage de DMS ont-elles un impact ?
Non. La désactivation et la réactivation de l'option de modification de schéma sans verrouillage n'affectent ni le statut de l'instance ni ses données, ne nécessitent aucun redémarrage de l'instance et ne présentent aucun risque pour les données. Pendant la période où la modification de schéma sans verrouillage est désactivée, DMS utilise DDL natif pour exécuter les modifications de schéma. Après la réactivation de la fonctionnalité, DMS reprend l'utilisation de son moteur de modification de schéma sans verrouillage pour les tickets soumis via la plateforme.