标签:mysql学习
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
标签:mysql学习
原文地址:http://10170308.blog.51cto.com/10160308/1659780