mydumper/loader常用参数解释及使用,以及调整tidb数据库gc时间

# 使用正则: 只备份以 dev2*开头的数据库
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 -x dev2* --skip-tz-utc -o ./tidb_dev2_backup_20190814

# 使用正则: 过滤特定库,例如不备份mysql及test库
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 -x '^(?!(mysql|test))' --skip-tz-utc -o ./tidb_dev2_backup_20190814
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 -x '^(?!(mysql|test|INFORMATION_SCHEMA|PERFORMANCE_SCHEMA|tidb_loader))' --skip-tz-utc -o

# 备所有数据库
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 --skip-tz-utc -o ./tidb_dev2_backup_20190814


# 备所指定的数据库
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 -B dev2_dc_test --skip-tz-utc -o ./tidb_dev2_backup_20190814
#备份指定的多个库
./mydumper -h 177.168.1.34 -u root -p q1w2E -P 4000 -t 16 -F 64 -x uat2_*  --skip-tz-utc -o ./pfizer-uat-2019919/
./mydumper -h 177.168.1.54 -u root -p q1w2E -P 4000 -t 16 -F 64 -x pressure*  --skip-tz-utc -o

# 备所有数据库
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 --skip-tz-utc -o ./tidb_dev2_backup_20190814
# 备份以某些名称开头的数据库
stpfizer st库
./mydumper -h 177.168.1.53 -u root -p q1w2E -P 4000 -t 16 -F 64 -e -x '^(dev2_paas\.|dev2_paas_system\.|dev2_quartz\.|dev2_pfizer\.|dev2_pfizer_activiti\.)' --skip-tz-utc -o ./test

./mydumper -h 177.168.1.53 -u root -p q1w2E -P 4000 -t 16 -F 64 -e -x '^(dev2_hengrui\.|dev2_paas\.)' --skip-tz-utc -o

./bin/mydumper -h 127.0.0.1 -u root -P 4000 -r 10000 -t 4
===================
# 备所指定的数据库(-B dev2_pfizer) 的指定表(-T sys_user需要备份的表,名字用逗号隔开)
./mydumper -h 177.168.1.33 -u root -p q1w2E -P 4000 -t 16 -F 64 -B dev2_pfizer  -T sys_user --skip-tz-utc -o ./tidb_dev2_backup_20190814
./mydumper -h 177.168.1.53 -u root -p q1w2E -P 4600 -t 16 -F 64 -B dev2_pfizer  -T  dc_organization_master --skip-tz-utc -o ./
./loader -h 177.168.1.46 -u root -p 数据库密码 -P 3306 -t 32 -d ./backup_0/
./loader -h 177.168.1.47 -u root -p q1w2E -P 4000 -t 32 -d

mydumper 常用参数解释

-B, --database              要备份的数据库,不指定则备份所有库
-T, --tables-list           需要备份的表,名字用逗号隔开
-o, --outputdir             备份文件输出的目录
-s, --statement-size        生成的insert语句的字节数,默认1000000
-r, --rows         (常用)        将表按行分块时,指定的块行数,指定这个选项会关闭 --chunk-filesize
-F, --chunk-filesize        将表按大小分块时,指定的块大小,单位是 MB
-c, --compress              压缩输出文件
-e, --build-empty-files     如果表数据是空,还是产生一个空文件(默认无数据则只有表结构文件)
-x, --regex                 是同正则表达式匹配 'db.table'
-i, --ignore-engines        忽略的存储引擎,用逗号分割
-m, --no-schemas            不备份表结构
-d, --no-data               不导出表数据
-G, --triggers              导出触发器
-E, --events                导出事件
-R, --routines              导出存储过程
-k, --no-locks              不使用临时共享只读锁,使用这个选项会造成数据不一致
-l, --long-query-guard      设定阻塞备份的长查询超时时间,单位是秒,默认是60秒(超时后默认mydumper将会退出)
-K, --kill-long-queries     kill掉长时间执行的查询,备份报错:Lock wait timeout exceeded; try restarting transaction

