Skip to content

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

生产环境使用

最佳实践

  1. 避免直接操作生产数据:除非必要,否则不要使用 tikv-ctl 直接修改生产环境数据
  2. 使用 PD 地址获取集群信息:在集群环境中,建议使用 --pd 参数获取集群信息,而不是直接连接单个 TiKV 节点
  3. 定期备份配置:在修改配置前,建议备份当前配置
  4. 记录操作:在执行重要操作前,建议记录操作内容和预期结果
  5. 测试环境验证:在生产环境执行操作前,建议先在测试环境验证

注意事项

  1. 版本兼容性:确保 tikv-ctl 版本与 TiKV 版本匹配
  2. 权限控制:确保只有授权人员可以访问 tikv-ctl 工具
  3. 操作影响:某些操作可能会影响 TiKV 性能,执行前需评估风险
  4. 数据一致性:直接修改数据可能导致数据不一致,需谨慎操作
  5. 日志保留:建议保留操作日志,便于后续审计和故障排查

常见问题(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 的数据:

  1. 使用 tikv-ctl region region-id 查看 Region 的详细信息,包括 StartKey 和 EndKey
  2. 使用 tikv-ctl raw scan start-key end-key 查看 Region 内的数据
  3. 如果需要查看具体 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 命令。