OPTIONS
- --all-databases 备份所有库
- --databases db1,db2.... 备份指定一到多个数据库:
- db 备份单个数据库中的所有目标对象(不会自动创建库,只是备份库中的表、代码、存储过程、存储函数、触发器以及事件调度器等)
- db table1,table2... 备份指定的表
MyISAM存储引擎:最多支持温备,备份时要锁定所有要备份表(若是备份哪个表锁定哪个表,还原时各表时间点不一致)
- -x, --lock-all-tables 锁定所有库的所有表,读锁
- -l, --lock-tables 锁定指定库所有表
InnoDB存储引擎:支持温备和热备;
- --single-transaction 创建一个事务,基于此快照执行备份;必须加上这个选项才支持热备
- 在REPEATABLE-READ隔离级别,mysqldump连进数据库时看到的视图是一致的,都是启动事务那一刻的状态。在这种情况下,启动一个事务,备份的所有数据都是这个时间点的。
其它选项:
- -R, --routines 备份指定库的存储过程和存储函数;
- --triggers 备份指定库的触发器
- -E, --events 备份事件调度器
- --master-data[=#] 在备份的目标文件中记录一个CHANGE MASTER TO语句,记录备份的那一刻处于哪个二进制文件的哪个位置。
- mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1。
- 记录下来一个注释的CHANGE MASTER TO 语句,仅为我们参考使用,不打算用它来设定从服务器复制线程的启动通常就设置为2。
- --flush-logs 锁定表完成后,即进行日志刷新操作;