【SOP 系列 36】数据库备份与恢复(TiDB)

感谢 @会飞的土拨鼠 的分享

备份工具

1.工具下载地址

# 下载链接中的 {version} 为 Dumpling 的版本号。例如,v5.2.2 版本的下载链接为
https://download.pingcap.org/tidb-toolkit-v5.2.2-linux-amd64.tar.gz

2.工具内容详情

[root@ncayu8847 tidb-toolkit-v5.2.2-linux-amd64]# cd bin/
[root@ncayu8847 bin]# ll
总用量 535180
-rwxr-xr-x 1 root root 115875760 10月 29 11:26 br
-rwxr-xr-x 1 root root  79583835 10月 29 11:26 dumpling
-rwxr-xr-x 1 root root  12782832 10月 29 11:26 mydumper
-rwxr-xr-x 1 root root  17258378 10月 29 11:26 pd-tso-bench
-rwxr-xr-x 1 root root  71600963 10月 29 11:26 sync_diff_inspector
-rwxr-xr-x 1 root root 129306304 10月 29 11:26 tidb-lightning
-rwxr-xr-x 1 root root 121594400 10月 29 11:26 tidb-lightning-ctl

官方推荐使用br工具进行数据备份与恢复,由于环境限制,目前使用dumpling工具进行备份,使用tidb-lightning工具进行数据恢复。

数据库备份dumpling

备份命令

# 备份命令:
./dumpling -P 4000 -h 192.168.70.133 -u root -p ncayu123456 --filetype sql -B ncayu_test -t 1 --loglevel warn -F 64MiB -o /data1/tidb_tool/backup/ncayu_test1130
# 参数释义:
-P  端口
-h  数据库IP地址
-u  数据库用户
-p  数据库密码
--filetype sql  备份文件以sql类型保存
-B  指定备份的数据库名
-t  用于指定导出的线程数
--loglevel 输出log日志等级
日志级别 {debug,info,warn,error,dpanic,panic,fatal}	默认是"info"
-F 64MiB  指定备份单个sql文件大小
-o /data1/tidb_tool/backup/ncayu_test1130  指定备份文件存储路径

数据库恢复tidb-lightning

1.启动tidb-lightning

官方建议运行 tidb-lightning。如果直接在命令行中用 nohup 启动程序,可能会因为 SIGHUP 信号而退出,建议把 nohup 放到脚本里面

方法一、先启动程序,在页面去添加导入配置 
mkdir /tmp/tidb-lightning

#!/bin/bash
nohup ./tidb-lightning --server-mode --status-addr :8289 > /tmp/tidb-lightning/lightning.log 2>&1 &
 
方法二、直接将配置文件修改好进行启动
#!/bin/bash
nohup ./tidb-lightning -config tidb-lightning.toml > nohup.out &

2.tidb-lightning.toml文件内容

[lightning]

# 日志
level = "info"
file = "/data1/tidb_tool/backup/push_log.log"

#[checkpoint]
#enable = true
# 存储断点的数据库名称。
#schema = "tidb_lightning_checkpoint"
# 存储断点的方式。
#  - file:存放在本地文件系统。
#  - mysql:存放在兼容 MySQL 的数据库服务器。
#driver = "file"

[tikv-importer]
# backend 设置为 local 模式
backend = "local"
# 设置本地临时存储路径
sorted-kv-dir = "/tmp/sorted-kv-dir"

[mydumper]
# Mydumper 源数据目录。
data-source-dir = "/data1/tidb_tool/backup/ncayu_test1201"

[tidb]
# 目标集群的信息。tidb-server 的监听地址,填一个即可。
# 这里注意,需要使用TiDB管理后台的 Cluster Info 中的 TiDB IP 地址
host = "192.168.70.133"
port = 4000
user = "root"
password = "ncayu123456"
# 表架构信息在从 TiDB 的“状态端口”获取。
status-port = 10080
# pd-server 的地址,填一个即可
# 这里注意,需要使用TiDB管理后台的 Cluster Info 中的 PD 信息
pd-addr = "192.168.70.133:2379"

tidb-lightning.toml文件中,对于不同的tidb数据库,需要修改对应数据库的的信息,还有数据内容的路径。

3.调整TiDB集群的GC时间

如果数据量很大,最好在导入前将gc(垃圾回收时间)改长

