TimesTen學習(二)連線建立第一個資料庫

lhrbest發表於2017-03-15

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2135435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章