如果我设置一个mysql从站进行复制,我还可以通过另一个进程向从站添加和修改数据,同时通过binlog从主站复制数据?
虽然不好的做法,但你理论上可以这样做,只要你遵循一个简单的规则:
不要插入,更新或删除任何数据库中的任何数据,大师写入。
虽然不好的做法,我看到客户在一个从站上设置了开发/暂存数据库。 主人将复制到奴隶的生产数据库的副本和SELECTs将从他们运行。
开发人员可以随意读写开发人员/登台数据库。
只要开发者不碰奴隶的生产数据库副本,他们通常从来没有问题。
您也不希望主 – 主设置具有开发人员/临时数据库。 它只是创build更多的复制stream量和二进制日志膨胀。
@staticsan和@pitr提出了有效的观点也非常值得考虑。
为你们俩+1!
是的,但如果发生冲突,复制将停止,您将不得不从master重新初始化它。
这样做的结果是,如果您有两个正在写入许多复制数据库的应用程序实例,并且应用程序可以确保避免冲突 – 系统仍然可以正常工作。
不推荐使用它,因为它可以轻松地中断复制。 然后,当您从备份中恢复主服务器时,您将失去对其进行的任何更改。
如果您必须对从站进行修改访问,您可能需要的是主 – 主复制。 这是两个数据库相互复制的地方。 您仍然可以将其他奴隶也挂在主人的身上。 而且你不必限制自己在环中的两个,尽pipe这增加了单点失败。
另一种select是select性复制,从属只更新一些表或数据库。 如果使用从服务器的应用程序真的只是在同一个服务器实例中使用不同的数据库,那么效果最好。