mysqldump命令备份数据的原理:就是把数据从MySQL库里以逻辑的sql语句形式直接输出或者生成备份的文件的过程。(逻辑备份)
用法:mysqldump -u 用户名 -p 数据库名 表名 > 备份的文件名.sql
1. mysqldump 加-B参数的作用是增加创建数据库和连接数据库的命令。即如下两条语句:
1 CREATE DATABASE `db_name`;
2
3 USE `db_name`;
2. 优化备份文件大小,减少输出注释,让容量更少,适合调试(useful for debugging)
利用mysqldump的--compact参数优化下备份结果
--compact Give less verbose output (useful for debugging). Disables
structure comments and header/footer constructs. Enables
options --skip-add-drop-table --skip-add-locks
--skip-comments --skip-disable-keys --skip-set-charset.
3. 指定压缩命令压缩备份的MySQL数据
4. 分库备份意义:有时一个企业的数据库里会有很多个库,但是出问题时的很可能时某一个库,如果在备份时把所有的库都备份成一个数据文件的话,恢复某一个库的数据时就比较麻烦。
总结:mysqldump关键参数说明 mysqldump --help
- -B 指定多个库,增加建库语句和use语句;
- --compact去掉注释,适合调试,生产环境中不用;
- -A 备份所有库;
- -F 刷新binlog日志;
- -x, --lock-all-tables 锁表
- --master-log 增加binlog日志文件名及对应位置点。
- -l, --lock-tables Lock all tables for read
- -d 只备份表结构
- -t 只备份数据
- InnoDB表在备份时,通常启用选项 --single-transaction来保证备份的一致性,实际上,它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交的数据。