mysql主从复制不是备份,真正备份需物理/逻辑备份+binlog归档;mysqldump逻辑备份须加--single-transaction和--master-data=2;物理备份推荐xtrabackup但需注意版本兼容性;binlog归档必须与备份联动才能实现时间点恢复。

主从复制本身不是备份,别把它当备份用
MySQL 主从复制(replication)是实时数据同步机制,不是备份手段。从库宕机、误删语句(比如没加 WHERE 的 DELETE)、主库 binlog 被覆盖或损坏,都会导致从库和主库同时丢失有效数据。它解决的是高可用和读扩展,不是数据可恢复性。
真正能用于恢复的,必须满足三个条件:时间点可回溯、数据独立存储、不依赖主库运行状态——这只能靠定期物理/逻辑备份 + binlog 归档来实现。
用 mysqldump 做一致性逻辑备份时必须加 --single-transaction
对 InnoDB 表做逻辑备份,不加锁又保证一致性,关键就是 --single-transaction。它通过启动一个一致性快照(基于 MVCC)完成导出,避免锁表影响业务。
PHP是一种功能强大的网络程序设计语言,而且易学易用,移植性和可扩展性也都非常优秀,本书将为读者详细介绍PHP编程。 全书分为预备篇、开始篇和加速篇三大部分,共9章。预备篇主要介绍一些学习PHP语言的预备知识以及PHP运行平台的架设;开始篇则较为详细地向读者介绍PKP语言的基本语法和常用函数,以及用PHP如何对MySQL数据库进行操作;加速篇则通过对典型实例的介绍来使读者全面掌握PHP。 本书
- 仅对 InnoDB 有效;MyISAM 必须配合
--lock-all-tables,会阻塞写入 - 务必搭配
--master-data=2,才能在 dump 文件里记录备份时刻的binlog filename和position,后续可用于恢复到从库或指定时间点 - 不要用
--all-databases直接备份系统库(如mysql、performance_schema),权限和时区信息可能引发恢复异常;单独处理更稳妥
物理备份推荐 Percona XtraBackup,但要注意版本兼容性
Percona XtraBackup 是目前最成熟的 MySQL 物理热备工具,支持增量备份、压缩、流式传输。但它对 MySQL 版本敏感:
-
xtrabackup 8.0只支持 MySQL 8.0+ 和 Percona Server 8.0+;不能用于 MySQL 5.7 - 备份时若启用
innodb_redo_log_encrypt或使用keyring插件,需额外配置密钥路径,否则恢复会失败 - 恢复前必须执行
xtrabackup --prepare,否则数据文件处于“未提交”状态,直接启动 mysqld 会报错InnoDB: Operating system error number 2 in a file operation
binlog 归档必须和备份联动,否则时间点恢复失效
只备份数据文件,没有 binlog,就只能恢复到备份那一刻,中间所有变更全丢。所以归档 binlog 不是可选项:
- 主库开启
log_bin、expire_logs_days(建议设为 7 天以上),并确保磁盘有足够空间存档 - 用
mysqlbinlog --read-from-remote-server定期拉取远程 binlog 到备份服务器,比单纯依赖本地文件更安全 - 恢复时先还原最近一次全备,再按顺序重放该备份点之后的所有 binlog(用
mysqlbinlog | mysql),最后用--stop-datetime或--stop-position截断到误操作前一刻
最容易被忽略的一点:备份脚本里如果没校验 SHOW MASTER STATUS 输出是否为空,或者没捕获 mysqldump 的退出码,一次静默失败就会让后续 binlog 归档失去上下文,整个 RPO(恢复点目标)就崩了。









