在插入到 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 我有一个手动输入的订单表(这个表比 SERVER1SERVER2 上的订单表有更多信息strong> 因为在下订单后会进行一些处理。)。我想以某种方式将 SERVER1SERVER2 上的订单表中的信息即时导入 SERVER3,以便这些订单可以遵循相同的流程。

** 以前 **

我们以前通过 CSV 将其导入 SERVER3 订单表(将新行下载到 CSV,然后使用 php/将此 CSV 导入 SERVER3mysql)

** 想法 ** 1) 在 SERVER1SERVER2 上添加 PHP/mySQL 代码以更新 SERVER3 上的此表的最简单方法是什么?我宁愿不这样做,因为我希望这个过程快速且独立。如果出于某种原因 SERVER3 出现故障,我不希望它影响 SERVER1SERVER2 上的排序。

2) 我考虑过使用触发器,但它们只适用于现有的 mySQL 连接。我从 SERVER1SERVER2 复制数据以分隔 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 数据库表的不同插入的主要内容,如果未能解决你的问题,请参考以下文章

oracle 空间数据 如何实现 迁移?

VisualSVN 将存储库从 server1 移动到 server2

RoseMirror人为停机后,恢复流程描述

Linux server1 send file to Linux server2

Linux server1 send file to Linux server2

Linux server1 send file to Linux server2