【问题标题】:MSSQL -> MySQL or PostgreSQL DB replicationMSSQL -> MySQL 或 PostgreSQL 数据库复制
【发布时间】:2012-01-19 04:57:11
【问题描述】:

我发现自己的处境一定是别人在某个时候陷入了困境。

我们公司在内部运行基于 MSSQL 的数据库,然后我们的网站位于外部服务器上,目前运行 MySQL。问题是两个数据库需要越来越频繁地相互通信。

我们当前的解决方案涉及 SSIS 包,但它们是临时性的并且通常很慢。我们经常不得不在我们的实时生产服务器上删除表,然后再从内部服务器重建它们。当然,这会导致数据不一致,因此我们会尝试在高峰时间之外执行这些操作。但是,这会导致一些数据从 MySQL 传输到 MSSQL 延迟 24 小时,然后再将其返回 MySQL 延迟 24 小时。这些都不理想。

我正在寻找的是一种解决方案,它允许在我们的内部 MSSQL 服务器和任何可以位于 linux 机器上并与 PHP 很好地配合使用的数据库之间进行复制。正如我所说,我们目前正在运行 MySQL,因此我们倾向于任何包含它的解决方案,但所有其他建议都会受到欢迎。

我在某处读到 PostgreSQL 是一个 vialbe 解决方案,但我现在很难找到我在哪里读到的。我遇到了一些可能有帮助的工具,例如 DBMoto 和 Slony-I,有没有人在这种情况下有任何经验?

或者,我们是不是完全找错了树,我们是否应该尝试将 MSSQL 集成到我们的 PHP 环境中?

如有任何想法或建议,我们将不胜感激。

非常感谢

罗伯

【问题讨论】:

  • 您提供的信息不足以提供帮助...两个不同数据库之间的任何双向复制都必然会出现一些问题...有些是由于数据库的差异造成的,有些是由于可用的复制选项造成的。 ..您不使用相同的任何原因(MSSQL 用于两者或 Postgresql 用于两者或 Oracle 用于两者...)?
  • MSSQL+MySQL 是这里的现状。我们没有更改内部数据库的选项,但如果这是您的建议,我很乐意研究将我们的 Web 服务器更改为 MSSQL 的选项。我看到 PHP 和 MSSQL 说话比较愉快,但是在 CentOS 上安装 MSSQL 需要一些虚拟化解决方案吗?
  • MSSQL 需要一个 Windows 服务器...PHP 也可以在 Windows 上运行...所以一个选择是切换到带有 MSSQL 的 Windows Web 服务器...
  • 虽然我猜这是一个选项,但我只想将其用作最后的最后手段。我们目前对我们的 linux 服务器相当满意,切换到 windows 服务器将是一个巨大的变化。
  • 那么祝你好运,有人可以为你的场景提供生产质量的答案......

标签: php mysql sql-server postgresql database-replication


【解决方案1】:

您可以使用 FreeTDS 和 mssql_* 系列函数(或在其上构建的类,或使用 freetds 的替代扩展)从 PHP 访问 MSSQL 服务器。我们将它用于我们的管理应用程序,Linux/PHP 网站与 MSSQL 数据库通信。

【讨论】:

  • 我遇到了 mssql_* 系列函数,但由于两台服务器地理位置偏远,我担心两者之间的延迟会导致严重问题。你的设置也是这样吗?
  • 不,我们的网络服务器和数据库服务器靠得很近。 (我们在从办公室到产品的较长距离上进行一些通信,但不那么频繁,并且确实出现了延迟)。但是,如果您已经通过慢速链接处理 mssqlmysql 复制,那么 mssqlmssql 复制应该不那么麻烦吗?虽然我相信这只适用于单主模式。
【解决方案2】:

我知道并用于此类工作的最佳解决方案是SymmetricDS

SymmetricDS 是一个异步数据复制软件包, 支持多订阅者和双向同步。

【讨论】:

  • 看起来是个不错的选择,设置和配置起来很容易吗?
  • 配置不太复杂,官网有很好的文档。
  • 我刚刚注意到它的兼容性仅限于 SQL Sever 2005,我们运行的是 2008 R2,知道是否也可能兼容?
  • 我也将它与带有 JTDS JDBC 驱动程序的 SQL Server 2008 R2 一起使用。
  • 谢谢,aleroot。我将在下周认真测试这个。我会告诉你我的进展情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 2015-09-21
  • 1970-01-01
相关资源
最近更新 更多