您好、欢迎来到现金彩票网!
当前位置:彩之网 > 主库 >

mysql主从数据库的问题:到底谁触发谁?

发布时间:2019-06-27 01:35 来源:未知 编辑:admin

  1:当主库有数据更新后,到底是主库主动通知从库, 还是说从库有个定时器,定时的询问主库有没有更新?也就是问:到底是谁通知谁? 谁触发谁?

  2:我猜想应该是前者吧,即主库应该主动告诉从库。 否则,如果是后者的话, 肯定会造成很大的延迟和流量的浪费。如果真的是后者的话,怎样解决延迟问题和流量浪费的问题?

  3:大致看了mysql自带的主从复制机制,感觉好复杂, 非得这么复杂吗? 我自己想了一个主从复制的方案,非常简单,我知道我作为一个菜鸟,我的方案可能很幼稚,肯定没法和mysql自带的机制比,但是,请告诉我我的方案到底哪里不行,有哪些致命缺陷, 到底哪里幼稚了。 谢谢。

  在主库新建一个表来代替mysql自带的bin log 日志, 即: 修改我的业务代码,把update,insert , delete 等更新的SQL语句存在这个表里。然后从库也建一个相同的表用来同步。然后自己用纯java写一个程序专门用以主从同步。具体流程是:主库执行更新操作 - 主库把更新的SQL写入表 - 主服务器php程序发送tcp链接通知我写的java程序有更新 - java程序把主库的SQL写入从库的SQL表,并在从库执行这些SQL语句。 其间主要用SQL表的自增id来保证数据的写入顺序,即:id 为3的如果执行失败就不能执行 id为4的SQL, 这样貌似可以很好的实现数据的同步。 然后为了避免偶发错误, java程序可以用一个定时器定期的检查同步。 这样既实现了同步,又解决了延迟问题......展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1,MySQL 使用3 个线程来执行复制功能(其中1 个在主服务器上,另两个在从服务器上。当从服务器发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让主服务器发送二进制日志。主服务器创建一个线程将二进制日志中的内容发送到从服务器。从服务器I/O 线程读取主服务

  器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继

  日志。第3个线程是SQL 线程,从服务器使用此线程读取中继日志并执行日志中包含的更新。

  2,如1所述,主服务器收到从服务器的同步请求后,开始向从服务器发送二进制日志

  注:你使用java程序同步数据,先不说java的效率,仅仅全部sql都同步到从表再顺序执行就有问题,反复查库,插数据,还有数据不一致的问题,如insert into tab values (now())等等;

http://amamusique.com/zhuku/197.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有