我正在考虑构建一个刷新,锁定和复制mysql数据文件夹的php脚本。因为我需要锁定表并且典型的转储需要5分钟以上,我在想如果我执行数据文件夹的刷新,锁定和文件复制,它应该更快。任何人都有这方面的经验,并知道这是否是一个可行的解决方案?
答案 0 :(得分:2)
如果您打算对数据进行不间断备份,请查看XtraBackup。
答案 1 :(得分:0)
MySQL开发人员领先于您。在一个名为mysqlhotcopy
的命令中使用一些语法糖和正确的错误检查来推送您的确切方法。
答案 2 :(得分:0)
现在可能为时已晚,但所有这些都会分解成什么阶段?如果您的服务器花费五分钟的大部分时间来复制文件而不是实际的刷新,那么您的问题只是一个慢速磁盘。
答案 3 :(得分:0)
我认为这个问题的最佳答案是以下Windows命令:
set bin=C:\Program Files\MySQL\MySQL Server 5.6\bin
"%bin%/mysql" -e "FLUSH TABLES WITH READ LOCK; UNLOCK TABLES;" --user=UserName --password=Password DatabaseName
这会迅速强制数据库的所有MySQL数据到MySQL data 文件夹中的MySQL三个或四个文件,从中可以将它们复制到其他文件夹中。您必须为特定版本的MySQL以及数据库和管理员用户自定义此命令。
我无法得到其他工作的答案,但是根据我的经验,这个BAT / CMD命令运行得很快。
我能做的唯一其他建议是使用MySQL Workbench(MySQL附带)来停止MySQL服务器。当它停止时,它被刷新到磁盘。当您完成直接使用文件时(MySQL从磁盘读取数据库文件),不要忘记启动MySQL服务器。
注意:如果您只是将数据库的数据文件复制到另一个已打开的MySQL实例的数据文件夹中,您将无法在MySQL应用程序中看到数据!您会认为MySQL会检查修改磁盘文件的日期/时间以检测更新,但事实并非如此。并且它不会保持文件锁定,向Windows显示它们正在使用中,它们就是这样。太奇怪了。