TimesTen for Windows 使用指南(2)
针对刚创建的test数据源,现在可以直接通过ttisql访问了。
启动一个Windows命令行控制台:
D:\>ttisql test
Copyright (c) 1996-2008, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.
connect "DSN=test";
Connection successful: DSN=test;UID=canoe;DataStore=C:\TimesTen\ds\test;Database
CharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=C:\TimesTen\tt70_32
\bin\ttdv70.dll;TypeMode=0;
(Default setting AutoCommit=1)
Command>
可以看到连接到test之后,有些相应的反馈信息。比如UID=canoe,因为我们现在没有创建TimesTen的内部用户,所以缺省地使用安装TimesTen时候的操作系统用户,该用户就相当于TimesTen的DBA用户,类似于Oracle的sys用户。另外还可以看到放置 DataStore的目录,进入这个目录下查看,发现已有如下的文件存在:
C:\TimesTen\ds 的目录
2008-12-23 13:54 <DIR> .
2008-12-23 13:54 <DIR> ..
2008-12-23 13:54 11,782,364 test.ds0
2008-12-23 13:54 11,782,364 test.ds1
2008-12-23 13:54 524,288 test.log0
2008-12-23 13:54 67,108,864 test.res0
2008-12-23 13:54 67,108,864 test.res1
2008-12-23 13:54 67,108,864 test.res2
6 个文件 225,415,608 字节
2 个目录 2,556,182,528 可用字节
C:\TimesTen\ds>
有两个DataStore的文件(ds0,ds1),这个是放真实的数据的文件,和内存中的数据想对应,是内存中数据的一个镜像。要创建两个 DS文件的目的是为了安全起见,当正在写一个DS文件时,如果因为故障导致该文件被破坏,还可以从另一个文件中恢复。所以每次TimesTen写到DS文件的时候,总是写比较旧的那个。一般的情况下可能两个文件的大小稍微有点差异,当做完checkpoint的时候,两个文件可以确定是一样大的。
另外还有一个日志文件(test.log0),如果没有定义LogDir的话,缺省就和DataStore文件放在同一个目录下。日志文件名字的最后一位是阿拉伯数字,随着系统的使用,这个数字会增长。旧的日志会被自动清除。
还可以看到,有三个res的文件(res0,res1,res2),res是reserve的缩写,即储备的意思。每个和 LogFileSize一样大。它们的作用是保证当某些极端的情况下,如果磁盘因为某些其它原因快被耗尽,TimesTen会从这三个文件中释放出一定的空间来保证最后的事务可以正常提交或者回滚,而不至于导致系统被hang在那。
另起一个控制台,执行ttstatus命令:
C:\TimesTen\ds>ttstatus
TimesTen status report as of Tue Dec 23 14:09:22 2008
Daemon pid 3296 port 17000 instance tt70_32
TimesTen server pid 1860 started on port 17002
TimesTen webserver pid 3308 started on port 17004
————————————————————————
Data store c:\timesten\ds\test
There are 7 connections to the data store
Data store is in shared mode
Shared Memory KEY Global\test.SHM.2 HANDLE 0×240
Type PID Context Connection Name ConnID
Process 2600 0×00daada8 test 1
Subdaemon 2248 0×006cc398 Worker 2042
Subdaemon 2248 0×06661db0 Flusher 2043
Subdaemon 2248 0×066c1040 Checkpoint&nb