以下是使用 taosdump
备份 TDengine 所有数据库中近10天数据的步骤:
1. 获取所有数据库列表
首先登录 TDengine,执行以下命令列出所有非系统数据库:
echo "SHOW DATABASES;" | taos | awk 'NR>2 && $1 !~ /^information_schema$|^performance_schema$/ {print $1}'
此命令会过滤掉默认的系统数据库。
2. 备份每个数据库的近10天数据
使用 Shell 脚本循环处理每个数据库,按时间范围备份:
#!/bin/bash# 定义备份根目录
BACKUP_ROOT="./backup"
START_TIME=$(date -d "10 days ago" "+%Y-%m-%d %H:%M:%S")
END_TIME=$(date "+%Y-%m-%d %H:%M:%S")# 获取数据库列表
DATABASES=$(echo "SHOW DATABASES;" | taos | awk 'NR>2 && $1 !~ /^information_schema$|^performance_schema$/ {print $1}')# 遍历每个数据库
for DB in $DATABASES; doBACKUP_DIR="${BACKUP_ROOT}/${DB}"mkdir -p "$BACKUP_DIR"echo "Backing up database: $DB from $START_TIME to $END_TIME"taosdump -o "$BACKUP_DIR" -u root -p taosdata \--databases "$DB" \--start-time "$START_TIME" \--end-time "$END_TIME"
done
关键参数说明
-o
:指定备份输出目录。--databases
:要备份的数据库名称。--start-time
和--end-time
:时间格式为YYYY-MM-DD HH:mm:ss
。-u
和-p
:TDengine 用户名和密码(根据实际修改)。
3. 恢复数据示例
恢复某个数据库的备份:
taosdump -i ./backup/your_database -u root -p taosdata
注意事项
- 权限:确保执行用户有数据库访问权限。
- 时间范围:检查时区是否与数据库一致。
- 存储空间:备份前确认磁盘空间充足。
- 过滤数据库:根据实际环境调整
awk
过滤条件。
通过以上步骤,您可以自动备份所有数据库的近期数据,并按数据库名称分类存储备份文件。