首页 > 代码库 > ttserver常用操作
ttserver常用操作
直接输入tcrmgr查看用户帮助
-----------------------------------------------------------------------------------------------------------------
1.先启动一个测试用的ttserver
注意使用的所有路径都是绝对路径!
补充:目录temp和ulog需要自己手动提前创建
#mkdir temp ulogttserver -host 172.31.0.11 -port 2001 -thnum 4 -dmn -ulim 1m -ulog $(pwd)/ulog/ -log $(pwd)/temp/test.log -pid $(pwd)/temp/test.pid -uas -sid 9 $(pwd)/temp/test_data.tch#bnum=1000#rcnum=0#xmsiz=0m
2. 查看服务器统计信息tcrmgr inform -port 1001 -st 172.31.0.11
3. 写入数据(如果已存在该键,则更新值)
tcrmgr put -port 1001 172.31.0.11 test1 value1
4. 读取数据某个键(无pv选项,默认输出:值)
tcrmgr get -port 1001 172.31.0.11 key1-1
a
读取多个键(无pv选项,默认输出:键 值)
tcrmgr mget -port 1001 172.31.0.11 key1-1 key1-2
key1-1 a
key1-2 a
5. 删除数据-某个键tcrmgr out -port 1001 172.31.0.11 test1
清空实例(所有键)
tcrmgr vanish -port 1001 172.31.0.11
6. 查看
查看所有的键tcrmgr list -port 1001
172.31.0.11
key1
查看所有键和值
tcrmgr list -port 1001 -pv
172.31.0.11
key1 value1
列出指定键前缀的键值
[root@centos-6 ~]# tcrmgr list -port 1001 -fm 1key -pv 172.31.0.11
1key-2 a
1key-1 a
列出指定键前缀的键值只输出一行
tcrmgr list -port 1001 -fm 1key -pv -m 1 172.31.0.11
1key-2 a
7. 使用copy的备份、还原(写锁定、读不受影响)
备份(copy)
注意:路径是服务器上的绝对路径,否则显示“./tcrmgr: error: 9999: miscellaneous error”(经测试新版本不报错,但是备份失败)tcrmgr copy -port 1001 172.31.0.11 $(pwd)/temp/test2.tch_`date +%s%N|head -c16`
注:上面为30个线程数据文件,如果只有一个线和,则test2.tch会直接生成文件
第一种情况:只使用copy完全备份还原
测试恢复到1002实例
停止1002,如果正在运行
因为启动脚本的数据库文件目录名为port.tch所以改为1002.tch,替换现在有的1002.tch目录(或只拷贝里面的文件到现在有1002.tch)
脚本启动
完成,查看数据
注:如果30个实例的备份 还原到10个实例上,结果是10个实例上启动脚本指定10实例启用,还是会使用这30个备份文件存取。
第二种情况:配置一个从(在数据较大的时候推荐先使用copy备份数据还原,再启动实例,如果不设置默认启用后从头开始同步)
1、如果要创建新实例,请先默认初始化目录等,如果是老实例,停止实例
2、把备份数据导入到从tt,进行还原
3、修改rts文件把备份文件名的时间部分16位秒,写入rts文件(启动后从该点开始取主的ulog)
3、修改启动脚本主服务器信息
4、启动,
5、查看 信息
tcrmgr inform -st -port 3001 172.31.0.12
第三种情况:tt挂掉,有copy备份和ulog备份,两者结合最大化还原数据(ulog脚本可以只备份到最后更新文件的前一个文件)
1、如果要创建新实例,请先默认初始化目录等,如果是老实例,停止实例
2、把备份数据( copy备份和ulog)导入到从tt
3、修改rts文件把备份文件名的时间部分16位秒数,写入rts文件(启动后从该点开始取主的ulog)
4、还原copy备份
5、启动实例
6、还原ulog(copy时间后的ulog),根据备份 目录中的ulog文件(勿直接放到现在实例目录中)
7、tcrmgr restore -rcc -port 3001 172.31.0.12 `pwd`/ulog-bak
8、完成,查看数据
8. 日志导出(屏幕上打印,十六进制字符串格式)
注意:命令不同了
注意:目录是服务器上的ulog的绝对路径ttulmgr export $(pwd)/ulog/
9. 同步内存数据到磁盘(没搞懂有什么特别之处,可能是当ttserver使用-uas参数异步写入日志的时候起作用)tcrmgr sync -port 20000 192.168.0.100
10. 数据导入
注意:tsv格式的文件以TAB分隔,如:test2\tvalue2\n
注意:路径是本地路径,所以不必是绝对路径tcrmgr importtsv -port 20000 192.168.0.100 temp/2.tsv
11. 通过ulog日志恢复数据(如果有所有ulog备份可以不用copy,但是一般不建议这么做,数据太大的情况下)
注意:路径是服务器上的绝对路径tcrmgr restore -port 20000 192.168.0.100 $(pwd)/old_ulog/
12. 打印更新日志(挂起,一直显示日志)
可能是用于实时查看ttserver有哪些操作,相当于tail -ftcrmgr repl -port 1005 -ph 172.31.0.11
13. 下一个实验:启动一个带复制功能的ttserver,以前面启动的ttserver为masterttserver -host 192.168.0.100 -port 20001 -mhost 192.168.0.100 -mport 20000 -rcc -rts $(pwd)/temp_1/test_1.rts -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/temp_1/ -log $(pwd)/temp_1/test_1.log -pid $(pwd)/temp_1/test_1.pid -sid 10 $(pwd)/temp_1/test_1.tch#bnum=1000#rcnum=0#xmsiz=0m
14. 再启动一个普通的ttserver,不与其他服务器相关ttserver -host 192.168.0.100 -port 20002 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog_2/ -log $(pwd)/temp_2/test_2.log -pid $(pwd)/temp_2/test_2.pid -sid 11 $(pwd)/temp_2/test_data_2.tch#bnum=1000#rcnum=0#xmsiz=0m
15. 修改某个ttserver的master(只换端口也需要指定master IP)
主从时间一致,取时间date +%s%N | head -c 16,修改从的rts文件(这个时间之前的日志将不会在从上执行)tcrmgr setmst -port 20001 -mport 20002 192.168.0.100 192.168.0.100
注意:只有以复制方式启动的ttserver,修改master后才能从新的数据库复制数据
18、优化
tcrmgr optimize -port 1001 172.31.0.11
执行优化操作之后,会挨个对数据文件中的无效数据进行清洗,并且期间数据库 处于锁定状态,不可进行读写操作 。
执行过程可看到数据文件逐个被更新,新的数据文件生后,旧数据文件将被删除。从也受影响?
注:out操作需要优化,vanish操作不需要使用该选项优化
本文出自 “notepad” 博客,请务必保留此出处http://sndapk.blog.51cto.com/5385144/1546603
ttserver常用操作