ttserver装配
ttserver由Tokyo Cabinet和Tokyo Tyrant构成。Tokyo Cabinet是一款高性能基于文件系统的开源数据库,Tokyo Tyrant是在Tokyo Cabinet的网络服务器,支持Memcached协议和Http协议。安装的先后顺序是先在机器上安装Tokyo Cabinet,然后在同一台机器上再安装Tokyo Tyrant。启动ttserver只需要启动Tokyo Tyrant服务器就可以了。Tokyo Tyrant的启动方式可以有“单机启动模式”和“双机互为主辅模式”。
ttserver的安装依赖以下两个包:
1、zlib-1.2.3.tar.gz
2、bzip2-1.0.4.tar.gz configure: error: bzlib.h is required 安装zlib tar -zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure make make install 安装bzip
tar -zxvf bzip2-1.0.4.tar.gz cd bzip2-1.0.4 make make install 安装Tokyo Cabinet <!--EndFragment--> tar -zxvf tokyocabinet-1.4.43.tar.gz cd tokyocabinet-1.4.43 ./configure --prefix=/opt/cabinet --enable-off64 (参数--enable-off64 可以使数据库文件突破2GB的限制) 这个时候可能还是会报错误,提示configure: error: bzlib.h is required 那就需要在configure中继续挂参数--with-zlib的位置了 make make install 在make install的时候可能会报错,错误信息如下: //******************************************************************************** /usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC //******************************************************************************** 如果碰到这样的错误,就需要修改zlib和bzip包的makefile文件,再重新安装了。并且要注意一下安装的顺序。 1、删除/usr/local/lib下的libbz2.a和libz.a 如果发现 libbz2.a: could not read symbols: Bad value 2.修改zlib-1.2.3的Makefile文件 CFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1 最后make 还有 make install
若linux系统未安装或这两个包没有安装好,在Tokyo Cabinet的configure时会报错:
/usr/local/lib/libbz2.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libtokyocabinet.so.9.6.0] Error 1
就应该把/usr/local/lib中的libbz2.a删掉
进入解压缩的zlib-1.2.3目录,用make clean命令清理一下。
同样,/usr/local/lib/libz.a: could not read symbols
操作同上,删掉libz.a,把bzip2-1.0.4目录的编译文件清理一下。
如果找不到这两个文件的位置,可以在终端敲上:
find -name libbz2.a
CC=gcc -fPIC
如果你之前编译过了,一定要用make clean清掉。
3.修改bzip2-1.0.4的Makefile文件
CC=gcc -fPIC
AR=ar
RANLIB=ranlib
LDFLAGS=
BIGFILES=-D_FILE_OFFSET_BITS=64
CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES)
同样,bzip2有一个Makefile-libbz2_so的文件,编译时会调用,当然你也可以单个编译:
make -f Makefile-libbz2_so
make clean
make
make install
这两个包安装好后再回到Tokyo Cabinet的安装目录
make clean
make
make install
成功。
接下来安装Tokyo Tyrant
tar -zxvf tokyotyrant-1.1.33.tar.gz
cd tokyotyrant-1.1.33
./configure --prefix=/opt/tyrant --with-tc=/opt/cabinet (--with-tc=/opt/cabinet 为你的cabinet安装目录)
make
make install
建立tokyotyrant数据存放目录
mkdir /ttserver
启动ttserver进程
cd /opt/tyrant/bin
如果有大量的客户端连接,确保我们的文件描述符够用。系统默认是1024,我们可以用使用“ulimit”来重新设定
参数说明
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 : 指定用来存放同步时间戳的文件名。
停止tokyotyrant(ttserver)
ps -ef | grep ttserver
找到ttserver的进程号并kill,例如:
kill -TERM 2159