1. 安装
从oracle的网站(http://www.oracle.com/technology/global/cn/software/products/timesten/index.html)下载,timesten的安装文件。
将下载文件解压后,出现linux86文件夹,执行setup.sh,步骤如下
○ 输入安装的数据库实例的名字,默认是tt70
○ 选择你要安装的数据库的类型:1是纯内存数据库,2是oracle的前端缓存型内存数据库。
○ 选择你要安装的客户端和服务端类型:1数据库和客户端,2只安装数据库,3只安装客户端
○ 选择你的安装目录 如:/opt/tt70
○ 创建文件夹并解压安装
○ 选择你数据实例文件的存储目录 如:/var/timesten/tt70
○ 该数据库实例的监听端口默认为 17000
○ 设置该实例access control
Access Control 提供了一个对TimesTen的一个初级的权限保护功能,它只是对谁能通过正常的途径(比如ttisql、JDBC及ODBC)访问到相应的Data Store做了初级的限制;但并不是说,它对在操作系统级别上对Data Store的文件 以及 Log 文件的访问做除了安全保障。比如 root 用户,即使它不是TimesTen的用户,但root用户可以做他想做的任何事情,比如删除Data Store文件等。所以安装的时候一定要注意,一般建议设置为 yes,Yes时才允许TimesTen创建新的用户
如果在不更改监听端口的情况下,你可以在安装的时候除了access control选项
2. linux内核参数:
i. share memory:timesten需要使用共享内存,你可以通过/sbin/sysctl -w kernel.shmmax=2147483648在不启动的情况下
更改该值。可以通过/sbin/sysctl -a或者cat /proc/sys/kernel/shmmax命令 来查看更新后共享内存的值
ii. kernel.sem: timesten的一个数据库就是一个timesten的子进程,要想设置 kernel.sem是semaphores的缩写,你可以通过cat /proc/sys/kernel/sem来查看当前值.查看的默认结果是 250 32000 32 128,这四个值分别是
SEMMSL SEMMNS SEMOPM SEMMNI (对于这个四个值得解释,你可以通过man proc命令查询他们的解释。
如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEMAPHORES设置
SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。
SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。
SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010
你可以通过echo "5010 641280 5010 128" > /proc/sys/kernel/sem 命令在不启动的情况下设置这个值,也可以同通过
在/etc/sysctl.conf中增加 kernel.sem = 5010 641280 5010 128的方式修改该值。
源文档 <http://blog.chinaunix.net/u/12521/showart_508833.html>
3. timesten的服务端配置
安装好后(默认实例文件存储目录/var/timesten/tt70),在/var/timesten目录下的文件sys.odbc.ini中配置datasource。
3.1. 配置DSN的类型:
你需要现在[ODBC Data Sources]后面声明你要添加的DSN的驱动类型,TimesTen 7.0 Driver为服务端,TimesTen 7.0 Client Driver为client端
3.2. 配置服务端DSN:
以下是一个默认的tt70的datasource的配置:
[TT_tt70] //DSN名称
Driver=/opt/TimesTen/tt70/lib/libtten.so //驱动,无需更改
DataStore=/var/TimesTen/tt70/TT_tt70 //数据库文件的存储地址。
DatabaseCharacterSet=UTF8
如果你想添加一个你自己的datasource,你可以在文件中添加类似的一段配置。
以下是timesten的一个配置例子
[MD_TEST] //DSN名称
Driver=/opt/TimesTen/tt70/lib/libtten.so
DataStore=/var/TimesTen/tt70/md_test
DatabaseCharacterSet=UTF8
UID=oracle //登录的用户ID
PWD=Datuu(jiankong) //数据库密码
PermSize=1300 //永久内存区的大小,即DataStore的大小,单位为M
Connections=1500 //最大连接数,要小于内核参数kernel.sem的
你可以参考文章 http://blog.chinaunix.net/u2/64350/showart_504614.html 了解timesten连接的其他属性。
3.3. 用户权限
关于timesten的用户权限,在timesten的用户默认使用系统用户,当你配置的DSN没有配置UID和PWD属性时,你需以root用户权限登录,登录后默认的数据库用户即为root用户。如果你像使用其他用户,你需要在linux系统中创建该用户,或者直接在timesten中通过create user 用户名 identified by '密码’ 命令创建用户,并且直接赋予该用户权限,grant all to 用户名。这样你在C/S模式下连接DSN该使该用户的用户名和密码才能登录,登录后便是该用户的表空间。
4. timesten的客户端配置
如同timesten的服务端配置一样,你需要在[ODBC Data Sources]声明你的DSN的驱动类型,客户端的驱动为TimesTen 7.0 Client Driver。配置格式如下:
[RunDataCS_tt70] 客户端的DSN名称
TTC_SERVER=192.168.2.15:17200 Server端的ip地址和端口号
TTC_SERVER_DSN=RunData_tt70 要连接的数据库的DSN名称
5. 使用表的LRU规则
timesten表可以使用LRU规则,在某个DSN的datastore的内存到达一定阀值的时候进行自动清理,在创建表的建表语最后加入AGING LRU ON语句或者通过alter语句使表的LRU有效。
timesten的内建存储过程ttAgingLRUConfig(LowUsageThreshHold, HighUsageThreshHold,
AgingCycle)
LowUsageThreshHold 内存的使用率到达该值(百分比),停止清理
HighUsageThreshHold 内存的使用率到达该值时开始清理,清理阀值
AgingCycle 多少时间检查一次阀值
6. timesten的一些基本命令
i. Ttisql 和csttisql
ttisql命令和csttisql命令是分别连接本地DSN和远程DSN的命令。Ttisql DSN名称即可登陆该DSN,如:ttisql RunData_DT_CLIENTUSER
ii. Ttadmin
指定内存加载策略。
ttadmin -ramPolicy always 指定datestore的数据一直在内存中。
iii. Ttdestory
销毁某个datestore,某些连接参数(如:DatabaseCharacterSet,PermSize等)更改需要重建datestore,这样就需要销毁
该datestore,使用命令ttdestory dsn就可以销毁这个datestore。datestore的创建,实在配置了DSN后第一次连接执行时,
由timesten自动创建。
iv. Ttdaemonadmin
启动,关闭,重启 timesten的命令。
===========================================================
timesten常用命令和内置存储过程
===========================================================
作者: logzgh(http://logzgh.itpub.net)
发表于: 2008.01.07 09:26
分类: Timesten 内存数据库
出处: http://logzgh.itpub.net/post/3185/450050
---------------------------------------------------------------
timesten自带大量的命令和内置存储过程,通过它们可以做很多事情。
下面是经常会用到的一些命令和存存储过程的解释和用法。
1.ttAdmin(命令)
功能:
指定内存加载策略
指定replication agent策略
启动或停止cache agent
如:
[timesten@rh44server ~]$ ttadmin -query tt_eservice;
RAM Residence Policy : inUse
Replication Agent Policy : manual
Replication Manually Started : False
Cache Agent Policy : manual
Cache Agent Manually Started : False
[timesten@rh44server ~]$ ttadmin -rampolicy always tt_eservice;
RAM Residence Policy : always
Replication Agent Policy : manual
Replication Manually Started : False
Cache Agent Policy : manual
Cache Agent Manually Started : False
[timesten@rh44server ~]$ ttadmin -cachePolicy always tt_eservice;
2.ttDaemonAdmin(命令)
功能:启动/停止TimesTen main daemon, Server and Webserver.
语法:
ttDaemonAdmin [-force] {-start | -stop | -restart}
ttDaemonAdmin -startserver
ttDaemonAdmin [-force] -stopserver
ttDaemonAdmin [-startwebserver | -stopwebserver]
3.ttBackup(命令)
功能:
备份data store。
例如:
[timesten@rh44server ~]$ ttbackup -type filefullenable -dir /home/timesten/ -fname logzhou tt_eservice;
Backup started ...
Backup complete
恢复
ttRestore -dir /home/timesten/ -fname logzhou restoredDSN;
备到带库
ttBackup -type streamFull tt_eservice | dd bs=64k of=/dev/rmt0
4.ttBulkCp(命令)
功能:
在内存表和文件之间转换数据。
两种模式:
• In copy-in mode, rows are copied into an existing TimesTen table from one or more ASCII files (or stdin).
• In copy-out mode, an entire TimesTen table is copied to a single ASCII output file (or stdout).
例如:
[timesten@rh44server ~]$ ttBulkCp -o dsn=tt_eservice tracelog tracelog.dump
1/1 row copied
5.ttBlockinfo (存储过程)
功能:显示perm内存中block的利用信息和碎片信息。
用法:CALL ttBlockInfo;
6.ttBookmark(存储过程)
功能: 显示日志文件信息。
用法: Call ttBookmark;
7.ttCachePolicySet (存储过程)
功能:指定cache agent的策略。
用法:call ttCachePolicySet('always');
8.ttCachePropagateFlagSet
功能: 允许临时停止把更新推向oracle db
用法: Call ttCachePropagateFlagSet(0); 该标志在每次事务提交或回滚段后都被重置,所以如果需要关闭的话,要将autocommit设为0.
如果设为1的话,则update会推向oracle。
9.ttCacheStart/ttCacheStop
功能:启动/关闭cache agent
用法: Call ttCacheStart();
10.ttCkpt
功能:手动做non-blocking checkpoint
用法:CALL ttCkpt();
CALL ttCkpt(1,10);
11.ttCkptBlocking
功能:手动做一个blocking checkpoint
用法: Call ttCkptBlocking();
Call ttCkptBlocking(1,10);
12.ttCkptConfig
功能: 设置后台checkpoint的频率,速率
用法: Call ttCkptConfig (ckptFrequency, ckptLogVolume, ckptRate)
13.ttCompact
功能: 整合perm和temp内存的碎片,类似于oracle里面的coalescs。
用法:CALL ttCompact;
14.ttConfiguration
功能: 查询参数设定。
用法: Call ttConfiguration();
15.ttDataStoreStatus
功能: 查看data store的状态。
用法:call ttdatastorestatus('/home/timesten/TimesTen/eservice/info/TT_eservice');
16.ttLockLevel
功能:设置lock level.
用法:Call ttLockLevel (lockLevel);
lockLevel取值为Row和DS
17.ttLogBufPrint
功能: 查看log buffer里面的内容
用法: ttLogBufPrint (verbose, maxLen)
CALL ttLogBufPrint(1,0);
CALL ttLogBufPrint(2,0);
18.ttOptClearStats
功能:清除表格上面的统计信息。
用法:ttOptClearStats (tblName, invalidate)
invalidate取0 (no) or 1 (yes). 0表示即使清掉了统计信息后,也不会影响现有的command。
19.ttOptEstimateStats
功能: 收集表格上面的统计信息。
用法:ttOptEstimateStats (tblName, invalidate, sampleStr)
其中sampleStr取值为'n ROWS’或‘p PERCENT’,
20.ttRepDeactivate
功能:将active状态的data store改为active standby状态
用法:CALL ttRepDeactivate();
21.ttRepStart/ttRepStop
功能:启动/关闭replication agent.
22.ttRepStateGet()
功能: 获取data store的状态
用法:CALL ttRepStateGet();
< STANDBY >
23.ttRepStateSet
功能: 将active standby状态的data store改为Active状态,即master。
用法:CALL ttRepStateSet('ACTIVE');
24.ttSize
功能: 预估表格的大小
用法:ttSize(tblName, nRows, frac)
其中nRows表示预估表格会有多少条记录。frac表示预估表中varbinary或varchar类型字段的碎片,该参数可选。
如:
Command> call ttsize('tracelog',10000000,null);
< 3041157861.00000 >
25.ttDestory(命令)
功能:删除一个data store,包括checkpoint文件,logfile。用它能够安全完整地删除data store.
语法:ttDestroy [[-wait] [-timeout secs]] [-force] {-connStr connection_string | DSN | dspath}
26.ttmodinstall(命令)
功能:修改端口或者enable/disable access control.
语法:
ttmodinstall -port portNumber
ttmodinstall -enableAccessControl
ttmodinstall -changeOracleSettings
27.ttuser(命令)
功能:输入一个密码,产生加密密码。
语法:ttuser -pwdcrypt
28.ttStatus(命令)
功能:显示data store的状态
29.ttSchema(命令)
功能:打印出对象的ddl语句
语法:ttSchema [-l] [-c] [ -list {all | tables | views | sequences |cachegroups | repschemas } [,...] ]
[-st | -systemTables] [-u TT_instance] [-connStr connection_string | DSN ] [[owner.]name][...]
30.ttRepAdmin(命令)
功能:显示replicatioin的定义,监控replication的状态
=======================================================================
1、linux下客户端sys.odbc.ini配置(默认路径在/var/TimesTen/)
[tt_mkt]
TTC_SERVER=tt_test
TTC_SERVER_DSN=tt_test
2、linux下客户端sys.ttconnect.ini配置(默认路径在/var/TimesTen/)
[tt_test]
Description=TimesTen Server
Network_Address=10.1.11.123
TCP_PORT=17003
3、timesten服务器的安装
去oracle官方网站下载timesten
timesten下载后一路下一步就可以了,不过要注意Access control enabled的配置
安装完成后要进行对/etc/sysctl.conf进行配置
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144