Files
Baradb/docs/zh/backup.md
T

1.4 KiB

备份与恢复

在线快照

BaraDB 支持在线快照,无需停止服务器。快照使用 MVCC 捕获一致的时间点视图。

创建快照

import barabadb/core/backup

var bm = newBackupManager()
bm.createSnapshot("/backup/baradb_2025-01-15")

通过 CLI

./build/baradadb --snapshot --output=/backup/snapshot.db

通过 HTTP API

curl -X POST http://localhost:9470/api/backup \
  -d '{"destination": "/backup/snapshot.db"}'

自动备份

0 2 * * * /usr/local/bin/baradadb --snapshot --output=/backup/baradb_$(date +\%Y\%m\%d).db
find /backup -name "baradb_*.db" -mtime +7 -delete

时间点恢复 (PITR)

从快照 + WAL 恢复

./build/baradadb --recover \
  --checkpoint=/backup/snapshot.db \
  --wal-dir=/backup/wal

通过 SQL 恢复

RECOVER TO TIMESTAMP '2026-05-07T12:00:00';

灾难恢复场景

场景 1:文件损坏

cp /backup/sstables/000012.sst ./data/sstables/
./build/baradadb --rebuild-index

场景 2:完全数据丢失

cp /backup/snapshot.db ./data/
./build/baradadb --recover --wal-dir=/backup/wal

场景 3:集群节点故障

BARADB_RAFT_NODE_ID=newnode \
BARADB_RAFT_PEERS=node1:9001,node2:9001 \
./build/baradadb

最佳实践

  1. 定期测试恢复
  2. 将备份存储在场外
  3. 加密备份
  4. 监控备份作业
  5. 记录 RTO/RPO