В простых терминах MySQL ведущий-ведомый репликации

резюме

Репликация MySQL ( MySQL подчиненной репликации Что) есть?

Почему повторить то, что принцип подчиненного и его реализация?

Понятия репликации мастер-ведомый MySQL

Относится к мастеру репликации данных MySQL могут быть скопированы из главного узла к серверу базы данных MySQL из одного или нескольких узлов. MySQL по умолчанию асинхронной репликации, так что узел не будет иметь доступа к основному серверу от обновления обновления своих данных, данные может быть выполнен на удаленное соединении, вы можете скопировать все мастер-базы данных или конкретную базу данных из узла или таблицы конкретных ,

Основная цель MySQL ведущий-ведомый репликации

л отдельный читать и писать

В опытно-конструкторских работах, иногда встречается SQL-потребность Заявления для таблиц блокировки, результат временной службы не может быть использован для чтения, это повлияет на существующий бизнес, использование мастер-ведомый репликации, так что основная библиотека отвечает за письма, чтение из библиотеки отвечает, так даже если главная библиотека сцена появилась таблица блокировки путем чтения из библиотеки может гарантировать нормальную работу бизнеса.

Данные л резервного копирования в режиме реального времени, когда узел выходит из строя система может быть легко отказоустойчивого

л ХА ХА

л Схема расширения

С увеличением в системе бизнес-трафика, если развернуть автономную базу данных, это приведет к I / O частота доступа слишком высока. С ведущий-ведомый репликации, увеличение числа узлов хранения данных, распределение нагрузки из множества узлов, уменьшение одной частоты доступа к диску ввода / вывода, одна машина, чтобы улучшить производительность ввода / вывода.

MySQL форма ведущий-ведомый

Мастер-подчиненный

Из мульти-мастера, чтобы улучшить производительность системы , чтобы прочитать
IMG
мастер от ведущего и множество наиболее распространенных ведущий-ведомый архитектуры прост в реализации и эффективной, а не ГК , могут быть реализованы только, но и отдельно для чтения и записи, тем самым повышая параллельные кластеры емкость.

Мульти-мастер (от 5,7 до поддержки начала) из

IMG
Вы можете быть мульти-мастером из резервной копии базы данных множества тузды к относительно хорошей производительности сервера хранения.

Двойной мастер репликации

Двойной-мастер репликации, то есть репликации взаимные кадры из каждого из обоих мастер-мастера, и подчиненный другого сервера. Такие изменения, сделанные одной из сторон, будут применяться к другой стороне путем копирования базы данных.

Каскадные репликации
IMG
режим копирования каскада, ведомая часть главного узла не подключена к синхронизации данных, но соединена с узла. Если есть слишком много , потому что главный узел от узла, то потеря будет часть производительности для репликации, то мы можем сделать три до пяти соединительного узла из главного узла, остальные узлы , подключенные к двум или три из узла, так что не только вы можете ослабить давление главного узла, а не отрицательное влияние на согласованность данных.

Принцип репликации ведущий-ведомый MySQL

Относится к мастер-копии из MySQL три потоков, выполняемых в главном узле (журнал дамп резьба), остальные два (ввод / вывод нить, SQL-поток) работает от узла, как показано ниже:

IMG
л Первичный бинарный журнал дампа поток

При подключении главного узла из главного узла создает дамп нить журнала для бен-журнала передачи контента. В операции чтения в бен-журнал, бен-журнал на главном узле будет блокировать эту нить, когда чтение закончено, еще до запуска в узел, замок будет выпущен.

л от узла ввода / вывода нитей

При выполнении из узла start slaveпосле команды, то узел создает I / O поток используется для подключения мастер - узел, запрос на обновление мастер - библиотека бен-журнал. После обновления ввода / вывода принимает поток Двоичный процесс дампа к главному узлу, хранящейся в локальном реле-лог.

л от узла SQL нити

SQL поток отвечает за чтение журнала ретрансляции контента в, решимости в действие конкретного и исполнение, и в конечном итоге обеспечить согласованность данных от мастера.

Для каждого ведущий-ведомый связи, он требует трех процессов для завершения. При наличии нескольких узлов главного узел от главного узла к бинарному процессу журнала дампа от каждого узла, чтобы построить текущее соединение, и от каждого узла имеет свой собственный I / O процессы, процессы SQL. Когда два потока от главного узла, принимая Куры обновление и осуществление на отдельные задачи, так что задача синхронизации данных, не ставя под угрозу производительность операции чтения. Например, если узел не работает от этого процесса время ввода / вывода могут быстро получать обновления с главного узла, хотя процесс не был выполнен SQL. Если вы остановите службу от узла до процесса выполнения SQL, по крайней мере, I / O процессы были вытащены из главного узла с последними изменениями и сохраненную в локальном журнале реле, когда услуга снова, вы можете выполнить синхронизацию данных.

要实施复制,首先必须打开Master 端的binary log(bin-log)功能,否则无法实现。

因为整个复制过程实际上就是Slave 从Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。如下图所示:

IMG
复制的基本过程如下:

