假如有这样一种情况,一个省公司生产了某一个产品,产品的后台数据库使用mysql,然后将这个产品分别下发给不同的市县级公司使用,所以这个产品的后台数据库结构肯定是一样的。    然后这个省公司又想对各个省公司使用产品的结果做一个统计管理,也就是说各个市县级公司的后台mysql数据库内容都要同步到省公司的后台mysql数据库中。然后各个市县级公司还是不定时开机的,并不能保证一天24小时都在线上。    我在网上查了一下mysql的主从数据库机制,感觉都是主服务器上做写操作,然后同步到各个从数据库当中,也就是一对多的关系;如果出现了上述情况,则正好反了过来,是在多处写,然后同步到一处来读。这样应该采用什么机制来实现了呢?    大家都来晒晒自己的想法吧

解决方案 »

  1.   

    可以不用主从同步。在分公司的软件上做一个数据上传的功能。然后把分公司近期的记录MYSQLDUMP出来,发给省公司。比如可以FTP到省公司的某服务器的指定目录下。各公司一个目录。也可以直接把分公司的BINLOG打包上传。 方法很多。
      

  2.   

    每天导出数据用ftp上传  再导入
      

  3.   

    这个看具体情况,甚至可以不同步OLTP的数据,只要同步OLAP的数据即可。也就是说,不需要同步明细的业务数据,只要统计每天的汇总,比如用程序或者存储过程,甚至直接写个view,各自SELECT ... INTO OUTFILE,然后LOAD DATA INFILE即可http://dev.mysql.com/doc/refman/5.5/en/load-data.html
      

  4.   


    一开始我也是这么考虑的,但是貌似有另外一个问题:如果省公司要求和各分公司的同步程度比较高,也就是说基本上每天晚上都需要同步一次。这样的话,如果在各分公司的服务器中做一个服务,每天定时向省公司提交bin-log,然后省公司用提交来的bin-log更新自己的库,这样的话怎么保证省公司不会将以前已经存入库里的数据重复导入呢?主要分公司的机器不是全天在线的,指不定什么时候开机使用,所以貌似只好上传所有的bin-log,而传所有的bin-log到省公司,就有可能产生上述问题了