2008-2-25 09:46
niuxxf
tt测试
在网上找了些测试例子,我也学着测试了一下,有问题之处,请指教。
一:安装oracle的内存数据库timesten,我安装的是windows版本的,安装起来很简单,指定安装路径后,一路next就o了。
二:oracle建用户、表及写入数据
在oracle sqlplus窗口执行,步骤如下:
$ sqlplus xxf/xxf
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Feb 22 17:26:06 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> CREATE USER XZQ IDENTIFIED BY XZQ123;
User created.
SQL> GRANT CONNECT, RESOURCE TO XZQ;
Grant succeeded.
SQL> conn xzq/xzq123
Connected.
SQL> create table t (id number(5),name varchar2(10));
Table created.
SQL> insert into t values(1,'Jack');
1 row created.
SQL> insert into t values(2,'Rose');
1 row created.
SQL> commit;
Commit complete.
SQL> select tname from tab;
TNAME
------------------------------
T
SQL>
三:添加用户DSN,这块一度困扰我很长时间,(如果用ttisql单纯的登录内存数据库,配置DSN那很简单,不过在选择驱动的时候选择timesten client 7.0 ,简单填写一下就ok了)
如果要配置READONLY CACHE GROUP,那么驱动就要选择 timesten data manager 7.0,对这方面不熟悉,而且添的东西也很多,也不知道该添哪一项,所以只能随便添,能添上什么就添什么,可是无论怎么添,ok按钮都是灰色的,后来我看了一下系统DSN,发现里面有一个cache_date,打开一看,呵呵,发现了让ok变为可用的“玄机”,Data Store Path+ ,只要将这一项写上,就ok了,将用户DSN配置完毕后(我测试配置的DSN的名字是tt_1),我们继续往下走。
四:内存数据库的启动与关闭
当开机以后,在默认的情况下内存数据库是启动着的。
C:\Documents and Settings\Administrator>ttdaemonadmin -stop
TimesTen Data Manager 7.0 服务正在停止...
TimesTen Data Manager 7.0 服务已成功停止。
C:\Documents and Settings\Administrator>ttdaemonadmin -start
TimesTen Data Manager 7.0 服务正在启动 .
TimesTen Data Manager 7.0 服务已经启动成功。
五:登录内存数据库
C:\Documents and Settings\Administrator>ttisql tt_1
Copyright (c) 1996-2007, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.
connect "DSN=tt_1";
Connection successful: DSN=tt_1;UID=xzq;DataStore=CacheData_tt70_32;DatabaseChar
acterSet=ZHS16GBK;ConnectionCharacterSet=ZHS16GBK;DRIVER=d:\TimesTen\tt70_32\bin
\ttdv70.dll;OracleId=ora10;LogDir=D:\TimesTen\log;TypeMode=0;
(Default setting AutoCommit=1)
Command> CALL TTCACHEUIDPWDSET('xzq', 'xzq123');
Command> CALL TTCACHESTART();
Command> CREATE READONLY CACHE GROUP TEST_CACHE AUTOREFRESH INTERVAL 5 SECONDS FROM T (ID number(5) PRIMARY KEY, NAME VARCHAR2(10));
Command> desc t;
Table XZQ.T:
Columns:
*ID NUMBER (5) NOT NULL
NAME VARCHAR2 (10) INLINE
1 table found.
(primary key columns are indicated with *)
Command> select * from t;
0 rows found.
Command> LOAD CACHE GROUP TEST_CACHE COMMIT EVERY 30 ROWS;
2 cache instances affected.
Command> select * from t;
< 1, Jack >
< 2, Rose >
2 rows found.
Command> insert into t values(3,'haha'); --因为表是只读的,所以必须在oracle中进行修改
8225: Table T is read only
The command failed.
=============================
用oracle的xzq用户登录sqlplus,往表中写入一条记录。
SQL> insert into t values(3,'xixi');
1 row created.
SQL> commit;
Commit complete.
SQL>
=============================
Command> select * from t;
< 1, Jack >
< 2, Rose >
< 3, xixi >
3 rows found.
Command>
Command> tables;
SYS.CACHE_GROUP
SYS.COLUMNS
SYS.COLUMN_HISTORY
SYS.COL_STATS
SYS.DUAL
SYS.INDEXES
SYS.MONITOR
SYS.OBJ_ACC_RIGHT
SYS.PLAN
SYS.SEQUENCES
SYS.SYNONYMS
SYS.SYS_ACC_RIGHT
SYS.TABLES
SYS.TABLE_HISTORY
SYS.TBL_STATS
SYS.TCOL_STATS
SYS.TINDEXES
SYS.TRANSACTION_LOG_API
SYS.TTABLES
SYS.TTBL_STATS
SYS.USERS
SYS.VIEWS
SYS.XLASUBSCRIPTIONS
TTREP.REPELEMENTS
TTREP.REPLICATIONS
TTREP.REPNETWORK
TTREP.REPPEERS
TTREP.REPSTORES
TTREP.REPSUBSCRIPTIONS
TTREP.REPTABLES
TTREP.TTSTORES
XZQ.T
33 tables found.
Command>
六:已经同步了,下面我们做一下备份表测试
首先在内存数据库中创建一张表
Command> create table t_new as select * from t;
3 rows inserted.
Command>
导出:在windows的命令行来执行备份命令
C:\Documents and Settings\Administrator>ttBulkCp -o DSN=TT_1 xzq.t_new d:\t_new.dat
3/3 rows copied
上面已经备份成功,删除内存数据库中的数据
Command> truncate table t_new;
Command> select * from t_new;
0 rows found.
导入:在windows的命令行来执行备份命令
C:\Documents and Settings\Administrator>ttBulkCp -i DSN=TT_1 xzq.t_new d:\t_new.dat
d:\t_new.dat:
3 rows inserted
3 rows total
C:\Documents and Settings\Administrator>
查看一下内存数据库中表t_new中是否已经导入数据
Command> select * from t_new;
< 1, Jack >
< 2, Rose >
< 3, xixi >
3 rows found.
Command>
七:清除CACHE GROUP:
Command> DROP CACHE GROUP TESTCACHE;
Command> CALL TTCACHESTOP();
还有一些垃圾在oracle中,查看一下oracle中xzq用户:
SQL> select tname from tab;
TNAME
------------------------------
T
TT_03_USER_COUNT
TT_03_SYNC_OBJS
TT_03_AGENT_STATUS
SQL>
2008-6-18 14:08
wabjtam123
你的第一步和内存数据库有关吗
另外我在内存数据库中建立用户怎么建立呢
(primary key columns are indicated with *)
Command>
Command> drop table ljb_test;
Command> create user ljb
> identified by ljb;
1001: Syntax error in SQL statement before or at: "LJB", character position: 31
create user ljb identified by ljb;
^^^
The command failed.
Command> create user ljb identified by ljb;
1001: Syntax error in SQL statement before or at: "LJB", character position: 31
create user ljb identified by ljb;
^^^
The command failed.
Command> create user ljb;
1001: Syntax error in SQL statement before or at: ";", character position: 16
create user ljb;
^
The command failed.
2008-8-7 18:30
wangjian0524
question1:
在oracle中需要创建cache administrator 和 有权限访问要cache 的oracle表的用户。
前者用户下要创建和cache group相关的基表,后者用户要和Timesten中登录用户名一样(另外,需要在dsn中指明oraclepwd,即该用户在Oracle中的密码)。
但往往在测试中,共用一个用户,即应用数据所在的用户。
question2:
密码需要用单引号括起。