
mysqldump
mysqldump 介绍
mysqldump 是 MySQL 自带的一个命令行工具,用于逻辑备份。可以将数据库和表的结构,
以及表中的数据分别导出成:create database, create table, insert into 的 sql 语句。当然也可
以导出 存储过程,触发器,函数,调度事件。还原时执行这些语句即可将对应的数据还原。
mysqldump 的缺点是备份速度慢。在整个备份过程中,是单线程运行;备份出来的数据集要
恢复的话同样也是单线程运行,恢复速度也慢。
mysqldump 做备份时候可能出现性能抖动,mysqldump 是先从 buffer 中找想要备份的内容,
如果 buffer 没有,就需要访问磁盘中的数据文件,然后把数据调回内存,形成备份文件。当
把数据从磁盘调到内存时,有可能把内存里的热数据冲掉,这样就影响了我们对现有业务的访
问。因此,备份最好在业务较低时候做。
mysqldump 使用限制
使用 mysqldump 可对数据库进行导出,但也有一些限制:
1. 默认不导出 information_schema、performance_schema 或 sys 数据库,若导出,可
通过--databases 选项指定
2. 不导出 InnoDB create tablespace 语句
3. 导出 mysql 数据库时会重建 general_log 和 slow_query_log 表,但不导出数据
mysqldump 语法
mysqldump 语法如下:
语法 :
mysqldump [options] db_name [tables]
用于导出某个数据库或表,在导出的脚本中,没有 create database 和 use 语句,在重新导
入时,可指定数据库,若没有数据库,则需要提前进行创建。
mysqldump [options] --database/-B db1 [db2 db3...]
用于导出特定的数据库,--databses 选项指定后面所导出的数据库列表,以空格分割,在每
个数据库导出之前,在导出的脚本中会写 create database 和 use 语句,用于数据库的创建和
指定要操作的库,在导入时如果数据库不存在,则会进行创建。
mysqldump [options] --all-databases/-A
用于导出所有数据库,默认不会导出 performance_schema、sys、information_schema,
若需要导出时,需指定--databases 选项。
连接选项 :
-u, --user=name:指定用户名
-p, --password[=name]:指定密码
-h, --host=name:指定服务器 ip 或域名
-P, --port=#:指定连接端口
-S,--socket=name:指定使用 socket 进行连接
输出选项:
--add-drop-database:在每个数据库创建语句前加上 drop database 语句
--add-drop-table:在每个表创建语句前加上 drop table 语句 , 默认开启 ; 不开启 (--skip-
add-drop-table)
评论