在插入到 SERVER1 或 SERVER2 数据库表时,会触发对 SERVER3 数据库表的不同插入
Posted
技术标签:
【中文标题】在插入到 SERVER1 或 SERVER2 数据库表时,会触发对 SERVER3 数据库表的不同插入【英文标题】:On insert to SERVER1 or SERVER2 database table trigger a different insert to SERVER3 database table 【发布时间】:2011-12-02 17:16:56 【问题描述】:SERVER1 = 购物车1SERVER2 = 购物车2SERVER3 = 报告
我目前有 3 台服务器,2 台是购物车(SERVER1 & SERVER2),1 台用于报告和手动输入订单(SERVER3 )。
在 SERVER3 我有一个手动输入的订单表(这个表比 SERVER1 和 SERVER2 上的订单表有更多信息strong> 因为在下订单后会进行一些处理。)。我想以某种方式将 SERVER1 和 SERVER2 上的订单表中的信息即时导入 SERVER3,以便这些订单可以遵循相同的流程。
** 以前 **
我们以前通过 CSV 将其导入 SERVER3 订单表(将新行下载到 CSV,然后使用 php/将此 CSV 导入 SERVER3 表mysql)
** 想法 ** 1) 在 SERVER1 和 SERVER2 上添加 PHP/mySQL 代码以更新 SERVER3 上的此表的最简单方法是什么?我宁愿不这样做,因为我希望这个过程快速且独立。如果出于某种原因 SERVER3 出现故障,我不希望它影响 SERVER1 和 SERVER2 上的排序。
2) 我考虑过使用触发器,但它们只适用于现有的 mySQL 连接。我从 SERVER1 和 SERVER2 复制数据以分隔 SERVER3 上的 mySQL 实例(mySQL 只能有 1 个主实例,因此有多个实例),但在那里有什么方法可以利用 mySQL 触发器来更改端口并以这种方式进行更新?
3) 我唯一能想到的另一件事是创建一个 PHP cronjob 来检查这些表,但这确实不会即时发生,而是每当我运行 cronjob 时。
也许我只是想太多,任何帮助将不胜感激!
【问题讨论】:
可以多主,dev.mysql.com/doc/refman/5.1/en/… 您是否考虑过使用 curl 在 s1 和 s2 上实现发送者,该发送者将发布到 s3 上的接收者,然后接收者检查并插入新记录。 【参考方案1】:也许您可以使用触发器,但是写入/更新到 FEDERATED
引擎表中,它并不美观,但可以解决您的问题。
更多关于FEDERATED
引擎here,这个引擎创建一个远程服务器表的本地表。
【讨论】:
以上是关于在插入到 SERVER1 或 SERVER2 数据库表时,会触发对 SERVER3 数据库表的不同插入的主要内容,如果未能解决你的问题,请参考以下文章
VisualSVN 将存储库从 server1 移动到 server2
Linux server1 send file to Linux server2