复制是将主数据库的DDL和DML操作通过二进制日志传到从库上,然后再从库重做,从而使得从库和主库保持数据的同步。Mysql可以从一台主库同时向多台从库进行复制,从库同时也可以作为其他从库的主库,实现链式复制
复制是将主数据库的DDL和DML操作通过二进制日志传到从库上,然后再从库重做,从而使得从库和主库保持数据的同步。Mysql可以从一台主库同时向多台从库进行复制,从库同时也可以作为其他从库的主库,实现链式复制。
mysql复制的优点:
MySQL复制原理
1、Mysql主库在事务提交时会把数据变更作为事件Events记录在Binlog中,主库上的sync_binlog参数控制Binlog日志刷新到磁盘;
2、主库推送Binlog中的事件到从库的Relay Log,之后从库根据Relay Log进行重做,通过逻辑复制来达到主从库的数据一致;
MySQL通过3个线程来完成主从库间的数据复制:其中Binlog Dump线程运行在主库上,I/O线程和SQL线程运行在从库上。当在从库启动复制(Start Slave)时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,I/O线程获取到事件数据后更新到从库的Relay Log中,之后从库上的SQL线程读取Relay Log中更新的数据库事件并应用,
如下图所示:
查看主库:
mysql> show processlist\G;
*************************** 1. row ***************************
Id: 3
User: root
Host: 10.24.33.187:54194
db: NULL
Command: Sleep
Time: 176
State:
Info: NULL
*************************** 2. row ***************************
Id: 4
User: root
Host: 10.24.33.187:54195
db: NULL
Command: Sleep
Time: 176
State:
Info: NULL
*************************** 3. row ***************************
Id: 8
User: root
Host: localhost
db: test
Command: Query
Time: 0
State: starting
Info: show processlist
*************************** 4. row ***************************
Id: 12
User: repl
Host: dsz884.hcg.homecredit.net:39731
db: NULL
Command: Binlog Dump --Binlog Dump线程
Time: 87
State: Master has sent all binlog to slave; waiting for more updates --由此可见,以“推送”的方式同步
Info: NULL
4 rows in set (0.00 sec)
ERROR:
No query specified
--结束END--
本文标题: MySQL复制优点、原理详解
本文链接: https://www.lsjlt.com/news/52260.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0