用于Mysql Master的Postgresql slave。可能?

时间:2010-03-15 10:47:11

标签: mysql postgresql replication database-replication

我需要对从Mysql到PostgreSql的潜在迁移进行一些测试。 测试是否可以将Postgre用作我的MySQL主服务器的奴隶将更容易。

有可能吗?

提前致谢

4 个答案:

答案 0 :(得分:3)

没有

你可以使用触发器和外部进程自己构建一些东西来发送数据,但是由于mysql对触发器的支持相当有限,所以它相当困难。

对于您的方案,您可能最好定期转储数据。最好的方法通常是手动迁移架构,然后以CSV格式发送数据。 “mysqldump --compatible”通常效果不佳。

答案 1 :(得分:1)

有可能。有点。也许

一种据称支持MySQL的解决方案 - > PostgreSQL迁移是Continuent的开源Tungsten Replicator

您可以看到有关如何实现此“异构复制”here的一些说明(虽然他们建议使用钨安装程序的方法已被弃用,您可能最好使用tpm,例如so )。

事情是,虽然有plenty of resources表示Tungsten确实用来支持这一点,但正式看来they no longer do。这意味着如果您尝试使用最新的Tungsten Replicator版本(3. *),您将很快发现Postgres所需的某些文件丢失。

另一方面,如果您尝试下载旧版本,例如2.2.1,则不会出现这些错误,并且所有文件似乎都存在,这留下了一些乐观的空间。

就个人而言,我必须承认我无法让2.2.1工作,但这可能更多地与我缺乏使用Tungsten Replicator的经验有关,而不是Postgres的支持。另外,在我的情况下,实时元素并不那么重要,所以我们最终选择了运行pgloader的cron作业。

因此,如果从MySQL到Postgres的实时复制是您必须拥有的,我建议您在开始实施自己的解决方案之前至少尝试使用Tungsten Replicator。但是,如果实时不是绝对的要求,那么可能有更简单的方法。

(另外,你可能想看一下声称做类似事情的SymmetricDS,虽然我没有亲自调查过。)

答案 2 :(得分:0)

我不这么认为,主从复制只能在相同的数据库之间进行。

您可以使用PostgreSQL-SQL-mode配置MySQL,也可以使用mysqldump中的--compatible在Postgresql中导入转储。

答案 3 :(得分:0)

SymmetricDS确实支持MySQL到Postgres复制。有一个开源版本以及一个提供基于Web的界面的专业版本。