mydumper的参数解析
1.过滤相关
-B,--database
备份指定库。可指定多个库,中间需用逗号隔开。
-T,--tables-list
备份指定表,表必须是 database.table 的形式。可指定多张表,中间需用逗号隔开。
-0,--omit-from-file
忽略文件中指定表的备份。
文件中每个表占据一行,表必须是 database.table 的形式
-X,--regex
指定库表备份,支持正则表达式。
在执行全库备份时,如果不想备份 sys 库,可用 --regex 过滤。
-i,--ignore-engines
忽略指定存储引擎表的备份。可指定多个存储引擎,中间需用逗号隔开--routines--triggers、--events、
分别用于备份触发器、定时器、存储过程及函数。
-W,--no-views
不备份视图。
-m,--no-schemas
不备份表结构。
-d,--no-data
不备份数据。
--where
只导出满足 WHERE 条件的数据。
2.分片选项
-r,--rowS
使用该选项,mydumper 会将表分成多个 chunk 进行并行备份,否则只进行表级别的并行备份。当然,并不是所有的表都能进行 chunk 级别的并行备份。
-F,--chunk-filesize
对于不能进行并行备份的表,默认情况下,该表的数据只会写到一个文件中。在恢复时,也只能启动一个线程来恢复。对于这些表,我们可以使用 --chunk-filesize,将单表数据写到多个文件中,这样在恢复时,myloader就可以启动多个线程进行并行恢复。
--max-rows
限制单个 chunk 的最大行数,默认为 1000000。
3.事务相关
-k,--no-locks
备份过程中不加任何锁。
--no-backup-locks
Percona Server支持备份锁。使用 mydumper 备份 Percona Server 时,默认会使用备份锁来代替全局读锁。若指定该选项,则会禁用备份锁。
--less-locking
同样会加全局读锁,只不过全局读锁会在子线程对非 InnoDB 表加完表锁后释放,而表锁是在备份完非InnoDB表后释放。
--use-savepoints
同mysqldump一样,在每个表备份之前设置 SAVEPOINT,可提高 DDL的并发性。只不过如果设置 --rows,则会禁用 --use-savepoints。
--lock-all-tables
使用LOCK TABLE ·· READ 命令加表锁来代替全局读锁,在备份完非 InnoDB 表后释放。
--trx-consistency-only
同样会加全局读锁,只不过释放的时间点是在各个子线程初始化(设置事务隔离级别,开启事务致性快照)之后。这样只能保证 InnoDB 表的一致性。
4.导出选项
默认情况下,备份结果以 INSERT INTO tbl_name VALUES (value_list),(value_list) ...的形式记录在文件中。相关的参数如下。
-N,--insert-ignore
使用INSERT IGNORE 导出数据。
--complete-insert
在INSERT操作中指定列名。
-s, --statement-size
一个INSERT 操作的最大长度。不指定该参数,则默认为 1000000,单位是字节。
除此之外,还可将备份集以 CSV 格式保存。这个时候,需指定 --csv,该参数会自动开启 --load-data,并将导出格式设置为 sv。
如果要保存为其他格式,需设置 --fields-terminated-by、--fields-enclosed-by、--fields-escaped-by、--lines-starting-by、--lines-terminated-by 。
5.其他选项
-a,--ask-password
提示输人用户密码。这样,就不用通过 -p 显式设置密码。相对而言,通过 -a 输入密码更安全。
-C,--compress
压缩备份。
--stream
流式备份。
-t,--threads
指定备份线程的数量,默认为 4。
-L, --logfile
将日志输出到指定文件。默认是输出到终端。
-D, --daemon,-I, --snapshot-interval
以后台进程的方式运行 mydumper。启动后,会在备份目录中生成两个子目录:0和 1。备份集会依次放到这两个目录中,即第一次的备份集会放到 0目录下,第二次的备份集会放到 1目录下,第三次又重新放到 0目录下,依此类推。备份的时间间隔由 --snapshot-interval 参数指定,默认为 60,单位是分钟。子目录的数量由 --snapshot-count 决定,默认为 2。
-U,--updated-since
只备份最近几天修改过的表。
判断的依据是 information_schema.tables 表中的 pdate_time 字段,没有备份的表会写到备份目录的 not_updated tables 文件中。
浙公网安备 33010602011771号