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