外观
TiDB TiKV 控制工具
tikv-ctl 是 TiKV 提供的命令行控制工具,用于管理和诊断 TiKV 集群,提供查看和修改配置、诊断集群状态、管理数据、调试问题等功能。
安装与基本用法
安装方法
tikv-ctl 工具随 TiKV 安装包一起分发,也可以通过 TiUP 安装:
bash
# 通过 TiUP 安装 tikv-ctl
tiup install tikv
# 或者直接使用 TiUP 运行 tikv-ctl
tiup ctl tikv基本格式
tikv-ctl 的基本使用格式如下:
bash
tikv-ctl [options] <command> [arguments]常用选项
--host:TiKV 服务器地址(默认:127.0.0.1)--port:TiKV 服务器端口(默认:20160)--pd:PD 服务器地址,用于获取集群信息--data-dir:TiKV 数据目录,用于本地操作--config:TiKV 配置文件路径
常用命令
配置管理
查看配置
bash
# 查看当前 TiKV 配置
tikv-ctl --host <tikv-host> --port <tikv-port> config show
# 查看特定配置项
tikv-ctl --host <tikv-host> --port <tikv-port> config show <config-key>修改配置
bash
# 动态修改 TiKV 配置
tikv-ctl --host <tikv-host> --port <tikv-port> config set <config-key> <config-value>集群诊断
查看状态
bash
# 查看 TiKV 服务器状态
tikv-ctl --host <tikv-host> --port <tikv-port> status
# 查看 TiKV 监控指标
tikv-ctl --host <tikv-host> --port <tikv-port> metrics查看 Raft 状态
bash
# 查看 Raft 组状态
tikv-ctl --host <tikv-host> --port <tikv-port> raft status
# 查看特定 Raft 组信息
tikv-ctl --host <tikv-host> --port <tikv-port> raft region <region-id>数据管理
查看 Region 信息
bash
# 查看所有 Region 信息
tikv-ctl --pd <pd-host>:<pd-port> region list
# 查看特定 Region 信息
tikv-ctl --pd <pd-host>:<pd-port> region <region-id>
# 根据 Key 查找 Region
tikv-ctl --pd <pd-host>:<pd-port> region key <key>查看数据
bash
# 从本地数据目录读取数据
tikv-ctl --data-dir <data-dir> raw get <key>
# 从本地数据目录读取范围数据
tikv-ctl --data-dir <data-dir> raw scan <start-key> <end-key>修改数据
bash
# 向本地数据目录写入数据
tikv-ctl --data-dir <data-dir> raw put <key> <value>
# 从本地数据目录删除数据
tikv-ctl --data-dir <data-dir> raw delete <key>调试工具
查看日志
bash
# 查看 TiKV 日志
tikv-ctl --host <tikv-host> --port <tikv-port> log
# 查看特定级别日志
tikv-ctl --host <tikv-host> --port <tikv-port> log --level <level>查看线程信息
bash
# 查看 TiKV 线程信息
tikv-ctl --host <tikv-host> --port <tikv-port> threads查看内存使用
bash
# 查看 TiKV 内存使用情况
tikv-ctl --host <tikv-host> --port <tikv-port> memory生产环境使用
最佳实践
- 避免直接操作生产数据:除非必要,否则不要使用 tikv-ctl 直接修改生产环境数据
- 使用 PD 地址获取集群信息:在集群环境中,建议使用
--pd参数获取集群信息,而不是直接连接单个 TiKV 节点 - 定期备份配置:在修改配置前,建议备份当前配置
- 记录操作:在执行重要操作前,建议记录操作内容和预期结果
- 测试环境验证:在生产环境执行操作前,建议先在测试环境验证
注意事项
- 版本兼容性:确保 tikv-ctl 版本与 TiKV 版本匹配
- 权限控制:确保只有授权人员可以访问 tikv-ctl 工具
- 操作影响:某些操作可能会影响 TiKV 性能,执行前需评估风险
- 数据一致性:直接修改数据可能导致数据不一致,需谨慎操作
- 日志保留:建议保留操作日志,便于后续审计和故障排查
常见问题(FAQ)
Q1: tikv-ctl 无法连接到 TiKV 节点怎么办?
A1: 请检查以下几点:
- TiKV 节点是否正常运行
- TiKV 节点的地址和端口是否正确
- 网络连接是否正常,防火墙是否开放了相应端口
- TiKV 节点是否启用了安全认证,是否需要提供认证信息
Q2: 如何查看 TiKV 节点的详细状态?
A2: 使用 tikv-ctl status 命令可以查看 TiKV 节点的详细状态,包括:
- 基本信息:版本、启动时间、监听地址等
- 性能指标:QPS、延迟、内存使用等
- Raft 状态:Raft 组数量、Leader 数量等
- 存储状态:总容量、已使用容量、Region 数量等
Q3: 如何修改 TiKV 配置?
A3: 可以使用 tikv-ctl config set 命令动态修改 TiKV 配置。注意:
- 并非所有配置项都支持动态修改
- 修改配置前建议备份当前配置
- 某些配置项修改后需要重启 TiKV 节点才能生效
Q4: 如何查看特定 Region 的数据?
A4: 可以使用以下步骤查看特定 Region 的数据:
- 使用
tikv-ctl region region-id查看 Region 的详细信息,包括 StartKey 和 EndKey - 使用
tikv-ctl raw scan start-key end-key查看 Region 内的数据 - 如果需要查看具体 Key 的值,可以使用
tikv-ctl raw get key命令
Q5: tikv-ctl 与 tiup ctl tikv 有什么区别?
A5: tikv-ctl 是原生的 TiKV 控制工具,而 tiup ctl tikv 是通过 TiUP 调用 tikv-ctl 工具。两者功能基本相同,但使用 TiUP 可以更方便地管理不同版本的 tikv-ctl 工具,避免版本兼容性问题。在生产环境中,建议使用 tiup ctl tikv 命令。