-D, --daemon                启用守护进程模式,守护进程模式以某个间隔不间断对数据库进行备份
-I, --snapshot-interval     dump快照间隔时间,默认60s,需要在daemon模式下
-L, --logfile               使用的日志文件名(mydumper所产生的日志), 默认使用标准输出
-h, --host                  连接的主机名
-u, --user                  备份所使用的用户
-p, --password              密码
-P, --port                  端口
-S, --socket                使用socket通信时的socket文件
-t, --threads               开启的备份线程数,默认是4
-C, --compress-protocol     压缩与mysql通信的数据
-V, --version               显示版本号
-v, --verbose               输出信息模式, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认为 2
--lock-all-tables           锁全表,代替FLUSH TABLE WITH READ LOCK
--tz-utc                    备份的时候允许备份Timestamp,这样会导致不同时区的备份还原会出问题,默认禁用
--skip-tz-utc               同上
--use-savepoints            使用savepoints来减少采集metadata所造成的锁时间,需要 SUPER 权限
--success-on-1146           如果表不存在,则不增加错误计数和警告而不是关键错误
--less-locking              减少对InnoDB表的锁施加时间(这种模式的机制下文详解)

loader常用参数

-L string
      log 级别设置,可以设置为 debug, info, warn, error, fatal (默认为 "info")
  -P int
      TiDB/MySQL 的端口 (默认为 4000)
  -V
      打印 loader 版本
  -c string
      指定配置文件启动 loader
  -checkpoint-schema string
      checkpoint 数据库名,loader 在运行过程中会不断的更新这个数据库,在中断并恢复后,会通过这个库获取上次运行的进度 (默认为 "tidb_loader")
  -d string
       需要导入的数据存放路径 (default "./")
  -h string
       TiDB 服务 host IP  (default "127.0.0.1")
  -p string
      TiDB 账户密码
  -status-addr string
      Prometheus 可以通过该地址拉取 Loader metrics, 也是 Loader 的 pprof 调试地址 (默认为 ":8272")。
  -t int
      线程数 (默认为 16). 每个线程同一时刻只能操作一个数据文件。
  -u string
      TiDB 的用户名 (默认为 "root")

如果 mydumper 出现以下报错:
** (mydumper:27528): CRITICAL **: 13:25:09.081: Could not read data from testSchema.testTable: GC life time is shorter than transaction duration, transaction starts at 2019-08-05 21:10:01.451 +0800 CST, GC safe point is 2019-08-05 21:14:53.801 +0800 CST

需要调整GC时间
就再执行两步命令:
1、执行 mydumper 命令前,查询 TiDB 集群的 GC 值并使用 MySQL 客户端将其调整为合适的值:

select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like "tikv_gc%";
# 或
SELECT * FROM mysql.tidb WHERE VARIABLE_NAME = 'tikv_gc_life_time';
update mysql.tidb set VARIABLE_VALUE = '720h' where VARIABLE_NAME = 'tikv_gc_life_time';

2、执行 mydumper 命令后,将 TiDB 集群的 GC 值恢复到第 1 步中的初始值:

update mysql.tidb set VARIABLE_VALUE = '10m' where VARIABLE_NAME = 'tikv_gc_life_time';

TIDB官方参考

如果报如下错
** (mydumper:4579): CRITICAL **: 14:07:32.660: There are queries in PROCESSLIST running longer than 60s, aborting dump,
        use --long-query-guard to change the guard value, kill queries (--kill-long-queries) or use
        different server for dump

添加参数-l 尽量给的大一点

./mydumper -h 172.168.181.54 -u root -p q1w2E#R$ -P 4000 -c -t 16 -r 5000 -x '^(?!(mysql|test|INFORMATION_SCHEMA|PERFORMANCE_SCHEMA|METRICS_SCHEMA|tidb_loader))' --skip-tz-utc -l 7200000  -o leo/

报错参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值