首页 / MYSQL / mysql主从同步以及原理
mysql主从同步以及原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql主从同步以及原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3342字,纯文字阅读大概需要5分钟。
内容图文
![mysql主从同步以及原理](/upload/InfoBanner/zyjiaocheng/500/21521eb56a4a438d8d0723ca119d9c7b.jpg)
异步复制: 指的是客户端连接到MySQL主服务器写入一段数据, MySQL主服务器将写入的数据发送给MySQL从服务器, 然后直接返回客户端OK, 可能从服务器的数据会和主服务不一致
半同步复制:指的是客户端连接到MySQL主服务器写入一段数据, MySQL主服务器只将数据同步复制给其中一台从服务器, 半同步复制给其他的从服务器, 来达到其中一台从服务器完全同步的效果
主从复制原理:
从库需要两个线程完成,一个叫做I/O线程,一个叫做sql线程
主库需要一个线程叫做I/O线程
主库必须要开启binlog日志才能完成主从同步,当用户请求到主的库里面,会将增删改的东西记录到binlog日志里面,主从复制是从库去找主库的,建立时,我们在从库上使用change master指定master的ip,端口,二进制文件名称,pos,master的密码等信息。并在从库上开启start slave就会开启同步。
开启同步后,先是从向主发起请求。然后主库进行验证从库是否正常,验证之后,主库就会给从库按照信息发送日志,从库上存放日志的地方叫做中继日志(relay log),其实从库里面还有一个master info信息,这个里面记录的是change master的信息,每一次取日志回来都会对从库的master info信息进行更新,接下来从库根据master info的binlog信息去主库在取跟新的binlog信息,
放到中继日志里面,我们如何进行更新?
当主将binlog发送过来放到中继日志里面的时候,sql线程就会语句经过转换写到从库里面。
注意
1.开启binlog日志
2.change master(在从库上)
3.在从库开启start slave之前。这两个库的数据必须是一样的,所以讲主库的数据进行备份使用master-data=1,会记录位置的。然后从库会指定从主库备份里面找备份点。
4.要在开关之前建立专门用于主从同步的账号
5.从库打开开关的过程,其实就是打来从库两个线程的过程
6.start slave
主库返回的除了binlog日志内容外,还有本次返回日志内容后在Master服务器端的新的binlog文件名称以及在binlog中的下一个指定更新的位置。这个位置会保存在从库的master info里面。
>flush tables with read lock;在主库上执行加上读锁
然后另开一个窗口,连接到主mysql
>show master status; 查看主库的binlog以及pos值。
下来是备份主库数据,将备份数据在从库上执行。目的就是让从库和主库的数据一样。
从库将主库的备份数据导入完了以后要将锁打来:
>unlocks tables;
然后在从库上执行change master语句。这些信息会记录在从库的master.info的信息中;(如果你备份的时候指定master-data=1)
最后一步开启start slave;
查看是否成功使用show slave status; 查看两个进程是否为yes。
从库里面的relay-log.info:记录sql线程从中继里面读取到的日志。
描述mysql主从复制原理
自己总结:从库的io线程会实时依据master.info信息的去主库的binlog日志里面读取更新的内容,将更新的内容取回到自己的中继日志中,同时会更新master.info信息,此时sql线程实时会从中继日志中读取并执行里面的sql语句。
描述mysql主从同步部署
自己总结:
1.将主库的数据备份,备份的时候时候master-data=1指定。然后在从库上将备份数据导入
2.在主库上给开启主库的bin-log功能,以及service-id
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_account'@'10.121.0.220' identified by '123456'
这句的意思是,允许从服务器'10.121.0.220 '使用'slave-account'及'123456'这个帐号密码对对主服务器的所有数据库(*.*)进行主从复制('REPLICATION SLAVE').
3.在主库上执行flush tables with relay locks; 读写锁。然后领开启一个窗口
4.然后只从库上执行change master 里面指定刚才创建的用户以及密码
5.执行start slave;
6.show slave status;看看两个线程是否启动
7.在主库上解锁。
mysql主从同步以及原理
标签:mysql linux
本文系统来源:http://blog.51cto.com/11726212/2072671
内容总结
以上是互联网集市为您收集整理的mysql主从同步以及原理全部内容,希望文章能够帮你解决mysql主从同步以及原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。