mydumper/loader安装及常用参数解释及使用

安装

下载 TiDB 企业版工具集 (Linux)
1、下载 tool 压缩包:

wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.tar.gz &&
wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.sha256

2、检查文件完整性,返回 ok 则正确:

sha256sum -c tidb-enterprise-tools-latest-linux-amd64.sha256

3、解开压缩包:

tar -xzf tidb-enterprise-tools-latest-linux-amd64.tar.gz &&
cd tidb-enterprise-tools-latest-linux-amd64

4、使用案例
定时备份数据库数据(以uat2_*开头的数据库,-x正则表达式)

#!/bin/bash

## 所有路径都要写绝对路径
# 执行数据库备份(/home/backup——mydumper工具目录)(/home/backup/mysql_uat51_backup_$(date +%Y%m%d)/——要备份的文件名字)
/home/backup/mydumper -h IP地址 -u root -p 密码 -P 3306 -t 16 -F 64 -x uat2_* --skip-tz-utc -o /home/backup/mysql_uat51_backup_$(date +%Y%m%d)/

# 删除5天前的备份文件(/home/backup备份文件路径)
rm -rf /home/backup/mysql_uat51_backup_$(date -d "5 days ago" +%Y%m%d)/

# 添加到定时任务命令crontab  -e

使用语句
定时每天凌晨一点

0 1 * * * /home/backup/mysql_uat51_backup.sh
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

使用

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

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

# 备所有数据库
./mydumper -h 192.168.192.33 -u paas -p paas@202033   -P 4000 -t 2 -l 72000 --skip-tz-utc -o juan/

# 备所指定的单个数据库
./mydumper -h 192.168.192.33 -u paas -p paas@202033   -P 4000 -t 2 -r 50000 -l 72000 -B dev2_viatris --skip-tz-utc -o juan/

# 备份以某些名称开头的数据库
./mydumper -h 192.168.1.53 -u root -p q1w2E -P 4000 -t 2 -e -x '^(dev2_paas\.|dev2_paas_system\.|dev2_quartz\.|dev2_pfizer\.|dev2_pfizer_activiti\.)' --skip-tz-utc -o ./test

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

===================
# 备所指定的数据库(-B dev2_pfizer) 的指定表(-T 需要备份的表,名字用逗号隔开)
./mydumper -h 192.168.1.33 -u root -p q1w2E -P 4000 -t 2 -B dev2_pfizer  -T sys_user,dc_organization_master --skip-tz-utc -o ./tidb_dev2_backup_20190814

# 执行数据库备份并压缩,-c
./mydumper -h 192.168.180.33 -u root -p q1w2E -P 4000 -c -t 2 -r 5000 -x '^(?!(mysql|test|INFORMATION_SCHEMA|PERFORMANCE_SCHEMA|tidb_loader))' --skip-tz-utc -o /home/tidb/tidb-tools/tidb-enterprise-tools-latest-linux-amd64/bin/backup/tidb_dev2_backup_$(date +%Y%m%d)/

# 还原数据库
./loader -h 192.168.1.46 -u root -p 数据库密码 -P 3306 -t 32 -d ./backup_0/
./loader -h 192.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                   	 参数是 mysqldump 的默认参数,会使得 mysqldump 的导出文件的顶部加上一个设置时区的语句 SET TIME_ZONE=’+00:00’ ,这			   样当导出 timestamp 时间戳字段时,会把在服务器设置的当前时区下显示的 timestamp 时间值转化为在格林威治时间下显示的时间。比如我们数据库采用北京时间东八区,mysqldump 导出的文件当中显示的 timestamp 时间值相对于通过数据库查询显示的时间倒退了8个小时。

--skip-tz-utc           不使用格林威治时间,而使用当前 mysql 服务器的时区导出,这样导出的数据中的 timestamp 时间值也和表中查询出来相同。
--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")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值