1.先启动一个测试用的ttserver
注意使用的所有路径都是绝对路径
ttserver -host 192.168.0.100 -port 20000 -thnum 4 -dmn -ulim 1024m -ulog $(pwd)/ulog/ -log $(pwd)/temp/test.log -pid $(pwd)/temp/test.pid -sid 9 $(pwd)/temp/test_data.tch#bnum=1000#rcnum=0#xmsiz=0m

2. 查看服务器统计信息
tcrmgr inform -port 20000 -st 192.168.0.100

3. 写入数据
tcrmgr put -port 20000 192.168.0.100 test1 value1

4. 读取数据
tcrmgr get -port 20000 192.168.0.100 test1

5. 删除数据
tcrmgr out -port 20000 192.168.0.100 test1

6. 查看所有的key
tcrmgr list -port 20000 192.168.0.100

7. 备份数据
注意:路径是服务器上的绝对路径,否则显示“./tcrmgr: error: 9999: miscellaneous error”
tcrmgr copy -port 20000 192.168.0.100 $(pwd)/temp/test2.tch

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日志恢复数据
注意:路径是服务器上的绝对路径
tcrmgr restore -port 20000 192.168.0.100 $(pwd)/old_ulog/

12.  打印更新日志(挂起,一直显示日志)
可能是用于实时查看ttserver有哪些操作,相当于tail -f
tcrmgr repl -port 20000 -ph 192.168.0.100

13.  下一个实验:启动一个带复制功能的ttserver,以前面启动的ttserver为master
ttserver -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
tcrmgr setmst -port 20001 -mport 20002 192.168.0.100 192.168.0.100
注意:只有以复制方式启动的ttserver,修改master后才能从新的数据库复制数据
注意:每个ttserver只能有一个master,修改后,不能再从以前的master复制数据

如何备份和恢复

登录到ttserver服务器,执行如下命令

]# tcrmgr copy -port 11211 localhost  /data/backup.tch

localhost :ttserver主机名

/data/backup.tch  备份文件保存的路径,请注意,这里指ttserver所在机器的路径。

同样,也可以备份远程机器,

]# tcrmgr copy -port 11211 remotehost  /data/backup.tch

备份文件将保存在remotehost的/data/backup.tch

接下来恢复数据就比较简单,直接替换掉原有ttserver的数据文件,启动就可以了。

这种方式适用于定期的数据备份,在出现灾难故障时可以恢复到某一个时间的数据。不适合用来增加从库时需要的数据库文件。

如何不停机增加从库

从库需要进行同步,那么就需要有个文件的时间版本,防止数据冲突。

首先我们建立一个一个如下的脚本文件,存为"backup.sh",并赋予执行权限(chmod 755 backup.sh)。比如存在:

/data/backup/路径下。

#! /bin/sh
srcpath="$1"
destpath="$1.$2"
rm -f "$destpath"
cp -f "$srcpath" "$destpath"

接下执行如下命令,执行的时间会根据你的磁盘性能和数据大小而定。

tcrmgr copy -port 11211 masterhost '@/data/backup/backup.sh'  

materthost:主库主机名,请注意:backup.sh存放的路径是在materthost机器上。

'@/data/backup/backup.sh'  :如果tcrmgr copy命令中,参数以@开始,那么后面的字符串作为命令行执行。

执行完成后,我们进入ttserver的数据目录,执行ls -lh会发现类似下面的文件名,

-rw-r--r--  1 root root 9.2G Aug 25 14:31 casket.tch.1251181588942889

请确认产生casket.tch.xxxxx类似的文件名,xxxxx代表时间戳。

接下来在从库salve上以我们备份的文件来运行ttserver,把时间错写入到一个时间戳文件ttserver.rts。

ls
cp casket.tch.xxxxx casket.tch
echo xxxxx >ttserver.rts
mkdir ulog
ttserver -mhost masterhost -mport mport -port 11211-ulog ulog -sid 2 -rts ttserver.rts  casket.tch

运行后,ttserver将会以此时间戳进行同步。

masterhost :主库主机名

mport :  主库端口号

到此我们就完成了一个salve从库ttserver的增加。

小结

推荐备份也使用2中用到的方式,上面带上了时间戳,可以精确的知道数据的版本时间。

