设为首页 收藏本站
查看: 1254|回复: 0

[经验分享] mysql 主从跨库操作同步探究

[复制链接]

尚未签到

发表于 2015-12-22 12:26:02 | 显示全部楼层 |阅读模式
  
  
  我们知道mysql主从复制原理是通过主库binlog日志进行,从库进行日志的接收并恢复到其从库自身,但是有时我们会进行一些比较二的操作,
  比如我们非得跨库操作,简单说就是:
  1.use A库
  2.操作B库
  究竟能不能跨库实现同步,需要下面进一步测试
  
  
  实验参数:
  主库参数:binlog-do-db
  从库参数:replicate-do-dbreplicate-wild-do-table
  下面分六个情况进行实验,并观察日志变更情况。
  实验一:主库、从库均不设置参数
  实验二:主库不设置参数、从库设置replicate-do-db
  实验三:主库不设置参数、从库设置replicate-wild-do-table
  实验四:主库不设置参数、从库设置replicate-do-db和replicate-wild-do-table
  实验五:主库设置参数binlog-do-db、从库不设置参数
  实验六:主库设置参数binlog-do-db、从库设置replicate-do-db
  实验七:主库设置参数binlog-do-db、从库设置replicate-wild-do-table
  实验八:主库设置参数binlog-do-db、从库设置replicate-do-db和replicate-wild-do-table
  
  实验准备:
  主库、从库已经有测试库www,并且有表test(id,name)
  
  实验:
  实验一、
  主库:不设置参数
  从库:不设置参数
  1、查看binlog日志情况
  主库binlog:
DSC0000.png   
  从库binlog:
DSC0001.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(1,'a');        
  3、查看从库同步情况
DSC0002.png   
  数据已经同
  4、查看binlog日志情况
  主库:
DSC0003.png   
  从库:
DSC0004.png   
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(2,'b');        
  6、查看从库同步情况
DSC0005.png   
  数据已经同步
  7、查看binlog日志情况
  主库:
DSC0006.png   
  从库:
DSC0007.png   
  插入数据后,日志有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database同样有效,并且操作后日志会变化并且同步;
  c.在主库、从库都不设置相应参数的情况下,经过默认库、跨库操作都可以同步。
  
  
  实验二、
  主库:不设置参数
  从库:设置参数replicate-do-db = www
  1、查看binlog日志情况
  主库binlog:
DSC0008.png   
  从库binlog:
DSC0009.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(3,'c');        
  3、查看从库同步情况
DSC00010.png   
  数据已经同步
  4、查看binlog日志情况
  主库:
DSC00011.png   
  从库:
DSC00012.png   
  插入数据后,日志有变化,并且同步到从
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(4,'d');        
  6、查看从库同步情况
DSC00013.png   
  数据未同步
  7、查看binlog日志情况
  主库:
DSC00014.png   
  从库:
DSC00015.png   
  插入数据后,日志有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库不设置相应参数、从库设置replicate-do-db的情况下,经过默认库操作可以同步、跨库操作不同步。
  
  实验三、
  主库:不设置参数
  从库:设置参数replicate-wild-do-table = www.%
  1、查看binlog日志情况
  主库binlog:
DSC00016.png   
  从库binlog:
DSC00017.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(5,'e');        
  3、查看从库同步情况
DSC00018.png   
  数据已经同步
  4、查看binlog日志情况
  主库:
DSC00019.png   
  从库:
DSC00020.png   
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(6,'f');        
  6、查看从库同步情况
DSC00021.png   
  数据已经同步
  7、查看binlog日志情况
  主库:
DSC00022.png   
  从库:
DSC00023.png   
  插入数据后,日志有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库不设置相应参数、从库设置replicate-wild-do-table的情况下,经过默认库、跨库操作可以同步。
  
  
  实验四、
  主库:不设置参数
  从库:设置参数replicate-do-db = www和replicate-wild-do-table = www.%
  1、查看binlog日志情况
  主库binlog:
DSC00024.png   
  从库binlog:
DSC00025.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(7,'g');        
  3、查看从库同步情况
DSC00026.png   
  数据已经同步
  4、查看binlog日志情况
  主库:
DSC00027.png   
  从库:
DSC00028.png   
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(8,'h');        
  6、查看从库同步情况
DSC00029.png   
  数据未同步
  7、查看binlog日志情况
  主库:
DSC00030.png   
  从库:
DSC00031.png   
  插入数据后,日志有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库不设置相应参数、从库设置replicate-do-db和replicate-wild-do-table的情况下,经过默认库操作可以同步、跨库操作不同步。
   
  
  实验五、
  主库:设置参数binlog-do-db = www
  从库:不设置参数
  1、查看binlog日志情况
  主库binlog:
DSC00032.png   
  从库binlog:
DSC00033.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(9,'j');        
  3、查看从库同步情况
