Heim Datenbank MySQL-Tutorial MySQL 5.5主从关于‘复制过滤’的深入探究

MySQL 5.5主从关于‘复制过滤’的深入探究

Jun 07, 2016 pm 02:54 PM
MySQL-Master-Slave-Replikation

关于MySQL主从复制的过滤,例如通过binlog-ignore-db、replicate-do-db、replicate-wild-do-table等。如果不好好研究过这些过滤选

关于MySQL主从复制的过滤,例如通过binlog-ignore-db、replicate-do-db、replicate-wild-do-table等。如果不好好研究过这些过滤选项就用的话,是有可能造成主从数据不一致问题的。本文将参考MySQL-5.5官方文档并结合实验,和各位一起探讨下这里的各个设置。

    以下内容参考5.5官方文档

binlog_format(STATEMENT,ROW,MIXED,5.5默认为STATEMENT)的设置会导致一些复制执行上的差异。

当使用MIXED格式时,binlog绝大多数情况也是以STATEMENT格式记录,只有在下列情况下才会切换到ROW格式:

1、 当时用UUID()函数时

2、 当一个或多个拥有AUTO_INCREMENT列的表被更新同时有‘trigger’或者‘stored function’被调用时

  # MIXED对于‘trigger’和‘stored function’总是使用statement-based

3、 执行INSERT DELAYED时

4、 当视图里的某一部分需要row-based复制(例如UUID())时,创建该视图的语句被改为row-based

5、 使用用户自定义函数(UDF)时

6、 当某语句被判定为row-based,并且执行它的session需要用到临时表,则session下的所有子语句都将以ROW格式记录

7、 当使用USER(),CURRENT_USER()或者 CURRENT_USER

8、 当语句引用了一个或多个system variables。

9、 当使用LOAD_FILE()

所有DDL语句都是基于statements,不论binlog_format如何设置

复制双方binlog_format需一致,否则复制无法进行

Binlog格式影响到以下‘复制过滤’配置的行为

--binlog-do-db
--binlog-ignore-db=ljk
该选项的行为取决于binlog格式
Statement-based logging:当use ljk后(即当前库为ljk时),所有的语句不被记录进binlog
当登陆mysql后不use/或者use ljk之外的库,执行update ljk.table 依然会记录近binlog并复制
Row-based format:告诉服务器不记录任何ljk库下表的更改,无论当前在哪个库(即无论有无use语句,是否use  ljk)

--replicate-do-db = ljk
该选项的行为取决于binlog格式
Statement-based replication:只有主库在use ljk 之后执行的语句才会被从库复制
无use语句或者use其他库后执行的语句均不被复制
Row-based replication:只有ljk库的更改会被复制(无论use哪个库或者是否use)
无论是否use或use哪个库,ljk库之外的变更都不会被复制
--replicate-ignore-db


总结:Statement-based跟当前use的库有关,Row-based更直接,只关心指定的库‘做或不做’。

还有以下两种参数可‘过滤复制’
以下两种选项只对表的更改有影响,库的复制不受这些参数影响(但是类似ljk.%这种,也会对库起作用)

--replicate-do-table

这两个选项在我的实验里跟描述不太一致,详细见下文实验结果

--replicate-ignore-table

--replicate-wild-do-table = ljk.%
无论use ljk或use 其他库或不use,对ljk库的更新都能被复制,同时,其他库任何情况下均不会复制(包括建库建表操作)
--replicate-wild-ignore-table

根据以上,综合建议:对复制的过滤,采用replicate-wild-do-table/ replicate-wild-ignore-table,比较严格和明确

下面是实验过程(MySQL-5.5.39)
一、 主库添加“binlog-ignore-db = mysql”,从库不加过滤

库操作:
    1. 主库不use,执行建库语句
    mysql> create database kai;
    从库复制
    2. 主库use  mysql,再执行
    mysql> create database kai;
    从库复制

在kai数据库执行建表操作:
    1. 不use
    create table kai.li (id int,name char(15));
    从库复制
    2. use mysql;
    create table kai.li (id int,name char(15));
    从库不复制
    3. use 其他库;
    create table kai.li (id int,name char(15));
    从库复制

对表内容修改:
    1. 主库不use,向li表增加数据
    insert into kai.li values('1','ljk');
    从库复制
    2. 主库 use mysql,向li表增加数据
    从库不复制
    3. 主库use 其他库,更新li库(即跨库更新)
    mysql> use picture;
    mysql> insert into kai.li values('2','lhy');
    从库复制

对mysql库进行更改:
    1. 不 use
    mysql> create table mysql.ljk (id int,name varchar(15));
    从库复制
    2. Use 其他库
    mysql> drop table mysql.ljk;
    从库复制

