MYSQLDUMP的小结

mysqldump用于数据库备份

1)处于性能来说mysqldump比较适合innodb的备份,而MYISAM比较适合mysqlhotcopy


mysqldump备份数据有两种备份方式:把全表先放进缓存区再备份;一行一行备份(不经内存缓存区)

2)mysqldump --opt(-mysqldump自己默认--opt,它自动使能--quick)一行一行备份不占缓存区,取消这种模式用--skip-quick。

3)常用写法:

                          shell> mysqldump [options] db_name [tbl_name ...]
                           shell> mysqldump [options] --databases db_name ...
                           shell> mysqldump [options] --all-databases
4)常用选项:

 --opt(默认): 相当于添加了如下信息: --add-drop-table,--add-locks, --create-options, --disable-keys, -                        --extended-insert,--lock-tables, --quick,  --set-charset. 

--opt --skip-extended-insert --skip-quick:表示不备份extended-insert 和采用缓冲区其他opt自带的信息                                                                            都有。

--skip-opt --disable-keys --lock-tables:opt里的内容都没有,只有--disable-keys --lock-tables。


 --compact : 相当于添加了如下信息:--skip-add-drop-table,--skip-add-locks, --skip-comments, --skip-                        disable-keys,  --skip-set-charset options.

--dump-date(默认):在每一次备份后加评论(评论为备份日期),取消该默认请用:--skip-dump-                                                date


--flush-logs, -F:备份前保存好日志


--ignore-table=db_name.tbl_name:忽略表(或视图),不备份多个表,请重复使用该语句多次


--order-by-primary:以主键或者unique index的顺序来备份每一行


--master-data[=value](value默认是1):以这种方式可以用产生的那个改变主机的文件来设定主机的从                                                                            机,如果value是2,那个change master to只是信息没有实际                                                                             操作的作用,如果value是1,那么reload备份数据时change                                                                            master to 文件会起作用。(这里我还不是很懂哈,稍后补充哈)


--result-file=file_name, -r file_name:设定备份的目的文件,备份数据以覆盖的方式写入文件。


  --single-transaction:备份却不改变INNODB表的任何状态,其他类型的表状态或许改变。


 --where=‘where_condition‘, -w ‘where_condition‘:条件备份(常用于指定表的指定行备份)

                                                    例如: --where="user=‘jimf‘"
                                                                 -w"userid>1"
                                                                 -w"userid<1"


5)用法示例:

                            shell> mysqldump --all-databases --master-data=2 > all_databases.sql

       Or:

                           shell> mysqldump --all-databases --flush-logs --master-data=2
                                    > all_databases.sql





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。