在linux平台下,起了两个运营数据库实例DB1和DB2, 两者的数据分别存放在/data1和/data2下, 我希望用另外一个数据库实例DB3来整合DB1和DB2的数据, 方式如下:
在/data3下分别建立/data1和/data2中的文件和目录的软联接,
root@linux:ls
db11 -> /data1/db1
db12 -> /data1/db2
db21 -> /data2/db1
db22 -> /data2/db2这样做, 应用就可以通过只访问DB3,来获取所有的运营数据. 这种方案在所有的表都是MyISAM的情况下运行正常,但是如果某个数据库里包括了innoDB的表, 就有问题了:
由于我配置mysql的innoDB是使用的共享表空间, 这样/data1和/data2目录下分别有一个ibdata文件, 这样就无法在/data3下面做出一个满足DB1和DB2的ibdata符号联接.请问各位高手, 如果要把多个DB实例的数据整合到一个DB里,有没有什么好的办法? 如果按照我这样的思路, 用第3个实例把其它2个实例的数据整合起来, 怎么解决我遇到的问题?

解决方案 »

  1.   

    不知道楼猪的目的什么,LZ用link来解决我还是第一次看到可以把DB1与DB2的数据合并刀DB3中去啊,如果DB1与DB2的数据将来还会有变化的话,可以使用复制来保持DB3与它们的同步
      

  2.   

    我的目的是希望把DB1和DB2的数据整合到一个数据源DB3里, 这样的话, 分析类的应用就不需要同时联接DB1和DB2, 而只需要联接DB3就可以把所有数据一起来进行分析.这样会方便很多, 比如某个普通的查询,但数据1在DB1上,数据2在DB2上, 我不需要先联接DB1把数据1取出来, 再联接DB2把数据2取出来,然后再联合起来查找我要的信息, 我只需要在DB3里用一个最普通的SQL语句就查出来了.DB1和DB2都是运营数据库, 是随时在变的.