二、从库添加“replicate-ignore-db = mysql”,主库不加过滤

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Datensicherung und Wiederherstellung nach Fehlern: Diskussion über die Bedeutung der MySQL-Master-Slave-Replikation im Cluster-Modus Datensicherung und Wiederherstellung nach Fehlern: Diskussion über die Bedeutung der MySQL-Master-Slave-Replikation im Cluster-Modus Sep 08, 2023 am 09:03 AM

Datensicherung und Wiederherstellung nach Fehlern: Diskussion über die Bedeutung der MySQL-Master-Slave-Replikation im Cluster-Modus. Einführung: In den letzten Jahren sind Datenbanksicherung und Wiederherstellung nach Fehlern aufgrund des kontinuierlichen Wachstums des Datenumfangs und der Datenkomplexität besonders wichtig geworden. In verteilten Systemen wird die MySQL-Master-Slave-Replikation häufig im Cluster-Modus verwendet, um hohe Verfügbarkeit und Fehlertoleranz zu gewährleisten. In diesem Artikel wird die Bedeutung der MySQL-Master-Slave-Replikation im Cluster-Modus untersucht und einige Codebeispiele gegeben. 1. Grundprinzipien und Vorteile der MySQL-Master-Slave-Replikation Die MySQL-Master-Slave-Replikation ist allgemeingültig

Optimierung der Datenbankleistung: Der beste Weg, die MySQL-Master-Slave-Replikation in der Cluster-Technologie zu nutzen Optimierung der Datenbankleistung: Der beste Weg, die MySQL-Master-Slave-Replikation in der Cluster-Technologie zu nutzen Sep 10, 2023 am 08:24 AM

Optimierung der Datenbankleistung: Der beste Weg, die MySQL-Master-Slave-Replikation in der Cluster-Technologie zu nutzen Zusammenfassung: Mit der rasanten Entwicklung des Internets sind Probleme mit der Datenbankleistung in den Fokus verschiedener Unternehmen und Organisationen gerückt. Die MySQL-Master-Slave-Replikationstechnologie spielt eine wichtige Rolle bei der Lösung von Engpässen bei der Datenbankleistung. In diesem Artikel werden die Konzepte und Prinzipien der MySQL-Master-Slave-Replikation sowie die besten Einsatzmethoden der Cluster-Technologie vorgestellt, um den Lesern bei der Optimierung der Datenbankleistung zu helfen. 1. Einleitung Da die Datenmenge weiter zunimmt, treten Probleme mit der Datenbankleistung immer stärker in den Vordergrund. So optimieren Sie Zahlen

Hohe Parallelität problemlos meistern: Analyse der Leistungsvorteile der MySQL-Master-Slave-Replikation als Cluster-Technologie Hohe Parallelität problemlos meistern: Analyse der Leistungsvorteile der MySQL-Master-Slave-Replikation als Cluster-Technologie Sep 10, 2023 pm 03:48 PM

Hohe Parallelität problemlos bewältigen: Analyse der Leistungsvorteile der MySQL-Master-Slave-Replikation als Cluster-Technologie Mit der rasanten Entwicklung des Internets haben Benutzerbesuche auf Websites und Anwendungen einen explosiven Wachstumstrend gezeigt. In dieser Situation hoher Parallelität ist die Sicherstellung der Systemstabilität und -leistung zu einer wichtigen Aufgabe für jeden Entwickler und Systemadministrator geworden. In Datenbanken ist die MySQL-Master-Slave-Replikationstechnologie weit verbreitet und hat sich zu einer der effektivsten Lösungen für den Umgang mit hoher Parallelität entwickelt. In diesem Artikel werden die Leistungsvorteile der MySQL-Master-Slave-Replikation als Cluster-Technologie untersucht. Erste

Entschlüsselung der MySQL-Master-Slave-Replikation: Offenlegung des wichtigsten Implementierungsmechanismus im Cluster-Modus Entschlüsselung der MySQL-Master-Slave-Replikation: Offenlegung des wichtigsten Implementierungsmechanismus im Cluster-Modus Sep 10, 2023 am 09:28 AM

Entschlüsselung der MySQL-Master-Slave-Replikation: Offenlegung des wichtigsten Implementierungsmechanismus im Cluster-Modus Einführung: In modernen Datenbanksystemen sind hohe Verfügbarkeit und Flexibilität der Daten sehr wichtig. Als relationales Open-Source-Datenbankverwaltungssystem bietet MySQL ein breites Anwendungsspektrum zur Erfüllung der Benutzeranforderungen. Die Master-Slave-Replikation von MySQL ist ein sehr wichtiger Teil der MySQL-Datenbankarchitektur und wird verwendet, um Datensicherung und Hochverfügbarkeit zu erreichen. Dieser Artikel konzentriert sich auf die Offenlegung des wichtigsten Implementierungsmechanismus der MySQL-Master-Slave-Replikation, insbesondere im Cluster-Modus.

