PostgreSQL作为MySQL主服务器的从服务器,是否可行?

4

我需要进行一些测试,以评估从Mysql迁移到PostgreSql的可行性。

如果可以将Postgre作为MySQL主数据库的从数据库,测试会更容易些。

这是否可能呢?

提前感谢您的帮助。

4个回答

3

不行。

你可以使用触发器和外部进程来构建自己的东西,以便发送数据,但由于MySQL对触发器的支持相当有限,因此这相当困难。

对于您的场景,最好定期转储数据。通常最好的方法是手动迁移模式,然后将数据作为CSV发送。 "mysqldump --compatible" 通常不能很好地工作。


如果手动迁移模式是一个选项,那么这基本上就变成了与https://dev59.com/gm035IYBdhLWcg3wcvmS相同的问题。虽然“--compatible”确实不够,但他们在那里提到的一些解决方案,比如使用pgloader,可能比仅发送CSV更好。 - Tomty

2
可能是可以的。有点儿。或许吧。
一种据说支持 MySQL -> PostgreSQL 迁移的解决方案是 Continuent 的开源 Tungsten Replicator
您可以在这里看到如何实现“异构复制”的一些说明(尽管他们建议使用 tungsten-installer 的方法已经过时,您最好使用 tpm,就像这个回答中所说的那样)。
事实是,虽然有很多 资源 表明钨现在确实支持这一点,但官方上看起来他们不再支持。这意味着如果您尝试使用最新的Tungsten Replicator版本(3.*),您很快会发现Postgres所需的某些文件丢失。
另一方面,如果您尝试下载旧版本,比如2.2.1,就不会出现任何错误,并且所有文件似乎都存在,这留下了一些乐观的空间。
个人而言,我必须承认我也无法让2.2.1正常工作,但这可能更多地与我缺乏使用Tungsten Replicator的经验有关,而不是与Postgres支持有关。此外,在我的情况下,实时元素并不是很重要,因此我们最终选择了运行pgloader的cron作业。

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

(另外,您可能想看看SymmetricDS,它声称可以做类似的事情,但我个人没有研究过。)


0

SymmetricDS支持MySQL到Postgres的复制。有一个开源版本可用,还有一个专业版本,提供基于Web的界面。


0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接