“Replica 副本丢失”这个说法在不同系统里含义差别很大(如 Kubernetes、HDFS、Ceassandra、MySQL、Kafka、分布式存储等)。下面我先按常见场景分类说明恢复思路,你可以对照自己的系统;最后给你一个通用排查与恢复流程。
现象:kubectl get pods 发现副本数少于期望,Pod 被删或 Node 不可用。
恢复方式:
Deployment / ReplicaSet / StatefulSet:kubectl get rs
kubectl rollout status deployment/<name>
控制器会自动重建副本(只要 YAML 还在)。kubectl get node
kubectl describe node <node>
修复节点或驱逐 Pod:kubectl drain <node> --ignore-daemonsets
现象:副本数低于 replication factor,出现 Under-Replicated。
恢复方式:
hdfs fsck / -blocks -locations
hdfs dfsadmin -safemode leave
NameNode 会自动补副本;必要时手动:hdfs balancer
ceph health detail
ceph osd tree
加入新 OSD 或重启 OSD 后,CRUSH 会自动恢复。现象:从库(Replica)挂掉或数据文件丢失。
恢复方式:
mysqldump -h master > dump.sql
mysql < dump.sql
CHANGE MASTER TO ...
START SLAVE;
CLONE INSTANCE FROM 'user'@'master';
rs.status()
rs.add("<host>:27017")
自动同步数据。现象:Under-Replicated Partitions > 0
恢复方式:
kafka-topics.sh --describe --topic <t> --bootstrap-server <broker>
kafka-reassign-partitions.sh
手动重新分配副本。
rabbitmqctl cluster_status
rabbitmqctl forget_cluster_node <node>
再加入节点并同步镜像队列。确认副本状态
恢复节点可用性
触发重新复制
校验一致性
防止再次发生
请告诉我:
我可以给你具体命令级恢复方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。