为提高效率,请提供以下信息,问题描述清晰能够更快得到解决: 【 TiDB 使用环境】k8s 与 tidb cluster
【TiDB 版本】 4.0.16
【背景】 在进行 tkv 缩容时,因有两个 store 的 leader count 和 region count 卡在 1 超过半小时, 透过人为手动 curl -X POST ‘http://{pd_ip}:{pd_port}/pd/api/v1/store/{store_id}/state?state=Tombstone’ 强制让 store 1002 1004 进入 tombstone
而后才发现,有一 region 10353493 的状态不正常,有一 peer 是 learner 另两个 peer 因其 store 被设为 tombstone 而无法存取 Tidb cluster ready 状态为 true 目前已尝试透过 curl -X POST ‘http://{pd_ip}:{pd_port}/pd/api/v1/store/{store_id}/state?state=Up’ 再把 1002 叫起 并试图把 tikv replica 再次扩充,想要重新跑出新的 tikv node 并挂载其对应的 store 1002 但目前看起来似乎没有作用,tikv 的 statefulset 也没有进行相对应的修改
不正常的 region 状态: by 使用 ./pd-ctl region 10353493
{
"id": 10353493,
"start_key": "7480000000000000FF175F728000000000FF15D0A10000000000FA",
"end_key": "7480000000000000FF175F728000000000FF15D1720000000000FA",
"epoch": {
"conf_ver": 269722,
"version": 1216
},
"peers": [
{
"id": 10385018,
"store_id": 1002
},
{
"id": 10389925,
"store_id": 1004
},
{
"id": 10344516,
"store_id": 1013,
"is_learner": true
}
],
"leader": {
"id": 10385018,
"store_id": 1002
},
"down_peers": [
{
"peer": {
"id": 10344516,
"store_id": 1013,
"is_learner": true
},
"down_seconds": 300
}
],
"pending_peers": [
{
"id": 10344516,
"store_id": 1013,
"is_learner": true
}
],
"written_bytes": 0,
"read_bytes": 0,
"written_keys": 0,
"read_keys": 0,
"approximate_size": 1,
"approximate_keys": 0
}
【业务影响】 使用 sql 语法 select * from mysql.stats_histograms 和 select * from information_schema.tables; 得到以下错误 (1105, ‘no available peers, region: {id:10353493 start_key:“t\200\000\000\000\000\000\000\027_r\200\000\000\000\000\025\320\241” end_k ey:“t\200\000\000\000\000\000\000\027_r\200\000\000\000\000\025\321r” region_epoch:<conf_ver:269722 version:1216 > peers:<id:10385018 s tore_id:1002 > peers:<id:10389925 store_id:1004 > }’)
br 进行 backup 时,会失败
【问题】 想请问说:
因目前这个 region 现在三个 peer 的状态是 tombstone, tombstone, learner,
请问能否从 tombstone 把 region 找回,或是直接移除该 region
或是能否把 region 直接移除? (例如 drop table) 目前 region 是属于 mysql.stats_histograms 下的资料,掉了应该不会影响其他资料
感谢