yangtingkun
===========================================================
配置READONLY CACHE GROUP的例子
===========================================================

配置READONLY CACHE GROUP的过程并不算很复杂,但是由于对Timesten数据库和Cache Connect to Oracle特性都不是很了解,按照文档进行配置的时候还是出了一些小的问题。这篇文章简单总结整理一下。


第一步首先是安装Oracle的客户端或服务器。这个步骤就不描述了。

第二步是安装Timesten的Cache Connect to Oracle选项。在Windows平台,安装极其简单,点击几个按钮,基本上就搞定了。对于Linux和Unix系统,安装也不是很复杂,但是比Windows环境要复杂一些,需要考虑用户以及操作系统的一些参数的调整。这步也不打算详细描述,以后有时间会整理一个安装的文档。

第三步是设置系统的DSN。这个步骤其实应该是整个例子的关键所在。如果配置正确了,那么后面的操作其实都是很简单的。但是由于对Timesten使用较少,对Timesten的体系结构了解的不是很清晰,这个步骤很容易出现问题。

对于Windows系统和Unix系统的主要区别在于:Windows系统提供数据源工具,可以图形化配置DSN。而UNIX环境需要建立一个文本的DSN文件,里面包含必要的参数。

其实,对于不同的平台来说,要实现相同的功能需要配置的参数是一样的,只不过配置的方式和配置文件不大相同。

配置Cache Connect to Oracle需要配置文件中包含一下参数:

Data Store Path、Permanent Data Size、Temporary Data size。这三个参数和不配置Cache Connect的配置一样。除了上面的三个参数,还需要:U(SER)ID、OraclePWD以及OracleId。正确的配置了这些参数,就能保证Timesten数据库能正确访问Oracle数据库。如果是UNIX平台,且设置了ACCESS CONTROL,则还需要PWD参数。

然后通过TTISQL使用配置好的DSN。连接后,Timesten会将连接信息和一些初始化的设置显示在屏幕上。

第四步,也是最后一步,就是通过SQL来建立和维护Cache Group。

下面贴出一个简单的例子。

首先登陆Oracle,建立测试的用户和表。

SQL> CREATE USER YANGTINGKUN IDENTIFIED BY ABC;

用户已创建

SQL> GRANT CONNECT, RESOURCE TO YANGTINGKUN;

授权成功。

SQL> CONN YANGTINGKUN/ABC@TEST1
已连接。
SQL> CREATE TABLE T (ID NUMBER(5) PRIMARY KEY, NAME VARCHAR2(30));

表已创建。

SQL> INSERT INTO T VALUES (1, 'YANGTK');

已创建 1 行。

SQL> INSERT INTO T VALUES (2, 'ABC');

已创建 1 行。

SQL> COMMIT;

提交完成。

下面配置系统的DSN,设置DSN名称为TEST_CACHE,UID为YANGTINGKUN,ORACLEID为TEST1,ORACLEPWD为ABC。

F:>TTISQL TEST_CACHE

Copyright (c) 1996-2006, 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_CACHE";
Connection successful: DSN=TEST_CACHE;UID=YANGTINGKUN;DataStore=F:timestenstoreTEST_CACHETEST_CACHE;DRIVER=C:WINDOWSSystem32ttdv60.dll;OracleId=TEST1;PermSize=20;TempSize=20;
(Default setting AutoCommit=1)
Command> CALL TTCACHEUIDPWDSET('YANGTINGKUN', 'ABC');
Command> CALL TTCACHESTART();
Command> CREATE READONLY CACHE GROUP TESTCACHE
> AUTOREFRESH INTERVAL 5 SECONDS
> FROM T (ID INT PRIMARY KEY, NAME VARCHAR(30));
Warning 5112: Cache table YANGTINGKUN.T contains VARCHAR column(s). Oracle VARC
HAR comparison rule is different.
Command> DESC T;

Table YANGTINGKUN.T:
Columns:
*ID INTEGER NOT NULL
NAME VARCHAR (30) INLINE

1 table found.
(primary key columns are indicated with *)
Command> SELECT * FROM T;
0 rows found.
Command> LOAD CACHE GROUP TESTCACHE COMMIT EVERY 30 ROWS;
2 rows affected.
Command> SELECT * FROM T;
< 1, YANGTK >
< 2, ABC >
2 rows found.

到这里,只读的CACHE GROUP以及配置完成。

Command> INSERT INTO T VALUES (3, 'AAA');
8225: Table T is read only
The command failed.

由于表是只读的,因此修改必须在Oracle上进行:

SQL> INSERT INTO T VALUES (3, 'AAA');

已创建 1 行。

SQL> COMMIT;

提交完成。

然后切换到timesten数据库进行查询:

Command> SELECT * FROM T;
< 1, YANGTK >
< 2, ABC >
< 3, AAA >
3 rows found.
Command>

数据以及自动刷新过来了,这种刷新采用的是增量刷新,Timesten会自动在Oracle数据库中建立一些表和触发器。

SQL> SELECT * FROM TAB;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
T TABLE
TT_02_7391_L TABLE
TT_02_AGENT_STATUS TABLE
TT_02_SYNC_OBJS TABLE
TT_02_USER_COUNT TABLE

SQL> SELECT TRIGGER_NAME FROM USER_TRIGGERS;

TRIGGER_NAME
------------------------------
TT_02_7391_T

CACHE GROUP的清除比创建简单得多:

Command> DROP CACHE GROUP TESTCACHE;
Command> CALL TTCACHESTOP();

不过这个时候需要注意,Oracle中还有一些表没有清除掉。

SQL> SELECT * FROM TAB;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
T TABLE
TT_02_AGENT_STATUS TABLE
TT_02_SYNC_OBJS TABLE
TT_02_USER_COUNT TABLE

yangtingkun 发表于:2006.07.05 22:10 ::分类: ( TIMESTEN ) ::阅读:(1347次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...