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資料庫的拓撲圖:
從上圖可以看出,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TimesTen學習(三)遠端連線TimesTen資料庫資料庫
- 資料庫連線不能建立.資料庫
- 資料庫學習(四)連線查詢資料庫
- TimesTen_安裝-建立資料庫資料庫
- 不能建立sqlserver資料庫連線SQLServer資料庫
- 建立一個連線資料庫的VB元件 (轉)資料庫元件
- 連線RAC資料庫中單個例項(二)資料庫
- go 連線資料庫 - GORM學習 - sql查詢Go資料庫ORMSQL
- Java連線Mysql資料庫攻略二JavaMySql資料庫
- 怎麼建立網站連線資料庫網站資料庫
- 資料庫連線學到不少資料庫
- ODBC資料庫連線------java學習筆記之3資料庫Java筆記
- java 無需建立資料來源連線access資料庫Java資料庫
- Laravel 使用多個資料庫連線Laravel資料庫
- DBeaver如何連線一個資料庫資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 資料庫學習線路圖資料庫
- 連線資料庫資料庫
- 資料庫連線資料庫
- Oracle使用DBCA建立資料庫指令碼追蹤學習案例(二)Oracle資料庫指令碼
- SQLAlchemy - 資料庫的連線、建立會話與模型SQL資料庫會話模型
- 資料庫連線 系列一:laravel框架如何連線兩個資料庫(不同伺服器)資料庫Laravel框架伺服器
- express入門04 資料庫連線 表結構建立 模型建立Express資料庫模型
- 資料庫學習(二)資料操作語言:資料庫
- 採用java連結timesten記憶體資料庫Java記憶體資料庫
- Cordova學習----iOS建立第一個appiOSAPP
- 用c#建立與資料庫的連線 c#連sqlserverC#資料庫SQLServer
- 2.6 Laravel配置多個資料庫連線Laravel資料庫
- Yii連線多個資料庫的方法資料庫
- 深圳軟體測試學習:【資料庫】-【oracle】-連線查詢資料庫Oracle
- 新寫一個jsp專案之二:連線mysql資料庫JSMySql資料庫
- FastAPI 學習之路(三十二)建立資料庫ASTAPI資料庫
- Go實戰準備工作---建立資料庫連線池Go資料庫
- mysql--通過cmd連線mysql,並建立資料庫MySql資料庫
- JDBC連線資料庫JDBC資料庫
- java連線資料庫Java資料庫
- Mybatis連線資料庫MyBatis資料庫
- Mongodb資料庫連線MongoDB資料庫