情况是,某系统触发执行A数据库的存储过程进行一系列运算后生成结果表,需要将这部分结果表的数据远程保存到异地的B数据库,想通过在A数据库上写一个存储过程,来远程将数据保存到异地的B数据库上,请各位指点一下,不甚感激!mysql存储数据库

解决方案 »

  1.   

    1、用FEDERATED引擎,示例CREATE TABLE `a` (
       `tid` INT(6) NOT NULL AUTO_INCREMENT,
       `subject` VARCHAR(20) DEFAULT NULL,
       UNIQUE KEY `tid` (`tid`),
       KEY `tt` (`tid`,`subject`)
    ) ENGINE=FEDERATED   
    CONNECTION='mysql://aa:[email protected]:3306/ee/a'
    ee:数据库名
    a:表名访问此表即可
    2、导出A数据,再导入B
      

  2.   

    1 如楼上用FEDERATED引擎
    2 做A数据库做B数据库的master-master结构  这样可以直接写数据到本机 然后同步到B机
      

  3.   

    刚尝试了下,还有个疑问,就是这种表对表的映射,可以是多对一的映射吗?例如A机器上的一张表tb,映射到B机器上的一张表remote_b_tb,还可以映射到C机器上的remote_c_tb,如果我修改任意一台机器的映射表,例如在C机器上向remote_c_tb插入一条数据,则B机器上remote_b_tb和A机器上的tb会实时的同步到最新的数据吗?(刚刚实际测试是会同步的,但是不知是否会有其他问题)。
    如果我同时存在操作remote_c_tb,remote_b_tb表中的数据,如添加,修改,则1张主表和两张映射表之间是否会存在同步问题了?
      

  4.   


    刚尝试了下,还有个疑问,就是这种表对表的映射,可以是多对一的映射吗?例如A机器上的一张表tb,映射到B机器上的一张表remote_b_tb,还可以映射到C机器上的remote_c_tb,如果我修改任意一台机器的映射表,例如在C机器上向remote_c_tb插入一条数据,则B机器上remote_b_tb和A机器上的tb会实时的同步到最新的数据吗?(刚刚实际测试是会同步的,但是不知是否会有其他问题)。如果我同时存在操作remote_c_tb,remote_b_tb表中的数据,如添加,修改,则1张主表和两张映射表之间是否会存在同步问题了?