温馨提示×

debian的kafka如何备份

小樊
45
2026-09-12 19:36:54
栏目: 智能运维

在 Debian 上备份 Kafka,通常分为 数据备份(消息数据)、配置备份、以及 可选的工具化备份。下面按常见场景说明。


一、Kafka 数据备份(核心)

1. 了解 Kafka 数据存储位置

Kafka 的数据默认在:

/var/lib/kafka/data

(具体路径取决于你的安装方式,如 apt / 官方 tar / docker)

查看 server.properties:

grep log.dirs /etc/kafka/server.properties

2. 停止 Kafka 后冷备份(最安全)

(1)停止 Kafka

systemctl stop kafka

(2)备份数据目录

tar czf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data

(3)备份配置文件

tar czf kafka-conf-$(date +%F).tar.gz /etc/kafka

✅ 优点:完全一致
❌ 缺点:需要停机


3. 不停机热备份(不推荐直接拷贝)

Kafka 不支持直接热拷贝 log 目录保证一致性,但可用以下方式:

方式 A:Topic 副本机制(推荐)

  • 保证 replication.factor >= 2
  • 一个 broker 故障不影响数据

方式 B:MirrorMaker 跨集群备份(生产推荐)

kafka-mirror-maker.sh \
  --consumer.config consumer.properties \
  --producer.config producer.properties \
  --whitelist '.*'

二、Topic / 元数据备份

1. 备份 Topic 列表

kafka-topics.sh --bootstrap-server localhost:9092 --list > topics.txt

2. 备份 Topic 配置

kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --describe > topic-configs.txt

3. 备份 ACL(如启用)

kafka-acls.sh --bootstrap-server localhost:9092 --list > acls.txt

三、ZooKeeper 备份(旧版本 Kafka)

如果你使用的是 Kafka < 3.0(依赖 ZooKeeper):

systemctl stop zookeeper
tar czf zk-data-$(date +%F).tar.gz /var/lib/zookeeper

Kafka 3+(KRaft 模式)不需要 ZooKeeper。


四、恢复方式

恢复数据

systemctl stop kafka
rm -rf /var/lib/kafka/data/*
tar xzf kafka-data-2026-01-15.tar.gz -C /
systemctl start kafka

⚠️ broker.id 必须一致,否则 Kafka 会拒绝启动。


五、生产环境建议

✅ 使用 副本 + MirrorMaker
✅ 定期备份 配置 + topic 元数据
✅ 重要业务做 跨机房 Mirror
❌ 不要只靠文件拷贝


如果你能告诉我:

  • Kafka 版本
  • 是否使用 ZooKeeper / KRaft
  • 单机还是集群

我可以给你 更精确的备份脚本。

0 踩