本帖最后由 stven0 于 2010-07-26 13:52:16 编辑

解决方案 »

  1.   

    互为主从
    http://hi.baidu.com/smallmenu/blog/item/f8b5c2645c584cfdf7365418.html
      

  2.   

    互同步。但这个问题:假如 user x, user y 在同一时间分别被分到 系统A, 系统B 而且同时更新同一个表 t_test. 那个系统A 和系统B的文件系统怎么来进行数据的整合,并保持一致?不知道怎么解决。
    如果操作时间有时差,且互同步间隔很短,是没问题的。但如果数据在没同步的状态下,两个操作,不知道结果会怎么样?
      

  3.   

    一般双机 master <--> master,把其中一个用于读写,另外一个只读(readonly),这样就不会有什么冲突;如果同时两个都能写的话,那就需要您自己在应用程序中解决冲突!!比如表tb中只有一条记录,字段amount=1,两个主机同时执行更新语句
     master a -> update tb set amount=amount+1;
     master b -> update tb set amount=amount*2;这样两个amount分别是4,3 就会不一致!而复制不会提示错误,这种情况就需要您的程序解决
      

  4.   

    嗯, 5楼说的是。  我现在是这样想的 A <--> B 互为主从, A, B 都能同时写, 但是为了防止这种冲突发生,我设置当A --> B 是延迟10秒.  B--> 延迟20秒.  这样的意思就是当A , B 中的同一个表, 同一个字段被更新了的话, 我先让A 更新到B 这样B就保持了最新的数据,然后在B更新到A.
    不过这样做的话,貌似又有一个问题,就是在这10秒之内或者20秒之内,有人锁住了B表,这样会成功吗?不知道MYSQL的锁机制是怎么的? 
      

  5.   

    使用MySQL NDB Cluster可以轻松解决你这个问题
      

  6.   

    嗯,7楼说的没错,不过我只有2台server 配置起来好混乱。
      

  7.   

    参考下这个看看MySQL 数据库同步