MYSQL主从复制

2019-07-15 21:19:02  阅读 3970 次 评论 0 条

     Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据。



          MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制。

     MySQL Replication 就是从服务器拉取主服务器上的二进制日志文件,然后再将日志文件解析成相应的SQL语句在从服务器上重新执行一遍主服务器的操作,通过这种方式来保证数据的一致性。

    1.master(主)在执行sql之后,记录二进制log文件(bin-log)。

     2.slave(从)连接master,并从master获取binlog,存于本地relay-log中,然后从上次记住的位置起执行SQL语句,一旦遇到错误则停止同步。

        简记:MySQL的主从复制,实际上就是Master记录自己的执行日志binlog,然后发送给Slave,Slave解析日志并执行,来实现数据复制。

 首先bin-log日志文件加锁,然后读取更新的操作,读取完毕以后将锁释放掉,最后将读取的记录发送给从服务器。

2018-12-07374320.PNG


     在一次主从复制过程中需要用到三个线程:Binlog dump 线程、Slave I/O 线程和Slave SQL线程,其中Binlog dump 线程在主服务器上面,剩下的两个线程是在从服务器上面工作的。

     这两个线程在从服务器上面的工作流程如下图所示:

2018-12-07884376.PNG


  1.master 端

       master端有2个参数可以控制。

        Binlog_Do_DB : 设定哪些数据库需要记录Binlog。

        Binlog_Ignore_DB : 设定哪些数据库不要记录Binlog。

    2.slave 端

       slave端有6个参数可以控制。

        Replicate_Do_DB : 设定须要复制的数据库,多个DB用逗号分隔。

        Replicate_Ignore_DB : 设定可以忽略的数据库。

        Replicate_Do_Table : 设定须要复制的Table。

        Replicate_Ignore_Table : 设定可以忽略的Table。

        Replicate_Wild_Do_Table : 功能同Replicate_Do_Table,但可以带通配符来进行设置。

        Replicate_Wild_Ignore_Table : 功能同Replicate_Ig-nore_Table,可带通配符设置。



微信扫码查看本文
本文地址:https://www.yangguangdream.com/?id=2040
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?