Ist die MySQL-Master-Slave-Replikation eine Cluster-Technologie oder eine Lastausgleichstechnologie? Analyse und Unterschied Ist die MySQL-Master-Slave-Replikation eine Cluster-Technologie oder eine Lastausgleichstechnologie? Analyse und Unterschied Sep 10, 2023 am 08:40 AM

Ist die MySQL-Master-Slave-Replikation eine Cluster-Technologie oder eine Lastausgleichstechnologie? Zusammenfassung der Analyse und Unterschiede: Die MySQL-Master-Slave-Replikation ist eine Datenbankreplikationstechnologie, die zum Synchronisieren von Datenbankdaten auf mehreren Servern verwendet wird. In diesem Artikel werden die Unterschiede zwischen MySQL-Master-Slave-Replikation, Cluster-Technologie und Lastausgleichstechnologie hinsichtlich technischer Prinzipien, Anwendungsszenarien und Funktionsmerkmale analysiert und unterschieden. Einleitung: In modernen Internetanwendungen sind eine hohe Verfügbarkeit und Skalierbarkeit von Datenbanken von entscheidender Bedeutung. Die MySQL-Master-Slave-Replikation ist jedoch eine der gängigsten Lösungen.

Ausführliche Erläuterung der Funktionen und Vorteile der MySQL-Master-Slave-Replikation in der Cluster-Technologie Ausführliche Erläuterung der Funktionen und Vorteile der MySQL-Master-Slave-Replikation in der Cluster-Technologie Sep 09, 2023 am 09:03 AM

Ausführliche Erläuterung der Funktionen und Vorteile der MySQL-Master-Slave-Replikation in der Cluster-Technologie. Einführung: MySQL ist ein leistungsstarkes relationales Datenbankverwaltungssystem, das in verschiedenen großen Websites und Anwendungen weit verbreitet ist. Mit zunehmender Datenmenge und Zugriffsanforderungen nimmt der Druck auf einen einzelnen MySQL-Server allmählich zu. Um die Leistung und Zuverlässigkeit der Datenbank zu verbessern, beginnen die Menschen mit der Einführung der Cluster-Technologie, zu der auch die MySQL-Master-Slave-Replikation gehört häufig verwendete Technologien. Das Prinzip der MySQL-Master-Slave-Replikation bezieht sich auf die MySQL-Master-Slave-Replikation

Aufdecken des Potenzials der Cluster-Technologie bei der MySQL-Master-Slave-Replikation: Vergleichende Bewertung von Open-Source-Lösungen und kommerziellen Lösungen Aufdecken des Potenzials der Cluster-Technologie bei der MySQL-Master-Slave-Replikation: Vergleichende Bewertung von Open-Source-Lösungen und kommerziellen Lösungen Sep 08, 2023 pm 07:16 PM

Nutzung des Cluster-Technologiepotenzials der MySQL-Master-Slave-Replikation: Vergleichende Bewertung von Open-Source-Lösungen und kommerziellen Lösungen Mit der kontinuierlichen Entwicklung des Internetgeschäfts und der zunehmenden Datenmenge ist die Nachfrage nach Datenbank-Cluster-Lösungen immer größer geworden. Die MySQL-Master-Slave-Replikationstechnologie erfüllt genau diese Anforderung. Sie kann die Lese- und Schreibvorgänge der Datenbank separat auf mehreren Knoten verarbeiten und so die Leseleistung und Verfügbarkeit der Datenbank verbessern. In diesem Artikel wird das Potenzial der Cluster-Technologie bei der MySQL-Master-Slave-Replikation untersucht und eine vergleichende Bewertung von Open-Source-Lösungen und kommerziellen Lösungen durchgeführt.

Verstehen Sie die Clusterfunktionen und Anwendungsszenarien ohne Lastausgleich der MySQL-Master-Slave-Replikation Verstehen Sie die Clusterfunktionen und Anwendungsszenarien ohne Lastausgleich der MySQL-Master-Slave-Replikation Sep 11, 2023 am 11:04 AM

Mit der rasanten Entwicklung des Internets nehmen die Datenmengen in Anwendungssystemen zu und auch die Anforderungen an die Leistung und Zuverlässigkeit der Datenbanken werden immer höher. Als eine der am häufigsten verwendeten relationalen Open-Source-Datenbanken verfügt MySQL über eine hohe Leistung und Stabilität und wird häufig in verschiedenen Anwendungen auf Unternehmensebene eingesetzt. Als häufig verwendete Datenreplikationslösung kann die MySQL-Master-Slave-Replikation die Datenzuverlässigkeit sowie die Lese- und Schreibleistung verbessern und wird häufig in großen Datenanwendungen eingesetzt. Die Clusterfunktion der MySQL-Master-Slave-Replikation bezieht sich auf die Synchronisierung der Daten der Master-Datenbank über den Replikationsmechanismus.

See all articles