TimesTen学习(二)连接创建第一个数据库


TimesTen学习(一)安装篇 http://blog.itpub.net/23135684/viewspace-717741/

这篇文章主要讨论连接并创建第一个数据库。

1.timesten操作系统用户环境变量设置。

alias ls="ls -FA"
#ODBCINI
#SYSODBCINI
#SYSTTCONNECTINI 
TNS_ADMIN=/home/timesten/TimesTen/tt1122/info
export TNS_ADMIN
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=$PATH:/home/timesten/TimesTen/tt1122/bin
export PATH
LD_LIBRARY_PATH=/home/timesten/TimesTen/tt1122/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=/home/timesten/TimesTen/lib/
export CLASSPATH
NLS_LANG=AMERICAN_AMERICA.US7ASCII
export NLS_LANG
export TMP=/tmp
export TMPDIR=/tmp
umask 022

ODBCINI指定用户DSN配置文件,默认位置是$HOME/.odbc.ini。

SYSODBCINI指定系统DSN配置文件,如果找不到用户DSN配置文件,那么会去找系统DSN配置文件;默认位置是<daemon home>/sys.odbc.ini,如果使用的是root用户安装TimesTen,那么默认位置在/var/TimesTen/InstanceName/sys.odbc.ini或者/var/TimesTen/sys.odbc.ini。

SYSTTCONNECTINI制定TTCONNECT.INI文件所在位置,该文件存放的是对logical server names的定义(在http://blog.itpub.net/23135684/viewspace-1190342/文章会讲到它的用法),默认情况下该文件存放在<install_dir>/sys.ttconnect.ini

如果要使用Cache Connect那么需要设置TNS_ADMIN环境变量。

NLS_LANG环境变量的设置要和下面的DSN配置的字符集相一致。

2.用户DSN配置。

下面是访问TimesTen数据库的拓扑图:
TimesTen学习(二)连接创建第一个数据库
从上图可以看出,ODBC driver是必须要配置的。

下图是在Unix平台不同组件提供的ODBC驱动:
TimesTen学习(二)连接创建第一个数据库

下图表示的是不同类型的DSN以及它配置的位置和使用范围:

TimesTen学习(二)连接创建第一个数据库

timesten操作系统用户DSN配置文件:
/home/timesten/.odbc.ini

[ODBC Data Sources]
onett=TimesTen 11.2.2 Driver
 
[onett]
Driver=/home/timesten/TimesTen/tt1122/lib/libtten.so
DataStore=/opt/TimesTen/info/DataStore/onett
PermSize=40
TempSize=32
PLSQL=1
DatabaseCharacterSet=US7ASCII

    DataStore、LogDir、DatabaseCharacterSet叫做Data Store属性,DataStore一旦制定了文件存放的位置是不能随意移动的,移动DataStore文件需要执行迁移操作。

    PermSize表示配置数据库永久分区大小,在数据库加载的时候会将磁盘中的数据(DataStore)加载到永久分区,在Checkpoint操作的时候只会写永久分区到磁盘。该参数表示的是数据库的大小,存放的内容包括表、索引等,该参数值只能增大不能减小。

    TempSize表示配置数据库临时分区大小,临时分区包含当执行操作时候生成短暂的、转瞬即逝的数据,存放的内容包括游标、锁、编译后的命令、其他结构等,该区域在加载数据到内存中时被创建,在数据库从内存中卸载时被释放,该参数值可以增大或减小。
这两个参数叫做First connection属性,卸载数据库之后重新连接才能使更新的值生效。

    两个区域空间的使用情况可以通过查看SYS.MONITOR得到:
Command> select PERM_ALLOCATED_SIZE, TEMP_ALLOCATED_SIZE, PERM_IN_USE_SIZE, PERM_IN_USE_HIGH_WATER, TEMP_IN_USE_SIZE, TEMP_IN_USE_HIGH_WATER from SYS.MONITOR;
< 40960, 32768, 8850, 8850, 7817, 7880 >
1 row found.

上面字段单位都是KB。

通过ttSize可以查看到某一张表的大小以及行数等信息。

如果增大这两个值必须确保共享内存段有足够的设置,共享内存段的值要大于PermSize+TempSize+LogBufMB+64MB之和。

PLSQL=1表示启用PLSQL。

3.连接并创建TimesTen数据库。

[timesten@ttdb ~]$ mkdir -p /opt/TimesTen/info/DataStore/onett
[timesten@ttdb ~]$ ttisql

Copyright (c) 1996-2011, Oracle.  All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.


Command> connect "DSN=onett";
Connection successful: DSN=onett;UID=timesten;DataStore=/opt/TimesTen/info/DataStore/onett;DatabaseCharacterSet=US7ASCII;ConnectionCharacterSet=US7ASCII;DRIVER=/home/timesten/TimesTen/tt1122/lib/libtten.so;PermSize=40;TempSize=32;TypeMode=0;
(Default setting AutoCommit=1)

DataStore指定的是数据文件的位置,Log文件默认和数据文件在相同的位置。
第一次连接数据库的时候会在DataStore指定的位置创建相应的数据库。

[timesten@ttdb ~]$ cd /opt/TimesTen/info/DataStore/
[timesten@ttdb DataStore]$ ll
total 266256
drwxr-xr-x. 2 timesten ttadmin     4096 Jun 19 17:18 onett/
-rw-rw----. 1 timesten ttadmin 28192768 Jun 19 17:29 onett.ds0
-rw-rw----. 1 timesten ttadmin 28192768 Jun 19 17:39 onett.ds1
-rw-rw----. 1 timesten ttadmin 14927872 Jun 19 17:39 onett.log0
-rw-rw----. 1 timesten ttadmin 67108864 Jun 19 17:19 onett.res0
-rw-rw----. 1 timesten ttadmin 67108864 Jun 19 17:19 onett.res1
-rw-rw----. 1 timesten ttadmin 67108864 Jun 19 17:19 onett.res2

另外还可以通过下面的方式连接TimesTen数据库:
Command> connect "Driver=TimesTen Data Manager 11.2.2;DataStore=/opt/TimesTen/info/DataStore/onett;DatabaseCharacterSet=US7ASCII";
Connection successful: UID=timesten;DataStore=/opt/TimesTen/info/DataStore/onett;DatabaseCharacterSet=US7ASCII;ConnectionCharacterSet=US7ASCII;DRIVER=TimesTen Data Manager 11.2.2;TypeMode=0;
(Default setting AutoCommit=1)

第二次连接就比第一次快,第一次需要创建数据文件和启动相应的后台进程。

4.修改内存策略。

    默认情况下,当所有的会话断开之后TimesTen数据库将自动的从内存中卸载,这是默认的策略。

执行下面的命令使用ttadmin工具来修改内存策略:
[timesten@ttdb ~]$ ttadmin -rampolicy always onett
RAM Residence Policy            : always
Replication Agent Policy        : manual
Replication Manually Started    : False
Cache Agent Policy              : manual
Cache Agent Manually Started    : False

always表示onett数据库会一直被加载到内存中。除了always策略外还包括:In Use(默认策略)、In Use with RamGrace、Manual。


5.卸载数据库。

要卸载数据库必须将内存策略修改为inuse,等所有会话断开之后,数据库自然被卸载。

1).使用ttStatus查看数据库状态:

