8

我希望能够将整个数据库从 Microsoft SQL 复制到另一个 Web 友好数据库,例如 CouchDB 甚至 mySQL。

我需要每天进行复制,只是想知道这是否可能,如果可以,我将如何用最少的编码来完成它。

谢谢

4

2 回答 2

12

SymmetricDS可以实现这一点,这是一种开源解决方案,可以在不同数据库(如 SQL-Server 和 MySQL)之间复制更改。一些特点是:

  • 使用变更数据捕获和持续同步
  • 基于 Web 协议的低带宽传输
  • 后台异步操作
  • 从网络停机中自动恢复

它具有初始加载功能,可以使您的数据库同步,然后在捕获更改时不断发送更改。有很多配置选项,因此您可以设置它同步的频率。

于 2013-02-20T14:25:06.527 回答
3

您可以使用几种方法。您命名了两个完全不同的数据库,因此我将为每个数据库提供快速提示。

  1. SQL 服务器-> MySQL。这应该是非常直接的。至少您可以用 C# 或 Java 或任何简单地从 SQL Server 读取然后将数据写入 MySQL 的应用程序来编写应用程序。你把那个应用程序放在一个时间表上,你就完成了。

  2. SQL Server -> 沙发。您可以编写 C# - 作为示例 - 并将其部署到 SQL Server。您编写的代码将作为存储过程公开。您可以在 C# 中编写查询,然后将对象序列化为 JSON,并将其作为存储过程的结果返回。我已经做到了,效果很好,而且速度非常快。

任何一种方法都涉及了解发生了什么变化。您可以提取数据,在其中管理目标和源之间的差异。例如,只获取在给定日期之后修改的记录,然后更新日期,以便下次它只获取新记录等。

您还可以推送数据。您可以使用触发器运行写入队列(外部或内部)的存储过程,然后让某些东西监视队列并推送到 Couch/MySQL。

很多选择。

我们在工作中使用 Mule ESB 在不同系统(SQL Server->Mongo、SQL Server->Couch、MySQL->Mongo)之间移动数据,而且效果很好。

于 2013-02-16T05:01:09.573 回答