RawKV 备份和恢复

TiKV 有时可以独立于 TiDB, 与 PD 构成 KV 数据库,此时的产品形态为 RawKV。Backup & Restore (BR) 支持对使用 RawKV 的产品进行备份和恢复,本文介绍 RawKV 备份恢复的相关知识。

备份 RawKV

在某些使用场景下,TiKV 可能会独立于 TiDB 运行。考虑到这点,BR 提供跳过 TiDB 层直接备份 TiKV 数据的功能:

br backup raw --pd $PD_ADDR \ -s "local://$BACKUP_DIR" \ --start 31 \ --ratelimit 128 \ --end 3130303030303030 \ --format hex \ --cf default

以上命令会将 default CF 上 [0x31, 0x3130303030303030) 之间的所有键备份到 $BACKUP_DIR

这里,--start--end 的参数会先依照 --format 指定的方式解码,再被发送到 TiKV 上去,目前支持以下解码方式:

  • "raw":不进行任何操作,将输入的字符串直接编码为二进制格式的键。
  • "hex":将输入的字符串视作十六进制数字。这是默认的编码方式。
  • "escaped":对输入的字符串进行转义(backslash-escaped)之后,再编码为二进制格式,格式类似于 abc\xFF\x00\r\n

恢复 RawKV

备份 RawKV相似,恢复 RawKV 的命令如下:

br restore raw --pd $PD_ADDR \ -s "local://$BACKUP_DIR" \ --start 31 \ --end 3130303030303030 \ --ratelimit 128 \ --format hex \ --cf default

以上命令会将范围在 [0x31, 0x3130303030303030) 的已备份键恢复到 TiKV 集群中。这里键的编码方式和备份时相同。