tidb-lightning 执行导入报错 get TSO failed

【 TiDB 使用环境】测试环境
【 TiDB 版本】

导入的配置文件:

[lightning]

日志

level = “info”
file = “seller.log”

启动之前检查集群是否满足最低需求,以及运行过程中检查 TiKV 的可用存储空间是否大于 10%。

check-requirements = true
meta-schema-name = “lightning_metadata”
#混合部署的情况下可以将其大小配置为逻辑 CPU 数的 75%,以限制 CPU 的使用。
region-concurrency = 24

[tikv-importer]

“local”:默认使用该模式,适用于 TB 级以上大数据量,但导入期间下游 TiDB 无法对外提供服务。

“tidb”:TB 级以下数据量也可以采用 tidb 后端模式,下游 TiDB 可正常提供服务。关于后端模式更多信息请参阅:https://docs.pingcap.com/tidb/stable/tidb-lightning-backends

backend = “local”

设置排序的键值对的临时存放地址,目标路径必须是一个空目录,目录空间须大于待导入数据集的大小。建议设为与 data-source-dir 不同的磁盘目录并使用闪存介质,独占 IO 会获得更好的导入性能

sorted-kv-dir = “/data/tidbtest/kvdir1”
#物理导入模式TiKV 写入 KV 数据的并发度。当 TiDB Lightning 和 TiKV 直接网络传输速度超过万兆的时候,可以适当增加这个值。默认是16
range-concurrency = 60

物理导入模式一次请求中发送的 KV 数量。默认是3200

send-kv-pairs = 6400

是否允许向已存在数据的表导入数据。默认值为 false。

当使用并行导入模式时,由于多个 TiDB Lightning 实例同时导入一张表,因此此开关必须设置为 true。

incremental-import = true

[mydumper]

源数据目录,即第 1 步中 Dumpling 保存数据的路径。

data-source-dir = “/data/tools/sellerdata”
filter = [‘.’, ‘!mysql.', '!sys.’, ‘!INFORMATION_SCHEMA.', '!PERFORMANCE_SCHEMA.’, ‘!METRICS_SCHEMA.', '!INSPECTION_SCHEMA.’]

#[[mydumper.files]]

db schema 文件

#pattern = ‘(?i)^(?:[^/]*/)*seller-schema-create.sql’
#schema = “seller”
#type = “schema-schema”

#[[mydumper.files]]

table schema 文件

#pattern = ‘(?i)^(?:[^/]*/)*seller.purchase_buy_attr-schema.sql’
#schema = “seller”
#table = “purchase_buy_attr”
#type = “sql”

#[[mydumper.files]]

只导入purchase_buy_attr|purchase_buy_skus|quality_batch_attr|seller_pay_list这些数据文件并忽略其他文件

#pattern = ‘(?i)^(?:[^/]*/)seller.purchase_buy_attr..sql’
#schema = “seller”
#table = “purchase_buy_attr”
#type = “sql”

[tidb]

目标集群的信息

host = “tidb-tidb.dev.svc.yafex.test”
port = 4000
user = “root”
password = “”

表架构信息在从 TiDB 的“状态端口”获取。

status-port = 10080

集群 pd 的地址

pd-addr = “tidb-pd.dev.svc.yafex.test:2379”

导入开始报错:
[2023/11/11 10:31:18.485 +08:00] [ERROR] [lightning.go:586] [“restore failed”] [error=“[Lightning:KV:ErrCreateKVClient]create kv client error: [PD:client:ErrClientGetTSO]get TSO failed, tso client is nil”]
[2023/11/11 10:31:18.485 +08:00] [ERROR] [main.go:103] [“tidb lightning encountered error stack info”] [error=“[Lightning:KV:ErrCreateKVClient]create kv client error: [PD:client:ErrClientGetTSO]get TSO failed, tso client is nil”]

集群是有k8s部署,请问这个错误是怎么解决呢 ?

TSO时间没获得嘛,PD状态正常嘛

tidb-pd.dev.svc.yafex.test:2379 这个pd的地址能访问吗

PD的状态是正常的 :
root@pu20k8st001001:/data/tools# kubectl get pods -n dev |grep tidb
tidb-discovery-6d4588847f-sbmm7 1/1 Running 0 8d
tidb-pd-0 1/1 Running 1 (15h ago) 15h
tidb-pd-1 1/1 Running 0 15h
tidb-pd-2 1/1 Running 1 (15h ago) 15h
tidb-tidb-0 2/2 Running 0 99d
tidb-tidb-1 2/2 Running 0 119d
tidb-tidb-2 2/2 Running 0 109d
tidb-tikv-0 1/1 Running 10 (17m ago) 99d
tidb-tikv-1 1/1 Running 74 (17h ago) 119d
tidb-tikv-2 1/1 Running 111 (15h ago) 109d
tidb-tikv-3 1/1 Running 91 (16m ago) 111d
tidb-tikv-4 1/1 Running 1 (38h ago) 107d

tidb-pd.dev.svc.yafex.test 这个地址在主机上是能ping通的

跑lightning的机器到pd网络不通,看pod的网络映射是不是有问题

把访问pd 的域名地址都换做ip试试

可以curl下这个地址,关键是端口通不通

换成IP试一试

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。