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

目录
相关文章
|
16天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1天前
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
21天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
36 2
|
2月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
81 15
|
3月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
3月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
3月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
72 1
|
3月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
3月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
3月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。

热门文章

最新文章