trigger、procedure和event如何同步_MySQL
最近遇到一个需求涉及存储过程,被突然问题到如何同步问题问到了,赶紧补课学习一下。
首先,先看一下trigger、procedure和event的定义都是什么?
trigger: 触发器是一个被指定关联到一个表的数据对象,当对个表的特别事件出现时,它被激活。
procedure:是一组为了完成特定功能的SQL语句集。
event:定时任务,类似Linux的crontab。
其次,mysql的同步中可以设定不同的binlog_format,包括statment、row和mix。
statment:语句级,记录原始SQL语句。
row:行级,记录受到影响的行的真实修改情况。
mix:上面两种的混合,基础使用语句级,当会导致数据不一致的时候会采用行格式。
最后,分别在statement和row两种格式下,看看trigger、procedure和event是如何记录binlog的。
1、statement+trigger
binlog会把create trigger记录下来,并推给slave,然后记录正常的sql语句,不会记录trigger中的任何sql。
2、row+trigger
binlog会把create trigger记录下来,然后会将正常的sql和trigger的sql的所有执行结果记录下来,并推送给slave。
3、statement+procedure
binlog中会把create procedure记录下来,然后不会记录call语句,而是将procedu中的sql用语句级记录下来,推送给slave。
4、row+procedure
binlog会将create procedure记录下来,然后不会记录call procedure,而是会把所有执行的记过记录在binlog中,然后推送给slave。
5、statement+event
binlog会将create event记录下来,并会将event中的操作记录成语句级,推送给slave。
6、row+event
binlog会将create event记录下来,并将event中的所有操作按照行格式记录下来,推送给slave。
这期间的问题:
1、由于create都是语句级的,从库会自动更改binlog_format。
2、从库如果binlog_format是statement但是主库是row的话,同步会报错,需要将从库也改成row才会恢复。
以上这2点很容易造成同步中断,故不建议在mysql中使用以上3种设置,如果要用最好使用statement格式。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

L'article traite des stratégies pour gérer de grands ensembles de données dans MySQL, y compris le partitionnement, la rupture, l'indexation et l'optimisation des requêtes.

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]

L'article discute de la suppression des tables dans MySQL en utilisant l'instruction TABLE DROP, mettant l'accent sur les précautions et les risques. Il souligne que l'action est irréversible sans sauvegardes, détaillant les méthodes de récupération et les risques potentiels de l'environnement de production.

L'article discute de l'utilisation de clés étrangères pour représenter les relations dans les bases de données, en se concentrant sur les meilleures pratiques, l'intégrité des données et les pièges communs à éviter.

L'article discute de la création d'index sur les colonnes JSON dans diverses bases de données comme PostgreSQL, MySQL et MongoDB pour améliorer les performances de la requête. Il explique la syntaxe et les avantages de l'indexation des chemins JSON spécifiques et répertorie les systèmes de base de données pris en charge.

L'article discute de la sécurisation MySQL contre l'injection SQL et les attaques brutales à l'aide de déclarations préparées, de validation des entrées et de politiques de mot de passe solides (159 caractères)
