使用复制的备份策略

我的生产数据库具有所有被复制到从属服务器的MyISAM表。 当我需要执行备份时,只需停止从服务器上的mysql服务器,复制表文件,然后再次启动服务器。 这已经好几年了。 不过,我现在需要将我的主表上的几个表转换为InnoDB,因为我有一些locking问题。 我不认为我能够只是复制表上的文件在奴隶了。 我有几个问题:

  1. 将MyISAM和InnoDB表混合在同一个数据库中是一个好主意吗? 连接和其他操作将使用不同types的表。

  2. 我应该有2个备份进程的奴隶 – 1备份MyISAM和其他InnoDB表? 看起来像一个混乱给我。

  3. 我可以将InnoDB表转换为从属系统上的MyISAM表,并保留我现有的备份过程? 主设备上的InnoDB表可以在从设备上以MyISAM格式复制到同一个表上吗?

  1. 混合表types是好的,尽pipe您可能想要检查混合和所有InnoDB表之间在特定应用程序上的性能差异。

  2. 即使没有混合表,我build议通过执行转储进行备份,这比复制文件/文件夹要好得多,因为它简化了迁移到其他服务器或MySQL版本。

  3. 没有理由将其分成两个单独的备份。

我强烈build议您不要更改从站的表格格式,特别是在使用事务时。 通过保留InnoDB表,从服务器将正确地处理事务。 通过将表更改为MyISAM,您可能会在备份中包含部分事务,这很可能会造成问题,这在您必须执行还原时可能是个坏消息。