#调整TiDB集群的GC时间
SELECT * FROM mysql.tidb WHERE VARIABLE_NAME = 'tikv_gc_life_time';
update mysql.tidb set VARIABLE_VALUE = '10h' where VARIABLE_NAME = 'tikv_gc_life_time';
#导入完成后改回原值
update mysql.tidb set VARIABLE_VALUE = '10m' where VARIABLE_NAME = 'tikv_gc_life_time';

4.注意lightning异常退出情况

#如果 tidb-lightning 异常退出,集群可能仍处于“导入模式” (import mode),该模式不适用于生产环境。此时可执行以下命令查看当前使用的模式:(工具拷贝到中控机执行下面命令)
tidb-lightning-ctl --fetch-mode
#可执行以下命令强制切换回“普通模式” (normal mode):
tidb-lightning-ctl --switch-mode=normal

5.导入完成

导入完毕后,TiDB Lightning 会自动退出。若导入成功,日志的最后一行会显示

tidb lightning exit。

数据导入过程中的部分日志

1.nohup.out 文件

[root@ncayu618 bin]# tail -f nohup.out 
Verbose debug logs will be written to /data1/tidb_tool/backup/push_log.log

+---+------------------------------------------------------------------------------------------------+-------------+--------+
| # | CHECK ITEM                                                                                     | TYPE        | PASSED |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 1 | Source csv files size is proper                                                                | performance | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 2 | checkpoints are valid                                                                          | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 3 | table schemas are valid                                                                        | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 4 | Cluster is available                                                                           | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 5 | Lightning has the correct storage permission                                                   | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 6 | local disk resources are rich, estimate sorted data size 7.689GiB, local available is 45.29GiB | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+
| 7 | Cluster capacity is rich, capacity is 2.402TiB, we need 23.07GiB                               | critical    | true   |
+---+------------------------------------------------------------------------------------------------+-------------+--------+

2.push_log.log日志文件

[2021/12/01 16:34:40.805 +08:00] [INFO] [restore.go:1221] ["add back PD leader&region schedulers"]
[2021/12/01 16:34:40.805 +08:00] [INFO] [restore.go:1224] ["cleanup task metas"]
[2021/12/01 16:34:42.973 +08:00] [INFO] [restore.go:1173] ["cancel periodic actions"] [do=true]
[2021/12/01 16:34:42.974 +08:00] [INFO] [restore.go:1038] ["switch to normal mode"]
[2021/12/01 16:34:43.310 +08:00] [WARN] [meta_manager.go:843] ["there are unfinished table in table meta table, cleanup skipped."]
[2021/12/01 16:34:43.310 +08:00] [INFO] [restore.go:1488] ["skip full compaction"]
[2021/12/01 16:34:43.318 +08:00] [INFO] [restore.go:1660] ["clean checkpoints start"] [keepAfterSuccess=false] [taskID=1638344968777845215]
[2021/12/01 16:34:43.319 +08:00] [INFO] [restore.go:1667] ["clean checkpoints completed"] [keepAfterSuccess=false] [taskID=1638344968777845215] [takeTime=105.15µs] []
[2021/12/01 16:34:43.319 +08:00] [INFO] [restore.go:431] ["the whole procedure completed"] [takeTime=45m14.509755009s] []
[2021/12/01 16:34:43.320 +08:00] [INFO] [main.go:93] ["tidb lightning exit"]
[2021/12/01 16:34:43.320 +08:00] [INFO] [checksum.go:468] ["service safe point keeper exited"]

2 个赞

谢谢你啦,嘿嘿

感谢你的贡献

lightning做local导入时,您配置的存储空间大小是如何评估的呢?

为什么配置完成后,执行命令后,也没有报错,也没有开始导入数据呢?
执行语句 tiup tidb-lightning -config lightning.toml --server-mode --status-addr :8290
前台 + toml文件提交后,没任何动静,后台的日志也没报错
配置如下:
[lightning]
level = “info”
file = “tidb-lightning.log”
server-mode = true
status-addr = ‘:8290’
check-requirements = true

[mydumper]
data-source-dir = “/data”

[tikv-importer]
backend = “local”
duplicate-resolution = ‘remove’
sorted-kv-dir = “./some-dir”

