当我有两台 mysql 服务器,它们有不同的作业(持有不同的数据库),但希望能够在另一台出现故障时使用其中一台来插入,您会建议我如何保持两台服务器上的数据相等“关闭”实时”?

显然,不可能每 x 分钟进行一次完整的数据库转储。

我读过有关 二进制日志, ,这是我需要走的路吗?这不会大大减慢后备服务器的速度吗?有没有办法不将某些表包含在二进制日志中 - 数据已更改并不重要?

有帮助吗?

解决方案

二进制日志绝对是最佳选择。但是,您应该知道,随着 MySQL 你不能像这样在服务器之间来回切换。

一台服务器将是 掌握 另一个将成为奴隶。您可以向主服务器写入/读取,但只能从从服务器读取。如果您曾经写入从属设备,它们将不同步,并且没有简单的方法可以让它们再次同步(基本上,您必须交换它们,以便主设备成为新的从设备,但这是一个繁琐的手动过程)。

如果您需要真正的热插拔备份数据库,您可能必须使用除 MySQL. 。如果您想要的只是一个只读的实时备份,可以在最坏的情况下立即使用(主数据库被永久破坏),那么二进制日志将非常适合您。

其他提示

您可能需要考虑 大师-大师 复制场景,但略有不同。您可以指定要复制的数据库并限制每个服务器的复制。

对于 server1 我会添加 --replicate-do-db=server_2_db 在服务器2上 --replicate-do-db=server_1_db 到您的 my.cnf(或 Windows 上的 my.ini)。这意味着只有 server_1_db 的语句才会被复制到 server2,反之亦然。

另请确保定期执行完整备份,而不仅仅是依赖复制,因为它不能提供意外保护。 DROP DATABASE 声明或类似声明。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top