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

简介: TimesTen学习(一)安装篇 http://blog.itpub.net/23135684/viewspace-717741/这篇文章主要讨论连接并创建第一个数据库。

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数据库的拓扑图:

从上图可以看出,ODBC driver是必须要配置的。

下图是在Unix平台不同组件提供的ODBC驱动:


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



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--

目录
相关文章
|
25天前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
68 13
|
27天前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
417 11
|
7月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
6月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
3月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
279 0
|
6月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1183 28
|
6月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
304 14
|
7月前
|
数据库
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero

热门文章

最新文章