## 前情提要 ## 实验环境 此次实验的环境如下 - MySQL 5.7.25 - Redhat 6.10 - binlog模式采用row模式 前面的一些章节我们对mysqldump常用命令进行了讲解 这个专题的内容为mysqlbinlog命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 这节内容讲使用mysqldump备份MySQL 下节使用mysqlbinlog 恢复MySQL ## 1. 备份策略 首先我们设定一个备份策略 ### 1.1 完全备份 首先我们每周日零点进行一次数据库的全备 ``` mysqldump -h127.0.0.1 -usystem -p123456 --single-transaction --flush-logs --set-gtid-purged=OFF --all-databases --master-data=2 --triggers --events --routines >/tmp/backup_sunday_0_AM.sql ``` 上述命令备份了所有的数据库,包括触发器,存储过程等 这里可以加上--flush-logs强制刷新日志 ### 1.2 增量备份 其次我们除了周日,每日零点对数据库进行增量备份 采用的方法是进行二进制日志的备份 备份前刷新下日志 也可直接拷贝 具体介绍请看上期内容 ``` mysqladmin -S /data/mysql/data/mysql.sock -usystem -ppassword flush-logs mysqlbinlog --read-from-remote-server --host 11.12.14.29 --user system --password --port 3306 --protocol=tcp --raw mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 --result-file=/tmp/ ``` 这样我们就有了一个完整的备份计划 ## 2. 参考链接 [https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html](https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html) 好了 今天的内容就说到这里,下节再见