TimesTen安装使用

 

     FastDB是性能很不错的开源实时数据库,使用中发现在高并发情况下表现不是很好,实时库很容易发生损坏;在断电情况下,实时库也容易损坏,不太稳定,无法利用到实际项目中.TT是Oracle公司的实时数据库,稳定性高,另外可以与oracle互通操作,数据可靠性比较高

 

1.安装

wget http://download.oracle.com/otn/timesten/112274/timesten112274.linux8664.tar.gz

tar -xvf timesten112274.linux8664.gz

cd linux8664 

./setup.sh 

安装过程中,需要设置安装目录,数据存放目录,端口之类的设置等

 

2. 启动服务

./ttDaemonAdmin -start|stop 

安装完成后TT会自动启动,开机后随机启动; 通过命令查询: ps -ef|grep TimesTen

 

3. 配置

数据源配置目录 /var/TimesTen/ 有两个ini文件

sys.odbc.ini

sys.ttconnect.ini 

里面配置了很多demo数据源,提供本地和网络访问方式 

 

[ODBC Data Sources]

sampledb_1122=TimesTen 11.2.2 Driver      # 名为 sampledb_1122 本地数据源

sampledbCS_1122=TimesTen 11.2.2 Client Driver     # 名为 sampledbCS_1122的C/S数据源

 

[sampledb_1122]

Driver=/usr/local/timesten/TimesTen/tt1122/lib/libtten.so   # 本地访问的ODBC驱动路径

DataStore=/var/TimesTen/tt1122/DemoDataStore/sampledb_1122   # 数据库路径

PermSize=40  # 数据库持久化区大小

TempSize=32    # 数据库临时区大小 

PLSQL=1     #启用PLSQL

DatabaseCharacterSet=US7ASCII    # 数据库编码方式

 

[sampledbCS_1122]

TTC_SERVER=ttLocalHost_tt1122    # 远程服务器名称,对应 sys.ttconnect.ini  配置项

TTC_SERVER_DSN=sampledb_1122   # 远程服务器上数据源名称

 

4. 操作

4.1 基本sql操作与普通数据库一致,help显示操作命令

 

./ttisql     # 本地访问客户端

connect "dsn=sampledb_1122"    # 连接dsn

 

create user scada identified by 'scada';    # 新建用户

grant all to scada;  # 授权

 

tables;   # 显示所有的表

procedures;   # 显示存储过程

 

./ttIsqlCS   # 远程访问客户端

connect "dsn=sampledbCS_1122;uid=scada;pwd=scada"

 

4.2 windows连接Linux TT服务器

控制面板 --> 管理工具 --> ODBC数据源管理  --> 系统DSN --> 添加 --> TimesTen Client 11.2.2

servers --> Add ,配置linux服务器地址:

 

 

TimesTen安装使用_TimesTen

 

TimesTen安装使用_数据库_02

 

点击 Test Data Source Connection,都显示success,则表明连接成功,下面用ttisql测试:

 

 

TimesTen安装使用_数据库_03

 

5. C++连接数据库

进入 $(TimesTen)/tt1122/quickstart/sample_code/ttclasses,运行make即可编译所有的示例代码,参见basics.cpp有完整的操作

 

linux64上编译:

g++ -g -o mybasic -DTT_64BIT -DTTCLIENTSERVER -DTTEXCEPT  \

-I. \

         -I/usr/local/TimesTen/tt1122/include  \

         -I/usr/local/TimesTen/tt1122/quickstart/sample_code/common  \

         -L/usr/local/TimesTen/tt1122/lib -lttclassesCS  \

         mybasic.cpp

 

ttclasses api 提供了 TTConection,TTCmd,TTStatus 三个类来操作TT

virtual void Connect(const char* connStr);    # 连接TT,connStr为"dsn=sampledbCS_1122;uid=scada;pwd=scada" 字符串

通过分析发现,ODBC的连接驱动做的非常不灵活,不利于程序部署,连接只依赖DSN配置. 必须先安装环境客户端环境后,才能正常连接远程TT服务器

 

更多信息参见TimesTen官方网站: ​​http://download.oracle.com/otn_hosted_doc/timesten/1122/quickstart/html/main/home.html​