我的生产数据库具有复制到从服务器的所有 MyISAM 表。当我需要执行备份时,我只需停止从服务器上的 mysql 服务器,复制表文件,然后重新启动服务器。这几年来一直运作良好。但是,我现在需要将我的 master 上的一些表转换为 InnoDB,因为我遇到了一些锁定问题。我认为我不能再复制从站上的表文件了。我有几个问题:
在同一个数据库中混合 MyISAM 和 InnoDB 表是个好主意吗?不同类型的表将用于连接和其他操作。
我是否应该在从属设备上有 2 个备份进程 - 1 个用于备份 MyISAM,另一个用于 InnoDB 表?对我来说似乎是一团糟。
我可以将 InnoDB 表转换为从站上的 MyISAM 表并保留我现有的备份过程吗?主机上的 InnoDB 表可以复制到从机上的 MyISAM 格式的同一表吗?
混合表类型很好,尽管您可能想要检查特定应用程序的混合表和所有 InnoDB 表之间的性能差异。
即使没有混合表,我建议通过执行转储进行备份,这比复制文件/文件夹要好得多,因为它简化了移动到另一个服务器或 MySQL 版本的过程。
没有理由将其拆分为两个单独的备份。
我强烈建议您不要更改从属设备上的表格格式,尤其是在您使用事务的情况下。通过保留 InnoDB 表,slave 将正确处理事务。通过将表更改为 MyISAM,您可能会在备份中包含部分事务,这很可能会导致问题,这在您必须进行恢复时可能是个坏消息。