从节点上的I/O 进程连接主节点,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;主节点接收到来自从节点的I/O请求后,通过负责复制的I/O进程根据请求信息读取指定日志指定位置之后的日志信息,返回给从节点。返回信息中除了日志所包含的信息之外,还包括本次返回的信息的bin-log file 的以及bin-log position;从节点的I/O进程接收到内容后,将接收到的日志内容更新到本机的relay log中,并将读取到的binary log文件名和位置保存到master-info 文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log 的哪个位置开始往后的日志内容,请发给我”;Slave 的 SQL线程检测到relay-log 中新增加了内容后,会将relay-log的内容解析成在祝节点上实际执行过的操作,并在本数据库中执行。

MySQL 主从复制模式

MySQL 主从复制默认是异步的模式。MySQL增删改操作会全部记录在binary log中,当slave节点连接master时,会主动从master处获取最新的bin log文件。并把bin log中的sql relay。

l 异步模式(mysql async-mode)

异步模式如下图所示,这种模式下,主节点不会主动push bin log到从节点,这样有可能导致failover的情况下,也许从节点没有即时地将最新的bin log同步到本地。
IMG

l 半同步模式(mysql semi-sync)

这种模式下主节点只需要接收到其中一台从节点的返回信息,就会commit;否则需要等待直到超时时间然后切换成异步模式再提交;这样做的目的可以使主从数据库的数据延迟缩小,可以提高数据安全性,确保了事务提交后,binlog至少传输到了一个从节点上,不能保证从节点将此事务更新到db中。性能上会有一定的降低,响应时间会变长。如下图所示:
IMG

半同步模式不是mysql内置的,从mysql 5.5开始集成,需要master 和slave 安装插件开启半同步模式。

l 全同步模式

全同步模式是指主节点和从节点全部执行了commit并确认才会向客户端返回成功。

binlog记录格式
MySQL 主从复制有三种方式:基于SQL语句的复制(statement-based replication,SBR),基于行的复制(row-based replication,RBR),混合模式复制(mixed-based replication,MBR)。对应的binlog文件的格式也有三种:STATEMENT,ROW,MIXED。

l Statement-base Replication (SBR)就是记录sql语句在bin log中,Mysql 5.1.4 及之前的版本都是使用的这种复制格式。优点是只需要记录会修改数据的sql语句到binlog中,减少了binlog日质量,节约I/O,提高性能。缺点是在某些情况下,会导致主从节点中数据不一致(比如sleep(),now()等)。

l Row-based Relication(RBR)是mysql master将SQL语句分解为基于Row更改的语句并记录在bin log中,也就是只记录哪条数据被修改了,修改成什么样。优点是不会出现某些特定情况下的存储过程、或者函数、或者trigger的调用或者触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是修改table的时候会让日志暴增,同时增加bin log同步时间。也不能通过bin log解析获取执行过的sql语句,只能看到发生的data变更。

l Mixed-format Replication(MBR),MySQL NDB cluster 7.3 和7.4 使用的MBR。是以上两种模式的混合,对于一般的复制使用STATEMENT模式保存到binlog,对于STATEMENT模式无法复制的操作则使用ROW模式来保存,MySQL会根据执行的SQL语句选择日志保存方式。

GTID复制模式
@ 在传统的复制里面,当发生故障,需要主从切换,需要找到binlog和pos点,然后将主节点指向新的主节点,相对来说比较麻烦,也容易出错。在MySQL 5.6里面,不用再找binlog和pos点,我们只需要知道主节点的ip,端口,以及账号密码就行,因为复制是自动的,MySQL会通过内部机制GTID自动找点同步。

@ 多线程复制(基于库),在MySQL 5.6以前的版本,slave的复制是单线程的。一个事件一个事件的读取应用。而master是并发写入的,所以延时是避免不了的。唯一有效的方法是把多个库放在多台slave,这样又有点浪费服务器。在MySQL 5.6里面,我们可以把多个表放在多个库,这样就可以使用多线程复制。

Исходя из принципа репликации GTID для
данных обновления мастеров - узла будет производить GTID до сделки, записанных в журнале с Двоичным. Из бункера узла журнала I / O изменения потока и записи в локальный журнал реле в. SQL нить получает GTID из журнала реле в, а затем сравнить ли локальные записи Двоичных (так MySQL Рабы должны быть открыт бинарным журналом). Если вы записали с транзакцией GTID была выполнена, узел будет игнорироваться. Если нет записи транзакции не будет выполнена GTID из журнала ретрансляции от узла, и записала бен журнал. В процессе синтаксического анализа будет определять , есть ли первичный ключ, если не все сканирование с помощью вторичного индекса, если есть использовать.

резюме

Mysql Mysql ведущий-ведомый репликации высокой доступности, основой высокой производительности, с этой основой, развертывание MySQL станет простой, гибкий и разнообразный, которые могут реагировать гибко регулироваться в соответствии с различными бизнес-сценариев.

Опубликовано 107 оригинальных статей · вона похвала 14 · просмотров 40000 +

рекомендация

отblog.csdn.net/belongtocode/article/details/102793447