mysqldump
$MYSQLDUMP
-u$db_user 用户
-p$db_passwd 密码
--all-databases 备份所有库
--opt 包含下面一系列参数,--opt是默认使用的选项
--add-drop-table 在每一条CREATE TABLE之前写入DROP TABLE命令
--add-locks 在备份时进行锁表,备份完释放表锁。这样可以避免快速写入数据造成脏读
--create-options 在CREATE TABLE语句包含所有表选项
--disable-keys 在每一个表众的INSERT都会使用 /*!40000 ALTER TABLE tbl_name DISABLE KEYS */ /*!40000 ALTER TABLE tbl_name DISABLE KEYS */ 包起来。这样可以使还原时速度更快,因为索引信息在所有INSERT操作之后才会建立,这个选项只会影响MyISAM表nonunique索引,其他引擎不会生效
--lock-tables 长INSERT,多row一起批量INSEET,提高导入速度。
--quick 在备份数据量比较大的表时有用,将数据读入内存,在输出完成之前存在内存缓冲区。
--set-charset 在输出的文件中添加SET NAMES 指定
########################################
--events 导出事件
--triggers 会在导出每个表时都导出触发器,不过需要具有TIGGER的权限,此选项默认启用。
--routines 导出存储过程以及自定义函数。
--default-character-set=utf8 设置字符格式
--master-data=2 注释change master to,默认为“1”; slave上备份时候会执行
--single-transaction 保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他回话已经提交了的数据。
--complete-insert 在insert语句时包含列名。
--quote-names 使用“`”包围数据库名、表名、列名等标识符。若使用了ANSI_QUOTES则用“””包围
--log-error=$backup_dir/mysqldump$time.log 错误日志
| $GZIP -9 >"$backup_dir/backup.0/$time.all_mysql.gz"