mysql 复制

mysql 复制

如果我设置了一个 mysql 从属服务器进行复制,当它通过 binlog 从主服务器复制数据时,我是否仍然可以通过另一个进程向从属服务器添加和修改数据?

答案1

虽然做法不好,但理论上你可以这样做,只要你遵循一个简单的规则:

请勿插入、更新或删除主机写入的任何数据库中的任何数据。

虽然这不是一个好的做法,但我见过客户在从属服务器上设置开发/暂存数据库。主服务器会将生产数据库的副本复制到从属服务器上,并从中运行 SELECT。

开发人员可以随意读取和写入开发/暂存数据库。

只要开发人员不接触生产数据库的从属副本,他们通常就不会遇到问题。

您也不希望主-主设置拥有开发人员/暂存数据库。这只会产生更多的复制流量和二进制日志膨胀。

静态皮特尔提出了一些非常值得考虑的有效观点。

你们俩都+1!!!

答案2

是的,但如果发生冲突,复制将停止,您必须从主服务器重新初始化它。

这样的结果是,如果您有两个应用程序实例,它们正在写入许多复制的数据库,并且应用程序确保避免冲突 - 系统仍将正常工作。

答案3

不建议这样做,因为它很容易破坏复制。然后,当您从主服务器的备份恢复从服务器时,您将丢失对其所做的任何更改。

如果你要在从服务器上拥有修改权限,您可能需要主主复制。这是两个数据库相互复制的地方。您仍然可以将其他从服务器挂在任一主服务器上。而且您不必将自己限制在环中的两个,尽管这会增加单点故障。

另一种选择是选择性复制,其中从服务器仅更新某些表或数据库。如果使用从服务器的应用程序实际上只是使用同一服务器实例中的不同数据库,则这种方法效果最佳。

相关内容