Php MySQL在备份运行时复制插入查询

Php MySQL在备份运行时复制插入查询,php,mysql,duplicates,dump,Php,Mysql,Duplicates,Dump,我有一个Windows任务作业,每天凌晨3点运行,通过批处理文件备份所有数据库,它备份一切正常 但是,如果有人在备份运行时将记录插入数据库,则会遇到一个问题,即它会将insert查询复制大约10-30次 用户通过PHP网页将数据插入MySQL数据库,一旦插入完成,PHP会将页面重定向到当前页面的新版本,因此刷新或回击页面不会起任何作用 只有在备份运行时才会出现重复条目。如果您使用的是mysqldump,请确保您通过启用-single transaction来使用事务快照功能 有很多选项可以控制如

我有一个Windows任务作业,每天凌晨3点运行,通过批处理文件备份所有数据库,它备份一切正常

但是,如果有人在备份运行时将记录插入数据库,则会遇到一个问题,即它会将insert查询复制大约10-30次

用户通过PHP网页将数据插入MySQL数据库,一旦插入完成,PHP会将页面重定向到当前页面的新版本,因此刷新或回击页面不会起任何作用

只有在备份运行时才会出现重复条目。

如果您使用的是mysqldump,请确保您通过启用-single transaction来使用事务快照功能

有很多选项可以控制如何捕获转储以及包含哪些选项

我的默认设置:

mysqldump --create-options --extended-insert --add-drop-table --single-transaction --hex-blob

您是使用mysqldump进行备份还是编写php代码?如果您不介意备份不是增量的,为什么不直接将实际的数据库文件复制到备份位置,而不是在php或mysql本身中进行备份。它通常要快一点,因为它不需要读取/解析和执行任何东西。它只是复制。或者,您也可以在备份时锁定表。在某个地方发出一个信号,在备份时将其设置为true,然后在这段时间内,告诉用户服务器暂时处于脱机状态。感谢您的回复,@Tularis复制数据库文件是一个非常糟糕的主意,除非它们处于一致的状态。安全的方法是使用类似或的工具。@Tularis:Innodb表无法从其数据文件中恢复。不要以这种方式备份数据库。在评论中阅读这样的内容确实很困难,最好用附加数据修改您的问题。请尝试-single transaction选项。所有表都使用InnoDB,对吗?SHOW TABLE STATUS将告诉您。是的,这些都是innoDB。我将尝试-single事务,如果成功,我会告诉您。添加-single事务成功。谢谢你的帮助,我不能投赞成票,因为我还没有15岁的代表。