集群版本:5.0.4
集群架构:A -> B两个集群做主备架构,数据通过cdc同步。
操作流程:
- 模拟三节点TiKV故障
- 使用sync-diff-inspector 数据校验,并补数据
- 架构恢复A -> B 数据同步后,在A集群执行count(1) 结果不正确
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 50320 |
+----------+
1 row in set (0.01 sec)
mysql> select count(*) from sbtest1 where id>0;
+----------+
| count(*) |
+----------+
| 50000 |
+----------+
1 row in set (0.04 sec)
mysql> select min(id) from sbtest1;
+---------+
| min(id) |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
reload 集群和收集统计信息后,结果依然不正确
- 集群选用3副本
- 模拟时按照步骤:【SOP 系列 18】TiUP 环境恢复 TiKV 副本
- 补数据后,实际行数=50000,执行count(1) 实际50320。问题在于为什么会这样。
操作步骤:
- 模拟region丢失3副本. 先mv掉deploy 安装目录、再kill 进程、再mv数据目录
- 禁止schedule调用
- 检查宕机的3台机器对应的store_id; 查询失败
MySQL [test]> select count(1) from sbtest1;
ERROR 9010 (HY000): TiKV server reports stale command
- 停cdc任务
tiup ctl:v5.0.4 cdc changefeed --pd=http://192.168.8.11:2379 pause --changefeed-id dr-replication-task-5
- 故障集群停tikv
tiup cluster stop dr-primary -R=tikv
- 正常的tikv执行unsafe-recover
tiup ctl:v5.0.4 tikv --db /data/tidb-data/tikv_data_p_20161/db unsafe-recover remove-fail-stores -s 1,2,7 --all-regions
- 缩容故障TIKV,重启tikv、pd
tiup cluster scale-in dr-primary -N=192.168.8.11:20161,192.168.8.11:20162,192.168.8.12:20160 --force -y
tiup cluster stop dr-primary -R=pd
tiup cluster start dr-primary -R=pd,tikv
- 停掉一个正常TiKV节点, recreate-region
tiup ctl:v5.0.4 tikv --db /data/tidb-data/tikv_data_p_20162/db recreate-region -p '192.168.8.11:2379' -r 4019
tiup ctl:v5.0.4 tikv --db /data/tidb-data/tikv_data_p_20162/db recreate-region -p '192.168.8.11:2379' -r 4031
tiup ctl:v5.0.4 tikv --db /data/tidb-data/tikv_data_p_20162/db recreate-region -p '192.168.8.11:2379' -r 4068
- reload 集群
tiup cluster reload dr-primary -y
- 校验数据
bin/sync_diff_inspector -config=conf/dr-check.toml
yilong
(yi888long)
6
Meditator
(Wendywong020)
7
3副本集群,模拟3个副本都丢失,进行灾难恢复,这个时候能恢复吗?即便恢复了,所有的数据都已经丢失,包括系统元数据。这个场景就不用去灾难恢复,
xfworld
(魔幻之翼)
8
A 和 B 两个集群之间的数据,是一致的么?
停止 CDC 服务的前后,有没有核对过?
另外,A 集群恢复后,是通过什么步骤来进行数据恢复的?然后依靠什么判断数据完全恢复了?
unsafe-recover 是无法保证数据正常的,只能恢复集群的状态…
yilong
(yi888long)
10
admin check table 的结果是一致的吗?是否存在索引和数据不一致的情况?
system
(system)
关闭
12
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。