[MySQL] 用mysqldump制作文本备份
在使用mysqldump备份MySQL时,备份文件是SQL格式的文本文件,它由一系列create table和insert语句组成。恢复时,只要把该SQL文件作为mysql程序的输入即可,如下所示:
--opt Same as --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, and --disable-keys. Enabled by default, disable with --skip-opt.从什么的解释可以知道--opt将启用多个能加快速度的选项,用于备份过程的优化,它是默认启动的,一般建议启动它,--skip-opt选项可以禁用它。
但是这里需要特别注意的是:--opt选项为了加快备份速度,会在备份表上加上读锁,将导致其它用户无法修改,所以在业务繁忙时,千万不要启用该选项备份!
下面解释下--opt启用的这几个选项:
--add-drop-table:表示在每条create table语句前加上drop table if exists语句;
--add-locks:表示在生成的insert语句前后加上锁命令;
--extended-insert:表示生成一次插入多行的insert语句
--lock-tables:表示在备份表上加上读锁;
2)--single-transaction
在导出innodb和Falcon表时,最好加上该选项,可以确保得到一个稳定的备份。
3)--no-create-info --no-data
前面提到过,默认情况下,mysqldump导出的文本文件中包含create table和insert into语句,如果加上--no-create-info表示不需要create table语句,同理,--no-data表示不需要insert into语句。
4)--routines --triggers --events
默认情况下,只有触发器包含在导出的文本文件里,如果你需要导出其它的对象,可以加上相应的选项。
这三个选项还有相应的--skip形式,表示把它排除在导出文件里。