Tokyo Cabinet与Tokyo Tyrant的双机互为主辅模式

启动tokyo tyrant

单机模式

ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 1 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m


如果希望提高查询的性能,可以把hash的桶设置得再大些,然后缓存的记录多一些。
同时,设置-uas参数异步写入日志,可提高写入的性能。不过这样可能导致日志丢失,降低了数据安全性。

双机互为主辅模式
服务器192.168.1.11:

ulimit -SHn 51200
ttserver -host 192.168.1.11 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 1 -mhost 192.168.1.12 -mport 11211 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m

服务器192.168.1.12:

ulimit -SHn 51200
ttserver -host 192.168.1.12 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 2 -mhost 192.168.1.11 -mport 11211 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m

应用程序可以访问任意一个服务器进行读写,且应用程序发现某服务器不能访问后,可立即转到另一台服务器。

注:
数据库类型由后缀决定
    Hash Database: tch
    B+ tree database: tcb
    fixed-length database: tcf
    table database: tct
    内存Hash Database: *
    内存B+ tree database: +

参数说明:
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [dbname]
      -host name: 指定需要绑定的服务器域名或IP地址。默认绑定这台服务器上的所有IP地址。
      -port num: 指定需要绑定的端口号。默认端口号为1978
      -thnum num: 指定线程数。默认为8个线程。
      -tout num: 指定每个会话的超时时间(单位为秒)。默认永不超时。
      -dmn: 以守护进程方式运行。
      -pid path: 输出进程ID到指定文件(这里指定文件名)。
      -log path: 输出日志信息到指定文件(这里指定文件名)。
      -ld: 在日志文件中还记录DEBUG调试信息。
      -le: 在日志文件中仅记录错误信息。
      -ulog path: 指定同步日志文件存放路径(这里指定目录名)。
      -ulim num: 指定每个同步日志文件的大小(例如128m)。
      -uas: 使用异步IO记录更新日志(使用此项会减少磁盘IO消耗,但是数据会先放在内存中,不会立即写入磁盘,如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
      -sid num: 指定服务器ID号(当使用主辅模式时,每台ttserver需要不同的ID号)
      -mhost name: 指定主辅同步模式下,主服务器的域名或IP地址。
      -mport num: 指定主辅同步模式下,主服务器的端口号。
      -rts path: 指定用来存放同步时间戳的文件名。
      #bnum=xxx: 指定bucket存储桶的数量。例如#bnum=10000,将最新最热的1万条记录缓存在内存中
hash数据库持参数: "bnum", "apow", "fpow", "opts", "rcnum", 和 "xmsiz".

rcnum'指定最大的缓存记录数。如果它不大于零,那么缓存记录不可用。默认不可用。

xmsiz   指定外部内存的大小。如果不大于0,内存不可用。默认是67108864,即64M。

`bnum' 指定bucket存储桶的数量。如果指定的数目不大于0,将会使用默认的数值131071.推荐数量应该在所有需要存储的记录总数的0.4-4倍

`apow' 跟一个key关联的记录数,2的N次方表示.  如果不指定,默认2^4=16.

`fpow' specifies the maximum number of elements of the free block pool by power of 2.  默认2^10=1024.

`opts' 指定选项,位或:`HDBTLARGE' 指定数据库的大小通过使用64位数组桶能够超过2G。
      `HDBTDEFLATE'  指定每个记录被Deflate encoding压缩。
      `HDBTBZIP' 指定每个记录被BZIP2 encoding压缩
      `HDBTTCBS'指定每个记录被 TCBS encoding压缩.
停止数据库

ps aux | grep ttserver | grep -v 'grep' | awk -F ' ' '{print $2}' | xargs kill -TERM

posted on 2011-11-30 12:34  kudosharry  阅读(301)  评论(0编辑  收藏  举报

导航