现在要做一个系统,这个系统的架构我已经设计好了问题是这个系统会装在全国各地(不会超过50个地方),这个系统的数据不会很多及其它原因打算使用Mysql,然后在上海会有一个中心,数据不要求实时同步,每天同步一次就可以,就是分站每天会把更新的数据上传到中心请问大家有没有做过类似系统的?希望能在实现方式上给点提示,谢谢,如果答案很好的话会再加分的

解决方案 »

  1.   

    比如每天定时将分站的最新数据导出(MYSQLDUMP OR 语言),再传送到你的中心,在导出时对分站的运行有影响。
      

  2.   

    一般是,下面的分站,把数据导出,然后传送到主站,做数据uplaod就行了。分站的数据导出,你可以用 mysqldump, 或者 select ... INTO OUTFILE ..., 生成文本文件。
    传输时,如果数据量大,可以考虑压缩文件。可以利用网络VPN直接文件复制,或者更可靠的MQ来做数据的转递。
    数据中心,收到数据后,可以每天定时 LOAD DATA INFILE 类似的系统很多。基本上都是这种方式。
      

  3.   

    在你的表中没有字段标识是否是新增的字段?比如TIMESTAMP字段类型,没有的话打开日志没有?打开了可以进行增量备份。
      

  4.   

    如果无法断定哪些是新加的,那可以打开这些数据库的二进制日志功能,然后定时上传这些二进制日志到主机,数据中心可以直接通过这些日志得到当天日志中的子站的数据修改记录。http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#binary-log
    5.11.3. 二进制日志
    二进制日志以一种更有效的格式,并且是事务安全的方式包含更新日志中可用的所有信息。
      

  5.   

    http://www.blogjava.net/lzj520/archive/2008/02/27/182485.html两位帮我看下这么做的配多台master是不是能解决我的问题?主要是主键的重复问题
      

  6.   


    这个链接是双机同步。和你的需求不相配。你应该是多个主(各地) 对 一个从(数据中心)。而且你不要求实时同步,那么每晚各地的机器增量备份,传文件到数据中心备份的基本思路应该是差不多的。如果不想手工每晚备份并上传,那就用任务呗。如果你是linux,那可以用系统的Cron来定时做。如果你mysql版本高,6以上,也可以用mysql的定时任务来做这件事。
    主键重复是你系统的设计问题。。哼哼,只能在数据中心端再写个程序处理一下,我也想不出什么好办法。或者你数据中心的表再多一列auto_increase列做主键?这样两边的表结构就不一致了,不知道你的系统对这方面有无要求。
      

  7.   

    谢谢 jiahehao 主要是我的得到的需求是各个分中心在不和主中心联网的时候也能正常工作,所以这个主键的设置就很麻烦了
      

  8.   

    如果问题的关键是在主键重复上。那么这个主键是什么性质的呢?假设是自增长型的,那么思路一是,将各地的主键它的初始值设为不一样的。比如北京从0开始,上海从10000开始,天津从20000开始,那么三个地方在新增一万条数据的时候,它们的主键值都是不会重复的。这个数量的限制你可以根据自已的情况去确定。再一个情况,如果是char,或者是业务产生的数据,那用联合主键如何?至于如何设,就要根据你的业务情况去确定。