进入工具所在目录,输入 ./tcapsvrmgr help 即可获得该工具所支持的命令列表,如下所示:
restore
getcount
compare
listmeta
filterrecord
listrecord
listrecordsize
printenginestat
printindexstat
changeid
deletebykey
import
getrecord
partkeyrestore
changelocalsequence
changesuccsyncsequence
overwritesuccsyncseqwithlocalseq
checklistindexelement
listindexusage
注意:
在使用工具时,工具的版本必须和svr的版本一致
在复制或备份引擎文件时,必须先正确停止对应的svr进程
在使用工具对引擎文件或ulog文件进行操作前,请注意备份
建议将命令需要的文件与工具置于同一目录下,或使用绝对路径的方式指定文件
执行 ./tcapsvrmgr help 可以获得subcommand的详细介绍与用法。
该命令用于对引擎文件进行整理或者恢复,命令格式为 ./tcapsvrmgr restore engfile [--quick --no-backup --no-report --output= --dest-eng-file-args= --compress= --last-access-time= ],其中,engfile为必填参数,表示要进行整理或者恢复的引擎文件,其余可选参数的含义如下:
--quick 指定该参数表示采用快速模式
--no-backup 指定该参数表示不对源引擎文件进行备份
--no-report 指定该参数表示不生成统计报告
--output 该参数指定目标引擎文件的目录,若不指定该参数,则与源引擎文件目录相同
--dest-eng-file-args 该参数用于设置目标引擎文件的参数,如--dest-eng-file-args=#bnum=750000#xmsiz=10000000,若不指定该参数,则保持与源引擎文件相同
--compress 指定在生成目标引擎文件时使用的压缩算法,no表示不进行压缩,snappy表示使用snappy压缩算法
--last-access-time 指定该参数表示将目标引擎文件中数据的最近访问时间设为指定值,该参数的取值范围为[0, 1893427200]
当引擎文件的参数配置不合理时,可以通过restore命令进行重新配置;当引擎文件损坏(如tcapsvr进程被kill掉)时,可以使用restore命令进行修复。
示例:当要对AppID=2,ZoneID=3,Table_Name=test_table,ShardID=1的的引擎文件进行修复时,可以执行 ./tcapsvrmgr restore /data1/1.2.2.2/AppID_2_ZoneID_3/test_table_1.txh --output=./ --quick --compress=snappy --log-level=debug
该命令用于获取指定引擎文件中的记录数目,命令格式为 ./tcapsvrmgr getcount engfile,engfile表示引擎文件。
示例:./tcapsvrmgr getcount /data1/1.2.2.2/AppID_2_ZoneID_3/test_table_1.txh
该命令用于判断两个引擎文件的中的数据是否一致,命令格式为 ./tcapsvrmgr compare --eng-file=1.txh --dest-eng-file=2.txh [--check-data-version --check-access-time --print-miss-value],其中,前两个必填参数为要比较的两个引擎文件,后面三个可选参数的含义如下:
--check-data-version 指定该参数表示检查数据版本是否一致
--check-access-time 指定该参数表示检查数据的最后访问时间是否一致
--print-miss-value 指定该参数表示将记录数目较少的引擎文件中所缺少的记录打印到文件
示例:对主备节点上AppID=2,ZoneID=3,Table_Name=test_table,ShardID=1的引擎文件进行对比,可以执行 ./tcapsvrmgr compare --eng-file=/data1/1.2.2.1/AppID_2_ZoneID_3/test_table_1.txh --dest-eng-file=/data1/1.2.2.2/AppID_2_ZoneID_3/test_table_1.txh
该命令用于获取指定引擎文件的AppID、ZoneID、Table_Name、ShardID、CheckPoint、SuccSyncSequence以及表结构等信息,命令格式为 ./tcapsvrmgr listmeta engfile,engfile表示引擎文件。
示例:./tcapsvrmgr listmeta test_table_1.txh
该命令用于将指定引擎文件中的记录按照某一规则进行过滤,并将过滤出来的记录保存至新的引擎文件中,且生成的引擎文件与源引擎文件参数相同。
命令格式为 ./tcapsvrmgr filterrecord filter.so test_table_1.txh,其中filter.so为用户生成的动态库文件,test_table_1.txh为引擎文件。
假如用于过滤记录的代码文件为filter.cpp,可以使用 g++ -fPIC -shared -g -lstdc++ filter.cpp -o filter.so 生成对应的动态链接库文件。在filter.cpp文件中,需要根据具体需求实现FilterRecord函数。
FilterRecord函数示例 展开源码
按照上述函数示例生成so文件并执行filterrecord命令后,将会得到两个新的引擎文件:one_test_table_1.txh 和 two_test_table_1.txh,分别用于保存 TimeKey=1 的记录和 TimeKey=2 的记录,可以使用listrecord或getrecord命令对新生成的引擎文件进行查看。
更多信息请关注TcaplusDB微信公众号,风里雨里,我们一直在等你!
TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。