GreptimeDB 导出和导入工具
本指南描述了如何使用 GreptimeDB 的导出和导入工具进行数据库备份和恢复。
导出和导入工具提供了备份和恢复 GreptimeDB 数据库的功能。这些工具可以处理 schema(表结构等)和数据,支持完整或选择性的备份和恢复操作。
导出工具
命令语法
greptime export [OPTIONS]
选项
选项 | 是否必需 | 默认值 | 描述 |
---|---|---|---|
--addr | 是 | - | 要连接的 GreptimeDB 数据库地址 |
--output-dir | 是 | - | 存储导出数据的目录 |
--database | 否 | 所有数据库 | 要导出的数据库名称 |
--export-jobs, -j | 否 | 1 | 并行导出任务数量(多个数据库可以并行导出) |
--max-retry | 否 | 3 | 每个任务的最大重试次数 |
--target, -t | 否 | all | 导出目标(schema/data/all) |
--start-time | 否 | - | 数据导出的开始时间范围 |
--end-time | 否 | - | 数据导出的结束时间范围 |
--auth-basic | 否 | - | 使用 <username>:<password> 格式 |
--timeout | 否 | 0 | 对 DB 进行一次调用的超时时间,默认为 0 代表永不超时 |
导出目标
schema
: 仅导出表结构(SHOW CREATE TABLE
)data
: 仅导出表数据(COPY DATABASE TO
)all
: 导出表结构和数据(默认)
输出目录结构
<output-dir>/
└── greptime/
└── <database>/
├── create_database.sql
├── create_tables.sql
├── copy_from.sql
└── <数据文件>
导入工具
命令语法
greptime import [OPTIONS]
选项
选项 | 是否必需 | 默认值 | 描述 |
---|---|---|---|
--addr | 是 | - | 要连接的 GreptimeDB 数据库地址 |
--input-dir | 是 | - | 包含备份数据的目录 |
--database | 否 | 所有数据库 | 要导入的数据库名称 |
--import-jobs, -j | 否 | 1 | 并行导入任务数量(多个数据库可以并行导入) |
--max-retry | 否 | 3 | 每个任务的最大重试次数 |
--target, -t | 否 | all | 导入目标(schema/data/all) |
--auth-basic | 否 | - | 使用 <username>:<password> 格式 |
导入目标
schema
: 仅导入表结构data
: 仅导入表数据all
: 导入表结构和数据(默认)
常见使用场景
完整数据库备份
# 导出所有数据库备份
greptime export --addr localhost:4000 --output-dir /tmp/backup/greptimedb
# 导入所有数据库
greptime import --addr localhost:4000 --input-dir /tmp/backup/greptimedb
仅表结构操作
# 仅导出表结构
greptime export --addr localhost:4000 --output-dir /tmp/backup/schemas --target schema
# 仅导入表结构
greptime import --addr localhost:4000 --input-dir /tmp/backup/schemas --target schema
基于时间范围的备份
# 导出特定时间范围内的数据
greptime export --addr localhost:4000 \
--output-dir /tmp/backup/timerange \
--start-time "2024-01-01 00:00:00" \
--end-time "2024-01-31 23:59:59"
指定数据库备份
# 导出指定数据库
greptime export --addr localhost:4000 --output-dir /tmp/backup/greptimedb --database '{my_database_name}'
# 导入工具也同样适用
greptime import --addr localhost:4000 --input-dir /tmp/backup/greptimedb --database '{my_database_name}'
最佳实践
-
并行度配置
- 根据可用系统资源调整
--export-jobs
/--import-jobs
- 从较低的值开始,逐步增加
- 在操作期间监控系统性能
- 根据可用系统资源调整
-
备份策略
- 使用时间范围进行增量数据备份
- 定期备份用于灾难恢复
-
错误处理
- 使用
--max-retry
处理临时异常 - 保留日志以便故障排除
- 使用
故障排除
常见问题
-
连接错误
- 验证服务器地址和端口
- 检查网络连接
- 确保身份验证凭据正确
-
权限问题
- 验证输出/输入目录的读写权限
-
资源限制
- 减少并行任务数
- 确保足够的磁盘空间
- 在操作期间监控系统资源
性能提示
-
导出性能
- 对大型数据集使用时间范围
- 根据 CPU/内存调整并行任务数量
- 考虑网络带宽限制
-
导入性能
- 注意监控数据库资源
-
导出性能
- 对大型数据集使用时间范围
- 根据 CPU/内存调整并行任务
- 考虑网络带宽限制
-
导入性能
- 监控数据库资源