另外请注意:在使用此方法进行备份的时候,ttserver会在备份过程中一直保持同步阻塞和不修改数据。所以可以保证备份出来的版本跟时间戳的一致性。

转载于:https://www.cnblogs.com/kudosharry/articles/2269158.html

Tokyo Tyrant的下工具的使用相关推荐

  1. Tokyo Tyrant

    [文章作者:张宴 本文版本:v1.4 最后修改:2010.06.11 转载请注明原文链接: http://blog.s135.com/read.php/362/] Tokyo Cabinet 是日本人 ...

  2. Tokyo Tyrant安装和配置

    Tokyo Tyrant安装和配置 Tokyo Cabinet是日本人开发的一款DBM数据库,读写速度非常快.Tokyo Tyrant也是由同一作者开发的Tokyo Cabinet网络接口,兼容mem ...

  3. Tokyo Tyrant基本规范(1)--介绍和安装

    Tokyo Tyrant基本规范,翻译自tt官网,地址. 本节介绍Tokyo Tyrant的基本知识和安装方法. 一.介绍 Tokyo Tyrant是名为Tokyo Cabinet的DBM的网络接口的 ...

  4. Tokyo Tyrant优势

    相比Memcachedb而言,Tokyo Tyrant具有以下优势: 1.故障转移:Tokyo Tyrant支持双机互为主辅模式,主辅库均可读写,而Memcachedb目前支持类似MySQL主辅库同步 ...

  5. MongoDB与Tokyo Tyrant性能比较(2):并发写入操作

    在上一次的测试中我们比较了MongoDB与Tokyo Tyrant的Table Database两种存储方式的性能.不过由于条件限制,我只能在自己的MBP上测试,而这至少会带来两个问题.首先,真实环境 ...

  6. Tokyo Cabinet及Tokyo Tyrant tcb tch比较分析

    TC(Tokyo Cabinet )是日本人 平林幹雄 开发的一款 Key-Value 键值数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.402秒,读取100万条数据只需0.334秒. ...

  7. Tokyo Tyrant基本规范(4)--协议

    本节介绍Tokyo Tyrant的远程数据库API,Lua扩展和协议.部分细节内容没有翻译. 五. 远程数据库API 远程数据库是一组用于使用Tokyo Cabinet抽象数据库的接口,由Tokyo ...

  8. Tokyo Tyrant (ttserver)的master-slave复制协议分析

    Tokyo Tyrant (ttserver)的master-slave复制协议分析                                         The  replication ...

  9. 请注意Tokyo Tyrant (ttserver)在大数据量下的不稳定

    [文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-06-20] ttserver不稳定案例 1. CMS a系统的文章采用了ttserver存储. ...

最新文章

  1. Iaas-Paas-Saas
  2. 《Oracle从入门到精通》读书笔记第八章 管理表空间和数据文件之二
  3. python模块之collections模块
  4. 监控h264视频不能正常解码怎么办
  5. 很久很久以前,我国有一批电脑高手
  6. 51Nod 1873 - 初中的算术(JAVA)
  7. Windows核心编程_窗口属性表
  8. 网络管理常用命令(6/14) -netstat命令详解
  9. 公主与骑士-ZZUOJ
  10. android从相册或拍照获取照片第三方开源库TakePhoto
  11. ERROR:ORA-01031:insufficient privileges完美解决方法
  12. 【软件测试】—— 基础知识总结
  13. sprintf你知道多少
  14. DHL供应链将再投资2.18亿欧元加码中国市场
  15. 智能机器人客服 让对话“恰到好处
  16. Python 四大数据类型总结
  17. Python 获取线程返回值获取
  18. c语言 整数类型,C语言的数据类型——整数类型和浮点类型
  19. PA8题解报告——平均气温(Temperature)
  20. 你用esp8266做出过什么有趣的东西?

热门文章

  1. 什么才是好代码、高质量代码?
  2. 关系数据库是如何工作的
  3. iOS 代码实现获得应用的版本号(Version/Build)
  4. Linux下一些实用的操作记录
  5. Java instanceof 关键字【复习】
  6. makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
  7. oracle字段求和_oracle大纲
  8. 中央空调水系统与制冷系统运行参数
  9. pitch android,Pitch Clash
  10. 无限乱斗机器人ap出装_LOL:无限火力仅剩4天,这5个英雄一定要尝试!