[timesten@ttdb ~]$ ttStatus
TimesTen status report as of Thu Jun 19 20:03:46 2014

Daemon pid 4760 port 53396 instance tt1122
TimesTen server pid 4770 started on port 53397
------------------------------------------------------------------------
Data store /opt/TimesTen/info/DataStore/onett
There are 11 connections to the data store
Shared Memory KEY 0x0a03067f ID 229377
PL/SQL Memory KEY 0x0b03067f ID 262146 Address 0x7fa0000000
Type            PID     Context             Connection Name              ConnID
Subdaemon       4764    0x0000000002262c50  Manager                         292
Subdaemon       4764    0x00000000022b92b0  Rollback                        291
Subdaemon       4764    0x00007f58c80008c0  Checkpoint                      287
Subdaemon       4764    0x00007f58cc0008c0  Log Marker                      288
Subdaemon       4764    0x00007f58d00008c0  IndexGC                         285
Subdaemon       4764    0x00007f58d80008c0  Monitor                         286
Subdaemon       4764    0x00007f58dc0008c0  Aging                           283
Subdaemon       4764    0x00007f58e00008c0  AsyncMV                         284
Subdaemon       4764    0x00007f58e40008c0  HistGC                          289
Subdaemon       4764    0x00007f58e80008c0  Deadlock Detector               290
Subdaemon       4764    0x00007f58fc0008c0  Flusher                         282
RAM residence policy: Manual
Data store is manually loaded into RAM
Replication policy  : Manual
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Accessible by group ttadmin
End of report

2).修改内存策略:

[timesten@ttdb ~]$ ttadmin -rampolicy inuse onett
RAM Residence Policy            : inUse
Replication Agent Policy        : manual
Replication Manually Started    : False
Cache Agent Policy              : manual
Cache Agent Manually Started    : False

3).数据库被卸载:
[timesten@ttdb ~]$ ttStatus

TimesTen status report as of Thu Jun 19 20:03:57 2014

Daemon pid 4760 port 53396 instance tt1122
TimesTen server pid 4770 started on port 53397
------------------------------------------------------------------------
Data store /opt/TimesTen/info/DataStore/onett
There are no connections to the data store
Replication policy  : Manual
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Accessible by group ttadmin
End of report

    如果出现TimesTen数据库自动恢复失败,那么需要修改数据库内存策略,避免数据库自动加载与卸载。

--end--

上一篇:forticlient安装报错


下一篇:在Windows 2008/2008 R2 上配置IIS 7.0/7.5 故障转移集群