mysqlpump和mysqldump很多参数一样,这里讲一讲不一样的部分
--add-drop-user 在CREATE USER语句之前增加DROP USER。 注意:这个参数需要和--users一起使用,否则不生效
--compress-output=name 使用LZ4或者ZLIB压缩算法压缩所有输出文件
解压方式如下:
解压命令 压缩文件 解压后的文件
LZ4 lz4_decompress a.LZ4 a.sql
ZLIB zlib_decompress a.ZLIB a.sql
--default-parallelism=# 指定处理并行的线程数,为0则表示不并行,默认值是2
当前表结构
备份文件中的建表语句
可以看到建表语句中含有创建主键的语句,但没有包含创建索引的语句,这有由于defer-table-indexes参数影响的,该参数默认开启,可以通过--skip-defer-table-indexes禁用
--defer-table-indexes:延迟创建索引,直到所有数据都加载完之后,再创建索引,默认开启。若关闭则会和mysqldump一样:先创建一个表和所有索引,再导入数据,因为在加载还原数据的时候要维护二级索引的开销,导致效率比较低。关闭使用参数:--skip--defer-table-indexes。
--exclude-databases:备份排除该参数指定的数据库,多个用逗号分隔。类似的还有--exclude-events、--exclude-routines、--exclude-tables、--exclude-triggers、--exclude-users
--include-databases:指定备份数据库,多个用逗号分隔,类似的还有--include-events、--include-routines、--include-tables、--include-triggers、--include-users
--parallel-schemas=[N:]db_list:指定并行备份的库,多个库用逗号分隔,如果指定了N,将使用N个线程的地队列,如果N不指定,将由 --default-parallelism才确认N的值,可以设置多个--parallel-schemas
--skip-definer:忽略那些创建视图和存储过程用到的 DEFINER 和 SQL SECURITY 语句,恢复的时候,会使用默认值,否则会在还原的时候看到没有DEFINER定义时的账号而报错。
通过上图可以看到二者的区别
--skip-dump-rows:只备份表结构,不备份数据,即-d。注意:mysqldump支持--no-data,mysqlpump不支持--no-data
可以看到结果没有数据
--users:备份数据库用户,备份的形式是CREATE USER...,GRANT...,只备份数据库账号可以通过如下命令
--watch-progress:定期显示进度的完成,包括总数表、行和其他对象。该参数默认开启,用--skip-watch-progress来关闭。
通过上图可以看到二者的区别,后者没有显示备份的进度