同步2个数据库

时间:2009-12-08 06:46:15

标签: database synchronization

我在MySQL中有一个数据库,在MS SQL上运行另一个数据库。 MySQL是我在Joomla上运行的网站的后端数据库。 我有一个运行我的商店的ERP。该ERP由.Net中的第三方制作

只要用户在我的网站下订单,就会更新名为the orders的表格。 订单详细信息必须刷新到我的ERP中的orders表。 两个数据库中的表结构完全不同,所以我将自己进行映射。

我的问题是:

  1. 我应该多久将数据从MySQL数据库传输到MS SQL?
  2. 有人建议我可以编写一个Web服务,定期将数据泵送到ERP中的表格中。所以我开始考虑Nusoap webservices。这是正确的方式还是有更好的方法来做到这一点?
  3. 我还必须从我的ERP中检索与库存相关的信息到我的MySQL数据库。

4 个答案:

答案 0 :(得分:1)

1:取决于您的数据更改频率,以及您需要同步的频率(即,取决于您的业务)。

2& 3:传输数据的Web服务可以正常工作。但除非你想要提出一个通用的解决方案,否则这听起来比它值得多麻烦。

如果我这样做,我会将数据从Sql Server导出到文件,然后将该文件导入mysql(mysql my_db < file.sql)。

以这种格式获取sql server的数据并不容易(在Sql Server上没有等同于mysqldump)。但请查看this question了解一些想法。

如果数据本身在系统之间是兼容的(如果列是等效的数据类型),则只需在SQL Server中创建一个以正确顺序导出数据的查询,就可以克服表结构差异。

实际上,您可以创建一个查询,其输出 file.sql以导入到mysql中。例如,查询如:

SELECT CONCAT(
    'INSERT INTO MYTABLE VALUES (', 
    myColumn, 
    ',', 
    myOtherColumn,
    ');'
) AS SQL_STATEMENT

生成输出类似于:

INSERT INTO MYTABLE VALUES (myColumnValue1, myOtherColumnValue1);    
INSERT INTO MYTABLE VALUES (myColumnValue2, myOtherColumnValue2);    
....

我至少有一次从sql server导出数据。

答案 1 :(得分:0)

  1. 您需要ms sql数据库的最新版本。这将是决定因素
  2. 我认为这不是一个巨大的优势,这是一个Web服务。
  3. 这不是问题。

答案 2 :(得分:0)

决定转移订单的频率是业务决策而非技术决策。但是很难看出你不能尽快处理客户的订单会带来什么样的竞争优势,所以它应该是一个没脑子的人。

在不了解您的基础架构和架构的情况下,我们无法向您提供有关方法的明确建议。我希望一个写得很好的ERP软件包包含用于导入和导出信息的接口。唉,这种期望往往是混乱的。如果确实需要编写自己的界面,请避免使用Web服务。除非你有一个非常特殊的设置,否则所有WS都意味着需要更长的时间来满足你的客户。我想我们已经同意这不是一个好主意。

Syncronization API的注意事项:

  1. 您需要跟踪哪些新订单 还没有转移到ERP 数据库。旗帜是笨拙的,一个队列 或许更优雅。
  2. 有一个工作/守护进程轮询 不断识别订单 需要转移和 近乎实时地转移它们。
  3. 有一个处理的计划 ERP数据库不可用。
  4. 在模块化中构建映射 时尚,所以你不必 重写整个事情 因为结构的变化 你的一张桌子。
  5. 库存数据可能会 必须从MySQL中撤出 数据库,因为它似乎不太可能 第三方会允许你 将代码放入他们的数据库。但 值得一读的是合同。

答案 3 :(得分:0)

好的,根据我收到的回复,我会重新提出我的问题,提供更多细节。

我有一个在Joomla和Virtue mart上运行的电子商务门户网站(不管它们是什么!!) 这里的后端数据库是MySQL。 我的朋友用.net编写了一个erp,而那里使用的Db是MSSQL 现在我将主持我的电子商务门户网站。

以下是将要发生的行动以及与行动相关的问题

行动1: 在一天开始时,我的朋友更新各种产品和erp表的库存 题: 我希望erp(MS SQL)中的更新库存能够自动反映在我的网站数据库(MySQL)上。我该怎么做?

行动2: 人们来到我的网站并下订单。这些订单存储在我的网站(MYSQL)的订单表中。 问题2: 我希望我的网站(MySQL)中的这些更新订单相关数据在我的erp(MS SQL)中的相应表上更新

更多关于我的erp和我的网站中表格的数据库结构是完全不同的