MySQL Enterprise Backup 备份前必须满足4个前提:以MySQL运行用户执行、备份目录有足够写权限和空间、实例运行且innodb_file_per_table=ON、未启用--skip-grant-tables或禁用InnoDB。

MySQL Enterprise Backup 备份前必须确认的 4 个前提
不满足以下任意一条,mysqlbackup 命令会直接失败或产生不可恢复的备份:
-
mysqlbackup必须以 MySQL 实例运行用户(如mysql)身份执行,否则无法访问ibdata1和 redo log 文件 - 目标备份目录需有写权限,且剩余空间 ≥ 当前数据目录大小 × 1.3(因包含临时日志、元数据和压缩开销)
- MySQL 实例必须处于运行状态,且
innodb_file_per_table=ON(5.6+ 默认开启,但旧实例可能关闭;关闭时全库备份仍可进行,但单表恢复失效) - 不能在
mysqld启用了--skip-grant-tables或禁用 InnoDB 的情况下使用 ——mysqlbackup依赖 InnoDB 内部结构校验
最常用的一致性热备命令及关键参数含义
生产环境推荐使用带压缩、限速、并行的全量备份命令,避免 IO 打满影响业务:
mysqlbackup \ --defaults-file=/etc/my.cnf \ --user=root \ --password=your_pass \ --socket=/var/lib/mysql/mysql.sock \ --backup-dir=/backup/full_$(date +%Y%m%d_%H%M%S) \ --compress \ --compress-method=zlib \ --throttle=50 \ --parallel=4 \ --incremental-base=none \ backup
说明:
-
--defaults-file必须显式指定,mysqlbackup不读取~/.my.cnf;若配置中含[client]段,需确保该段包含user和password -
--compress-method=zlib比默认lz4兼容性更好(尤其跨版本恢复时),但压缩率略低;若明确环境支持lz4,可用它提速 -
--throttle=50表示每秒最多读取 50MB 数据,单位是 MB/s;值设为 0 表示不限速(慎用) -
--incremental-base=none显式声明为全量备份,避免误继承上一次备份路径导致意外增量行为
备份后必须验证的两个动作
备份完成不等于可用。跳过验证,恢复时大概率发现备份损坏或元数据缺失:
芝麻乐开源众筹系统采用php+mysql开发,基于MVC开发,适用于各类互联网金融公司使用,程序具备模板分离技术,您可以根据您的需要进行应用扩展来达到更加强大功能。前端使用pintuer、jquery、layer等....系统易于使用和扩展简单的安装和升级向导多重业务逻辑判断,预防出现bug后台图表数据方式,一目了然后台包含但不限于以下功能:用户认证角色管理节点管理管理员管理上传配置支付配置短信平
- 立即执行
mysqlbackup --backup-dir=/path/to/backup apply-log:这一步重放 redo log,使备份达到「一致性点」;未执行此步的备份无法直接恢复 - 检查输出末尾是否含
100% completed和Backup created successfully;若出现Warning: Cannot open table mysql/innodb_index_stats等提示,说明部分系统表未被正确识别(通常不影响主库恢复,但会影响后续mysql_upgrade) - 可选但强烈建议:用
mysqlbackup --backup-dir=/path/to/backup validate校验备份完整性(耗时较长,适合夜间执行)
常见报错与对应解决方式
遇到错误别急着重跑,先看日志里最末尾的 ERROR 行:
-
ERROR: Cannot connect to MySQL server→ 检查--socket路径是否正确(ls -l /proc/$(pidof mysqld)/fd/ | grep socket可定位真实路径),或 MySQL 是否监听了 TCP 而非 Unix socket -
ERROR: Unable to lock backup directory→ 备份目录被其他mysqlbackup进程占用,或残留backup-my.cnf.tmp文件,手动清理再试 -
ERROR: Failed to read from log file ./ib_logfile0→ MySQL 实例正在做 crash recovery 或刚启动不久,等待SHOW ENGINE INNODB STATUS中LOG部分显示Log sequence number稳定后再备份 -
ERROR: InnoDB: Operating system error number 24 in a file operation(即Too many open files)→ 在/etc/security/limits.conf中为mysql用户设置nofile至少 65535,并重启mysqld
备份路径里一旦出现 backup_variables.txt 和 backup_gtid_executed.sql,说明核心元数据已落盘;但没跑完 apply-log,这个备份仍是“半成品”。