[tidb]
host = “192.168.80.201”
port = 4000
user = “root”
status-port = 10080
pd-addr = “192.168.80.201:2379”
log-level = “error”
日志如下:
[root@localhost tidb-community-toolkit-v6.5.3-linux-amd64]# cat tidb-lightning.log
[2023/09/06 02:48:02.725 -07:00] [INFO] [lightning.go:266] [“starting HTTP server”] [address=“[::]:8290”]
[2023/09/06 02:48:02.725 -07:00] [INFO] [lightning.go:283] [“Lightning server is running, post to /tasks to start an import task”] [address=“[::]:8290”]
[2023/09/06 02:48:23.750 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/tasks]
[2023/09/06 02:48:23.750 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/tasks] [status=200] [body=“{"current":null,"queue":[]}\n”] [takeTime=161.62µs] []
[2023/09/06 02:48:23.751 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/progress/task]
[2023/09/06 02:48:23.752 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/pause]
[2023/09/06 02:48:23.752 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/pause] [status=200] [body=“{"paused":false}”] [takeTime=11.887µs] []
[2023/09/06 02:48:23.753 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/progress/task] [status=200] [] [takeTime=1.432538ms] []
[2023/09/06 02:49:30.381 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=POST] [url=/tasks]
[2023/09/06 02:49:30.381 -07:00] [INFO] [lightning.go:757] [“received task config”] [content=“[lightning]\n# 日志\nlevel = "info"\nfile = "tidb-lightning.log"\nmax-size = 128 # MB\nmax-days = 28\nmax-backups = 14\nserver-mode = true\nstatus-addr = ‘:8290’\n\n# 启动之前检查集群是否满足最低需求。\ncheck-requirements = true\n\n[mydumper]\n# 本地源数据目录或外部存储 URL\ndata-source-dir = "/data"\n\n[tikv-importer]\n# 导入模式配置,设为 local 即使用 Physical Import Mode\nbackend = "local"\n\n# 冲突数据处理方式\nduplicate-resolution = ‘remove’\n\n# 本地进行 KV 排序的路径。\nsorted-kv-dir = "./some-dir"\n\n# 限制 TiDB Lightning 向每个 TiKV 节点写入的带宽大小,默认为 0,表示不限制。\n# store-write-bwlimit = "128MiB"\n\n[tidb]\n# 目标集群的信息。tidb-server 的地址,填一个即可。\nhost = "192.168.80.201"\nport = 4000\nuser = "root"\n# 设置连接 TiDB 的密码,可为明文或 Base64 编码。\npassword = ""\n# 必须配置。表结构信息从 TiDB 的“status-port”获取。\nstatus-port = 10080\n# 必须配置。pd-server 的地址,填一个即可。\npd-addr = "192.168.80.201:2379"\n# tidb-lightning 引用了 TiDB 库,并生成产生一些日志。\n# 设置 TiDB 库的日志等级。\nlog-level = "error"\n\n\n”]
[2023/09/06 02:49:30.383 -07:00] [WARN] [config.go:1070] [“currently only per-task configuration can be applied, global configuration changes can only be made on startup”] [“global config changes”=“[lightning.level,lightning.file,lightning.max-size,lightning.max-days,lightning.max-backups,lightning.server-mode,lightning.status-addr,tidb.log-level]”]
[2023/09/06 02:49:30.385 -07:00] [WARN] [config.go:1070] [“currently only per-task configuration can be applied, global configuration changes can only be made on startup”] [“global config changes”=“[lightning.level,lightning.file,lightning.max-size,lightning.max-days,lightning.max-backups,lightning.server-mode,lightning.status-addr,tidb.log-level]”]
[2023/09/06 02:49:30.385 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=POST] [url=/tasks] [status=200] [body=“{"id":1693993770385294614}\n”] [takeTime=4.099549ms] []
[2023/09/06 02:49:30.386 -07:00] [INFO] [info.go:49] [“Welcome to TiDB-Lightning”] [release-version=v7.2.0] [git-hash=9fd5f4a8e4f273a60fbe7d3848f85a1be8f0600b] [git-branch=heads/refs/tags/v7.2.0] [go-version=go1.20.5] [utc-build-time=“2023-06-27 14:58:41”] [race-enabled=false]
[2023/09/06 02:49:30.386 -07:00] [INFO] [lightning.go:426] [cfg] [cfg=“{"id":1693993770385294614,"lightning":{"table-concurrency":6,"index-concurrency":2,"region-concurrency":8,"io-concurrency":5,"check-requirements":true,"meta-schema-name":"lightning_metadata","max-error":{"type":0,"conflict":9223372036854775807},"max-error-records":100,"task-info-schema-name":"lightning_task_info"},"tidb":{"host":"192.168.80.201","port":4000,"user":"root","status-port":10080,"pd-addr":"192.168.80.201:2379","sql-mode":"ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER","tls":"false","security":{"ca-path":"","cert-path":"","key-path":"","redact-info-log":false},"max-allowed-packet":67108864,"distsql-scan-concurrency":15,"build-stats-concurrency":20,"index-serial-scan-concurrency":20,"checksum-table-concurrency":2,"vars":null},"checkpoint":{"schema":"tidb_lightning_checkpoint","driver":"file","enable":true,"keep-after-success":"remove"},"mydumper":{"read-block-size":65536,"batch-size":0,"batch-import-ratio":0,"source-id":"","data-source-dir":"file:///data","character-set":"auto","csv":{"separator":",","delimiter":"\"","terminator":"","null":["\\N"],"header":true,"header-schema-match":true,"trim-last-separator":false,"not-null":false,"backslash-escape":true,"escaped-by":"\\"},"max-region-size":268435456,"filter":[".","!mysql.","!sys.","!INFORMATION_SCHEMA.","!PERFORMANCE_SCHEMA.","!METRICS_SCHEMA.","!INSPECTION_SCHEMA."],"files":null,"no-schema":false,"case-sensitive":false,"strict-format":false,"default-file-rules":true,"ignore-data-columns":null,"data-character-set":"binary","data-invalid-char-replace":"�"},"tikv-importer":{"addr":"","backend":"local","on-duplicate":"","max-kv-pairs":4096,"send-kv-pairs":32768,"send-kv-size":16384,"compress-kv-pairs":"","region-split-size":0,"region-split-keys":0,"region-split-batch-size":4096,"region-split-concurrency":8,"region-check-backoff-limit":1800,"sorted-kv-dir":"./some-dir","disk-quota":9223372036854775807,"range-concurrency":16,"duplicate-resolution":"remove","incremental-import":false,"keyspace-name":"","add-index-by-sql":false,"engine-mem-cache-size":536870912,"local-writer-mem-cache-size":134217728,"store-write-bwlimit":0,"pause-pd-scheduler-scope":"table"},"post-restore":{"checksum":"required","analyze":"optional","level-1-compact":false,"post-process-at-last":true,"compact":false,"checksum-via-sql":true},"cron":{"switch-mode":"5m0s","log-progress":"5m0s","check-disk-quota":"1m0s"},"routes":null,"security":{"ca-path":"","cert-path":"","key-path":"","redact-info-log":false},"black-white-list":{"do-tables":null,"do-dbs":null,"ignore-tables":null,"ignore-dbs":null}}”]
[2023/09/06 02:49:30.388 -07:00] [INFO] [lightning.go:526] [“load data source start”]
[2023/09/06 02:49:30.390 -07:00] [INFO] [loader.go:459] [“[loader] file is filtered by file router”] [path=TEST_TIDB.sql]
[2023/09/06 02:49:30.391 -07:00] [INFO] [lightning.go:529] [“load data source completed”] [takeTime=2.196233ms] []
[2023/09/06 02:49:30.448 -07:00] [INFO] [lightning.go:567] [“acquired keyspace name”] [keyspaceName=]
[2023/09/06 02:49:30.448 -07:00] [INFO] [checkpoints.go:1115] [“open checkpoint file failed, going to create a new one”] [path=/tmp/tidb_lightning_checkpoint.pb] []
[2023/09/06 02:49:30.550 -07:00] [INFO] [local.go:680] [“multi ingest support”]
[2023/09/06 02:49:30.551 -07:00] [INFO] [import.go:483] [“the whole procedure start”]
[2023/09/06 02:49:30.560 -07:00] [INFO] [import.go:1945] [new_collation_enabled] [enabled=true]
[2023/09/06 02:49:30.561 -07:00] [INFO] [import.go:789] [“restore all schema start”]
[2023/09/06 02:49:30.561 -07:00] [INFO] [import.go:808] [“restore all schema completed”] [takeTime=258.485µs] []
[2023/09/06 02:49:30.617 -07:00] [INFO] [version.go:429] [“detect server version”] [type=TiDB] [version=6.5.3]
[2023/09/06 02:49:30.621 -07:00] [INFO] [version.go:429] [“detect server version”] [type=TiDB] [version=6.5.3]
[2023/09/06 02:49:30.686 -07:00] [INFO] [import.go:1466] [“restore all tables data start”]
[2023/09/06 02:49:30.721 -07:00] [INFO] [import.go:1351] [“cancel periodic actions”] [do=true]
[2023/09/06 02:49:30.721 -07:00] [INFO] [tikv_mode.go:59] [“switch tikv mode”] [mode=Normal]
[2023/09/06 02:49:30.721 -07:00] [INFO] [tikv_mode.go:59] [“switch tikv mode”] [mode=Import]
[2023/09/06 02:49:30.830 -07:00] [INFO] [import.go:1580] [“restore all tables data completed”] [takeTime=144.380605ms] []
[2023/09/06 02:49:30.830 -07:00] [INFO] [import.go:1583] [“cleanup task metas”]
[2023/09/06 02:49:30.845 -07:00] [INFO] [import.go:1817] [“skip full compaction”]
[2023/09/06 02:49:30.846 -07:00] [INFO] [import.go:1968] [“clean checkpoints start”] [keepAfterSuccess=remove] [taskID=1693993770385294614]
[2023/09/06 02:49:30.846 -07:00] [INFO] [import.go:1976] [“clean checkpoints completed”] [keepAfterSuccess=remove] [taskID=1693993770385294614] [takeTime=211.935µs] []
[2023/09/06 02:49:30.846 -07:00] [INFO] [import.go:511] [“the whole procedure completed”] [takeTime=295.435294ms] []
[2023/09/06 02:49:30.854 -07:00] [WARN] [import.go:1203] [“stopping periodic actions”] [error=“context canceled”]
[2023/09/06 02:49:30.893 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/tasks]
[2023/09/06 02:49:30.894 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/tasks] [status=200] [body=“{"current":null,"queue":[]}\n”] [takeTime=72.234µs] []
[2023/09/06 02:49:30.895 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/pause]
[2023/09/06 02:49:30.895 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/pause] [status=200] [body=“{"paused":false}”] [takeTime=19.355µs] []
[2023/09/06 02:49:30.895 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/progress/task]
[2023/09/06 02:49:30.898 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/progress/task] [status=200] [] [takeTime=2.382474ms] []
[2023/09/06 02:50:28.552 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/tasks]
[2023/09/06 02:50:28.552 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/tasks] [status=200] [body=“{"current":null,"queue":[]}\n”] [takeTime=60.121µs] []
[2023/09/06 02:50:28.552 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/progress/task]
[2023/09/06 02:50:28.552 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=GET] [url=/pause]
[2023/09/06 02:50:28.552 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/pause] [status=200] [body=“{"paused":false}”] [takeTime=20.062µs] []
[2023/09/06 02:50:28.554 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=GET] [url=/progress/task] [status=200] [] [takeTime=1.768129ms] []
[2023/09/06 02:56:57.217 -07:00] [INFO] [lightning.go:200] [“process http request start”] [method=POST] [url=/tasks]
[2023/09/06 02:56:57.218 -07:00] [INFO] [lightning.go:757] [“received task config”] [content=“[lightning]\nlevel = "info"\nfile = "tidb-lightning.log"\nserver-mode = true\nstatus-addr = ‘:8290’\ncheck-requirements = true\n\n[mydumper]\ndata-source-dir = "/data"\n\n[tikv-importer]\nbackend = "local"\nduplicate-resolution = ‘remove’\nsorted-kv-dir = "./some-dir"\n\n[tidb]\nhost = "192.168.80.201"\nport = 4000\nuser = "root"\nstatus-port = 10080\npd-addr = "192.168.80.201:2379"\nlog-level = "error"\n\n\n”]
[2023/09/06 02:56:57.218 -07:00] [WARN] [config.go:1070] [“currently only per-task configuration can be applied, global configuration changes can only be made on startup”] [“global config changes”=“[lightning.level,lightning.file,lightning.max-size,lightning.max-days,lightning.max-backups,lightning.server-mode,lightning.status-addr,tidb.log-level]”]
[2023/09/06 02:56:57.219 -07:00] [WARN] [config.go:1070] [“currently only per-task configuration can be applied, global configuration changes can only be made on startup”] [“global config changes”=“[lightning.level,lightning.file,lightning.server-mode,lightning.status-addr,tidb.log-level]”]
[2023/09/06 02:56:57.220 -07:00] [INFO] [lightning.go:209] [“process http request completed”] [method=POST] [url=/tasks] [status=200] [body=“{"id":1693994217220072361}\n”] [takeTime=2.411401ms] []
[2023/09/06 02:56:57.220 -07:00] [INFO] [info.go:49] [“Welcome to TiDB-Lightning”] [release-version=v7.2.0] [git-hash=9fd5f4a8e4f273a60fbe7d3848f85a1be8f0600b] [git-branch=heads/refs/tags/v7.2.0] [go-version=go1.20.5] [utc-build-time=“2023-06-27 14:58:41”] [race-enabled=false]
[2023/09/06 02:56:57.220 -07:00] [INFO] [lightning.go:426] [cfg] [cfg=“{"id":1693994217220072361,"lightning":{"table-concurrency":6,"index-concurrency":2,"region-concurrency":8,"io-concurrency":5,"check-requirements":true,"meta-schema-name":"lightning_metadata","max-error":{"type":0,"conflict":9223372036854775807},"max-error-records":100,"task-info-schema-name":"lightning_task_info"},"tidb":{"host":"192.168.80.201","port":4000,"user":"root","status-port":10080,"pd-addr":"192.168.80.201:2379","sql-mode":"ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER","tls":"false","security":{"ca-path":"","cert-path":"","key-path":"","redact-info-log":false},"max-allowed-packet":67108864,"distsql-scan-concurrency":15,"build-stats-concurrency":20,"index-serial-scan-concurrency":20,"checksum-table-concurrency":2,"vars":null},"checkpoint":{"schema":"tidb_lightning_checkpoint","driver":"file","enable":true,"keep-after-success":"remove"},"mydumper":{"read-block-size":65536,"batch-size":0,"batch-import-ratio":0,"source-id":"","data-source-dir":"file:///data","character-set":"auto","csv":{"separator":",","delimiter":"\"","terminator":"","null":["\\N"],"header":true,"header-schema-match":true,"trim-last-separator":false,"not-null":false,"backslash-escape":true,"escaped-by":"\\"},"max-region-size":268435456,"filter":[".","!mysql.","!sys.","!INFORMATION_SCHEMA.","!PERFORMANCE_SCHEMA.","!METRICS_SCHEMA.","!INSPECTION_SCHEMA."],"files":null,"no-schema":false,"case-sensitive":false,"strict-format":false,"default-file-rules":true,"ignore-data-columns":null,"data-character-set":"binary","data-invalid-char-replace":"�"},"tikv-importer":{"addr":"","backend":"local","on-duplicate":"","max-kv-pairs":4096,"send-kv-pairs":32768,"send-kv-size":16384,"compress-kv-pairs":"","region-split-size":0,"region-split-keys":0,"region-split-batch-size":4096,"region-split-concurrency":8,"region-check-backoff-limit":1800,"sorted-kv-dir":"./some-dir","disk-quota":9223372036854775807,"range-concurrency":16,"duplicate-resolution":"remove","incremental-import":false,"keyspace-name":"","add-index-by-sql":false,"engine-mem-cache-size":536870912,"local-writer-mem-cache-size":134217728,"store-write-bwlimit":0,"pause-pd-scheduler-scope":"table"},"post-restore":{"checksum":"required","analyze":"optional","level-1-compact":false,"post-process-at-last":true,"compact":false,"checksum-via-sql":true},"cron":{"switch-mode":"5m0s","log-progress":"5m0s","check-disk-quota":"1m0s"},"routes":null,"security":{"ca-path":"","cert-path":"","key-path":"","redact-info-log":false},"black-white-list":{"do-tables":null,"do-dbs":null,"ignore-tables":null,"ignore-dbs":null}}”]

感谢分享

感谢总结

这个分享不错源, 操作命令清楚,结果返回明确,。。

:clap::clap::clap:

不错,操作步骤比较清晰,如果是有BR的就更齐全了。

感谢分享感谢分享

666.不错

谢谢分享

感谢分享,文档写的不错

感谢分享