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服务器地址:
点击 Test Data Source Connection,都显示success,则表明连接成功,下面用ttisql测试:
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