マスターからMySQLのレプリケーションが実現する方法であります

マスターからMySQLのレプリケーションが実現する方法である
序文を

MySQLのマスターは、自身が達成することができ、追加のサードパーティ製のソフトウェアを必要としない機能が付属してのMySQLからコピーされ、達成するためにファイルをコピーするコピー機能ではなく、から実装されたSQLコマンド内のマスターのbinlogログファイルとコピーして、私はSQLコマンドのマスター側の実装として理解することができ、それはマスタースレーブのレプリケーションを実現するように、同じSalveの端部で再び実行します。

MySQLのマスタースレーブレプリケーションのアーキテクチャ図

一主一从

マスター・スレーブ複製-01master-スレーブレプリケーション-01

一主多从

マスター・スレーブ複製-02master-スレーブレプリケーション-02

级联

マスター・スレーブ複製-03master-スレーブレプリケーション-03

双主一从

マスター・スレーブ複製-04master-スレーブレプリケーション-04

互为主从

マスター・スレーブ複製-05master-スレーブレプリケーション-05

环状

マスター・スレーブ複製-06master-スレーブレプリケーション-06

マスター・スレーブ原理をコピーします。

MySQLはマスターとマスターコピーからスレーブ全体のプロセスの間に実装非同期レプリケーション・プロセスからの複製マスター、マスターデータベースへのスレーブからのデータベース複製、2つのスレッドが(SQL存在する参加3つのスレッドによって行われていますスレーブ側のIOスレッドとスレッド)、マスター側で、別のスレッド(IOスレッド)。

メインフローチャートの複製から

プロセスの説明:

MySQLのマスタースレーブのレプリケーション我々は、マスターデータベースを起動して、Salveのデータベースを起動し、サルヴェでスタートスレーブデータベースを実行する必要があります前に、実行が完了した後、次のように、フローは次のとおりです。

Salve的IO线程会读取mastr.info文件中配置好的主库信息,比如说存放的有:Master数据库的用户名、密码、端口、还有Master的binlog索引位置;
拿到信息之后就带着信息去链接Master的主库IO线程
当主库的IO线程先检查SLave传过来的配置信息是否正确,如果正确,就拿着Slave传过来的binlog索引位置和Master库的binlog文件中最后一个索引位置进行对比,如果一致就陷入等待状态,等待Master的binlog索引位置更新;
如果不一致就把Slave传过来的binlog索引位置往后的所有SQL语句包括最后一条SQL语句的索引位置发送个给Slave的IO线程;
Slave的IO线程拿到信息之后,先把Master传过来的binlog索引在Slave的master.info文件中进行更新;
然后再把Master传过来的SQL语句写入到relay文件中,然后继续循环执行第二个步骤;
Slave的SQL线程会一直持续的观察relay日志文件中是否有改动,如果没有就继续监听;
如果发现relay中有变动,那么就获取变动的内容转换为SQL语句,并且把SQL语句在Salve的数据库中进行执行

おすすめ

転載: www.cnblogs.com/djwhome/p/12536275.html