2011-12-02 47 views
1

SERVER1 =购物Cart1
SERVER2 =购物Cart2
SERVER3 =报告
在插入到Server1或SERVER2数据库表触发不同的插入到SERVER3数据库表

我目前3台服务器,2个是购物车(SERVER1 & SERVER2),1是用于报告和手动输入订单(SERVER3)。

SERVER3我有一个表为手动输入订单(此表比对SERVER1顺序表多一点信息 & SERVER2监守这样做了一些处理的订单下达后)。我想以某种方式导入SERVER1 & SERVER2上的订单表中的信息到SERVER3,所以这些订单可以遵循相同的过程。


** 以前 **

我们之前使用过CSV导入此为SERVER3顺序表(下载新行到CSV,然后导入CSV这对使用PHP/MySQL的SERVER3表)


** 思考 **

1) 会简单地对SERVER1 & SERVER2添加PHP/MySQL代码最简单的方法也更新SERVER3这个表?我宁愿不这样做,因为我希望这个过程快速而独立。如果出于任何原因SERVER3宕机我不希望它影响订购SERVER1 & SERVER2

2)我想过使用触发器,但它们只能用于现有的mySQL连接。我从SERVER1 & SERVER2SERVER3分离mySQL的实例复制数据(MySQL只可以有1个主因此多个实例),但有没有办法利用一个MySQL触发改变端口,并执行更新该办法?

3)我唯一能想到的其他事情就是创建一个PHP cronjob来检查这些表,但这真的不会在飞行中发生,但每当我有cronjob运行时。

也许我只是想办法,任何帮助将不胜感激!

+0

多个master是可能的,http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-replication-multi-master.html – ajreal

+0

你有没有想过在s1&s2上使用发件人curl将在s3上发送给接收者,然后接收者检查并插入新记录。 –

回答

0

也许你可以使用触发器,但是写入/更新到FEDERATED引擎表中,它并不漂亮,但解决了你的问题。

更多关于FEDERATED引擎here,这个引擎创建一种远程服务器表的一种本地表。