DSC00034.png   
  数据已经同步
  4、查看binlog日志情况
  主库:
DSC00035.png   
  从库:
DSC00036.png   
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(10,'k');        
  6、查看从库同步情况
DSC00037.png   
  数据未同步
  7、查看binlog日志情况
  主库:
DSC00038.png   
  从库:
DSC00039.png   
  插入数据后,日志没有变化,并且同步到从库
   
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库设置binlog-do-db、从库不设置参数的情况下,经过默认库操作可以同步、跨库操作不同步。
   
  
  实验六、
  主库:设置参数binlog-do-db = www
  从库:设置参数replicate-do-db = www
  1、查看binlog日志情况
  主库binlog:
DSC00040.png   
  从库binlog:
DSC00041.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(11,'L');        
  3、查看从库同步情况
DSC00042.png   
  数据已经同步
  4、查看binlog日志情况
  主库:
DSC00043.png   
  从库:
DSC00044.png   
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(12,'m');        
  6、查看从库同步情况
DSC00045.png   
  数据未同步
  7、查看binlog日志情况
  主库:
DSC00046.png   
  从库:
DSC00047.png   
  插入数据后,日志没有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库设置binlog-do-db、从库设置replicate-do-db的情况下,经过默认库操作可以同步、跨库操作不同步。
   
  
  实验七、
  主库:设置参数binlog-do-db = www
  从库:设置参数replicate-wild-do-table = www.%
  1、查看binlog日志情况
  主库binlog:
DSC00048.png   
  从库binlog:
DSC00049.png   
  2、主库默认库插入测试数据
  use www;
  insert into test values(13,'n');        
  3、查看从库同步情况
http://blog.itpub.net/attachment/201409/12/26252014_141050228804d4.png  
  数据已经同步
  4、查看binlog日志情况
  主库:
http://blog.itpub.net/attachment/201409/12/26252014_14105022954uzA.png  
  从库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502302S3RG.png  
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(14,'o');        
  6、查看从库同步情况
http://blog.itpub.net/attachment/201409/12/26252014_1410502311kqmN.png  
  数据未同步
  7、查看binlog日志情况
  主库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502318a7VS.png  
  从库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502325MPkh.png  
  插入数据后,日志没有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库设置binlog-do-db、从库设置replicate-wild-do-table的情况下,经过默认库操作可以同步、跨库操作不同步。
  
  
  实验八、
  主库:设置参数binlog-do-db = www
  从库:设置参数replicate-do-db和replicate-wild-do-table = www.%
  1、查看binlog日志情况
  主库binlog:
http://blog.itpub.net/attachment/201409/12/26252014_1410502413P9cJ.png  
  从库binlog:
http://blog.itpub.net/attachment/201409/12/26252014_14105024217zID.png  
  2、主库默认库插入测试数据
  use www;
  insert into test values(15,'p');        
  3、查看从库同步情
http://blog.itpub.net/attachment/201409/12/26252014_141050243111S1.png  
  数据已经同步
  4、查看binlog日志情况
  主库:
http://blog.itpub.net/attachment/201409/12/26252014_14105024487tTd.png  
  从库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502455gTC1.png  
  插入数据后,日志有变化,并且同步到从库
  5、主库跨库插入数据
  use mysql;
  insert into www.test values(16,'q');        
  6、查看从库同步情况
http://blog.itpub.net/attachment/201409/12/26252014_1410502461549b.png  
  数据未同步
  7、查看binlog日志情况
  主库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502468H5tq.png  
  从库:
http://blog.itpub.net/attachment/201409/12/26252014_1410502476iHnU.png  
  插入数据后,日志没有变化,并且同步到从库
  
  结论:
  a.经测试update、delete同insert;
  b.create database不能同步。
  c.在主库设置binlog-do-db、从库设置replicate-do-db和replicate-wild-do-table的情况下,经过默认库操作可以同步、跨库操作不同步。
  
  
  总结:
  1、主库、从库有没有任何参数,默认库操作都是可以同步的。
  2、主库未设置binlog-do-db的情况下:
  a.从库设置replicate-do-db,跨库操作不同步
  b.从库设置replicate-wild-do-table,跨库操作同步
  c.从库设置replicate-do-db和replicate-wild-do-table,跨库操作不同步
  d.跨库操作后binlog会有变化
  3、主库设置binlog-do-db的情况下:
  a.从库设置replicate-do-db,跨库操作不同步
  b.从库设置replicate-wild-do-table,跨库操作不同步
  c.从库设置replicate-do-db和replicate-wild-do-table,跨库操作不同步
  d.跨库操作后binlog没有变化
  4、只有在主库、从库不设置参数的情况下,主库新建库,从库才可以同步。
  
  版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-154758-1-1.html 上篇帖子: mysqldump 备份单张表和恢复 下篇帖子: MySQL 5.6版本GTID复制异常处理一例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表