全量备份适用于小规模数据或首次备份,通过Kafka自带的kafka-console-consumer.sh导出主题数据为文本文件。
test)和备份目录(如/tmp/backup);mkdir -p /tmp/backup;BACKUP_TOPIC=test
BACKUP_DIR=/tmp/backup
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic $BACKUP_TOPIC --from-beginning > $BACKUP_DIR/$BACKUP_TOPIC.txt
注:此方法会将主题数据保存为文本文件,恢复时需用kafka-console-producer.sh导入。更彻底的全量备份,覆盖Kafka的核心数据目录、配置文件及日志,确保恢复时环境一致性。
sudo systemctl stop kafka
(2)备份数据目录(默认路径/var/lib/kafka/data,需根据实际安装调整):sudo tar -czvf /backup/kafka_data_backup.tar.gz /var/lib/kafka/data
(3)备份配置文件(默认路径/etc/kafka):sudo tar -czvf /backup/kafka_config_backup.tar.gz /etc/kafka
(4)备份日志文件(默认路径/var/log/kafka,可选):sudo tar -czvf /backup/kafka_log_backup.tar.gz /var/log/kafka
(5)备份启动脚本(Systemd服务文件,默认路径/usr/lib/systemd/system/kafka.service):sudo tar -czvf /backup/kafka_startup_backup.tar.gz /usr/lib/systemd/system/kafka.service
(6)将备份文件传输至安全位置(如远程服务器):scp *.tar.gz user@remote_host:/path/to/backup/
注:恢复时需反向操作(解压文件至原路径、启动服务)。增量备份仅同步自上次备份以来的新增/修改数据,适合大规模集群的持续备份。
$KAFKA_HOME/bin/kafka-run-class.sh);/tmp/mirror-maker.properties),指定源集群(SOURCE_HOST)和目标集群(DESTINATION_HOST):consumer.bootstrap.servers=SOURCE_HOST:9092
producer.bootstrap.servers=DESTINATION_HOST:9092
(3)运行MirrorMaker(同步指定主题,如test):kafka-run-class.sh kafka.tools.MirrorMaker \
--consumer.config /tmp/mirror-maker.properties \
--producer.config /tmp/mirror-maker.properties \
--whitelist test
注:增量备份需持续运行,可通过cron定时任务自动化。由Confluent提供的专业增量备份工具,支持分布式备份和恢复,效率更高。
sudo yum install confluent-kafka-backup
(2)创建备份目录(如/tmp/backup);kafka-backup --bootstrap-server localhost:9092 --backup-dir /tmp/backup
(4)定期执行(通过cron设置每日备份):0 2 * * * /usr/bin/kafka-backup --bootstrap-server localhost:9092 --backup-dir /tmp/backup
注:恢复时需使用kafka-backup restore命令,指定备份目录和目标集群。