以下是使用 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; do
  BACKUP_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

注意事项

  1. 权限:确保执行用户有数据库访问权限。
  2. 时间范围:检查时区是否与数据库一致。
  3. 存储空间:备份前确认磁盘空间充足。
  4. 过滤数据库:根据实际环境调整 awk 过滤条件。

通过以上步骤,您可以自动备份所有数据库的近期数据,并按数据库名称分类存储备份文件。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