mysql 备份

使用 mysqldump 方式备份

man mysqldump 可以查看具体的命令是什么样的

It dumps one or more MySQL databases for backup or transfer to another SQL server. The mysqldump command can also generate output in CSV, other delimited text, or XML format.

 

文档里面说:

performance 

1.windows 的powershell 导出来的是utf-16编码的 所有在bash下面可能会出问题 [我用的是mac 没有在win7 下面试过] 所以导出的时候加 --result-file=dump.sql

2.性能不是太好备份时间长,restore的时候,I/O读写 index要重建

3. 大规模备份和恢复,物理备份直接复制原来的格式,将会在备份的时候恢复的更快

  1)Innodb 或者 Innodb 和MyISAM 混合表考虑使用 mysqlbackup 命令 也可以使用在纯 MyISAM

  2)如果是纯MyISAM 表考虑使用mysqlhotcopy

使用

4. 一行一行备份 使用 --quick (默认) 整张表缓存之后(memory buffer 之后)使用 --skip-quick

 新版本mysql 备份到来版本 使用 --skip-opt option  而不是 --opt 或者 --extended-insert option

 

 

语法 备份db 多个db 所有db

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

 

参数

只看常用的

-p password

-P port

--protocol 使用的协议

-u user

--databases

--all-databases

--ignore-table=tablename 忽略的table

--no-data/-d 只有结构不带数据

--where  可以筛选之后导出筛选之后的

--single-transaction 单事件 (这个之后再写随笔详细了解)

 

备份sql

1. 备份一个db

mysqldump -u user -p db > db.sql

2.备份一个table

mysqldump -u user -p db  table > db_table.sql

导入 

mysql -uroot -p db < db.sql

 

备份所有db

 

mysqldump -uroot -p --all-databases > all_db.sql

 

posted @ 2017-09-01 15:03  MartinDing  阅读(109)  评论(0编辑  收藏  举报