yangtingkun
===========================================================
Oracle缓存连接——Timesten体系结构
===========================================================

文档在这章介绍了Cache Connect to Oracle的概念,这章的内容也是目前我最感兴趣的。


Timesten中可以建立Oracle数据的cache groupCache group可以缓存Oracle中的一个表或一系列相关表。可以缓存表中的所有的数据,也可以选择表中个别的行或列。

Cache Connect支持下列属性:

可以读、写Cache groups中的对象;

Cache group可以自动或者手动进行刷新;

Cache group对象的修改可以自动或手动发送到Oracle数据库。

Timestencache groupcache Oracle的表称为基表。TimestenOracle数据管理器处理cache group的所有的同步操作。而Timesten中的cache agent进程,处理cache group的异步操作。

Cache group的装载和修改:

Oracle中的数据最初装载到Timesten中,生成Cache group。装载完成后,缓存的数据可以在Timesten数据库中修改,也可以在Oracle数据库中修改。Cache Connect可以自动将修改传播到Oracle数据库,同样,可以自动的从Oracle数据库中刷新到Cache gorup

OracleTimesten的修改(刷新):

Timesten支持三类刷新方式:完全刷新、增量刷新和手工刷新。

这里可以看出TimestenOracle之间没有好的方法进行无缝连接。对于完全刷新,个人感觉肯定是不可取的,尤其是大数据量的情况,而且,这种方式的效率也很低下。增量刷新显然是最合适的,但是根据文档的描述,配置增量刷新,居然需要在Oracle数据库端建立触发器。无论从性能上讲还是从部署复杂程度上说,都对这种触发器方式的增量持怀疑态度。而对于所谓的第三种方式,感觉只不过是刷新由自动变为手工方式,个人感觉刷新方式应该仍然是完全或增量其中的一种。

TimestenOracle的修改(传播):

传播包括两种方式,即PROPAGATEFLUSH

对于PROPAGATE可以指定下面三种方式:

创建用户管理的CACHE GROUP时指定PROPAGATE语句;

创建同步传播CACHE GROUP

创建异步传播CACHE GROUP

而对于FLUSH,则需要创建FLUSH CACHE GROUP,且不能指定PROPAGATE选项。

个人感觉PROPAGATEFLUSH的最大区别就是PROPAGATE是自动完成,而FLUSH需要手工进行。但是FLUSH不会将DELETE操作传播到Oracle的规则,很是使人疑惑。

PASSTHROUGH特性:

简单的说PASSTHROUGH特性就是将Timesten接收到的SQL语句直接传回到Oracle,在Oracle端执行。可以将一些包含Timesten不支持的语法的SQL或者包含了Timesten没有Cache的表的SQL发送到Oracle执行。个人感觉PASSGHROUGH功能还是相当方便的,这样可以极大的减少了程序从Oracle移植到Timesten的成本。

总的来说,就是Timesten的刷新机制还要很多疑问,需要具体的测试才能对刷新机制有一个更清晰的了解。Timesten还有一篇文档专门描述Cache Connect to Oracle,希望在那里可以找到一些更为有价值的东西。

这一章介绍了两种Cache group:系统管理Cache group和用户管理Cache group

感觉用户管理的Cache group的可定制功能更强一些。包括Cache group的包含的对象、Cache Instances的选择,Cache装载技术的选择以及Cache过期的算法都可以进行设置。而系统管理的Cache group功能相对比较简单,提供了READONLYWRITEGHROUGH两种基表的Cache group设置。

最后文档介绍了Cache group的复制。值得注意的是,通过程序对Cache group的修改是会传播到Oracle中,而通过复制手段对Cache group的修改不会传播到Oracle中。

总体来说,这篇关于Cache Connect to Oracle的文档还算比较详细,但是没有包含我比较感兴趣的冲突解决方案方面的内容,希望Timesten那篇专门的文档中有这方面的介绍。

yangtingkun 发表于:2006.06.26 17:36 ::分类: ( TIMESTEN ) ::阅读:(2863次) :: 评论 (18)
re: Oracle缓存连接——Timesten体系结构 [回复]

这个连接和很多因素有关,比如DSN的配置,是否启用了ACCESS CONTROL等。建议你先用TTISQL尝试建立CACHE GROUP,根据Timesten给出的文档配置还是比较容易的

yangtingkun 评论于: 2006.07.03 10:30
re: Oracle缓存连接——Timesten体系结构 [回复]

ttIsql rundata_tt60
Command> CREATE USER testuser IDENTIFIED BY mypsswrd
Command> GRANT ADMIN, DDL TO testuser

Command> CREATE USER testuser IDENTIFIED BY mypsswrd;
1001: Syntax error in SQL statement before or at: "MYPSSWRD", character
n: 37
The command failed.
什么问题,我先再win环境下面做demo看看。
我上班都再msn上面的。谢谢

小I机器人 评论于: 2006.07.03 13:59
re: Oracle缓存连接——Timesten体系结构 [回复]

终于连接到oracle上去了。

小I机器人 评论于: 2006.07.03 14:47
re: Oracle缓存连接——Timesten体系结构 [回复]

昨天写了一个例子,写了一半没写完,今天回去将例子补完。

看看你是否使用access control

yangtingkun 评论于: 2006.07.03 15:13
re: Oracle缓存连接——Timesten体系结构 [回复]

Command> call ttCacheUidPwdSet,'testuser','mypsswrd');
Command> call ttCacheStart();

5107: Oracle(OCI) error in OCIStmtExecute(): ORA-06576: Ч? rc = -1
The command failed.
是什么问题呢?

小I机器人 评论于: 2006.07.03 16:10
re: Oracle缓存连接——Timesten体系结构 [回复]

Command> call ttCacheUidPwdSet,'testuser','mypsswrd');
Command> call ttCacheStart();

5107: Oracle(OCI) error in OCIStmtExecute(): ORA-06576: Ч? rc = -1
The command failed.
是什么问题呢?

小I机器人 评论于: 2006.07.03 16:14
re: Oracle缓存连接——Timesten体系结构 [回复]

Oracle的用户名密码不正确

btw:有什么问题还是去论坛上发贴吧,这里讨论不方便

yangtingkun 评论于: 2006.07.03 20:01
re: Oracle缓存连接——Timesten体系结构 [回复]

Command> call ttcachestart();
8022: Operation not permitted on non-shared data store
The command failed.

运行call ttcachestart();有错误呢.........望指点,
我的MSN:qvb855@hotmail.com

大家讨论

小刚 评论于: 2006.08.11 12:13
re: Oracle缓存连接——Timesten体系结构 [回复]

确认你安装的是TIMESTEN cache for oracle,而不是timesten数据库。

yangtingkun 评论于: 2006.08.11 16:55
re: Oracle缓存连接——Timesten体系结构 [回复]

谢谢各位的指点,可以了,具体也不知什么原因了,是换了一台电脑(win2003),可能是odbc的引起的,之前那电脑的odbc都是乱码的!

对啦,各位兄弟,不知java中怎么使用timesten调用oracle的procedure与function呢!

谢谢

小刚 评论于: 2006.08.14 11:26
re: Oracle缓存连接——Timesten体系结构 [回复]

通过JDBC调用,CALL 过程名

yangtingkun 评论于: 2006.08.14 13:32
re: Oracle缓存连接——Timesten体系结构 [回复]

那调用函数(想返回数据集)可以的吗?
调用的时候总提示不合法的名呢?

小刚 评论于: 2006.08.15 10:04
re: Oracle缓存连接——Timesten体系结构 [回复]

这个就不清楚了,你看看timesten的jdbc的文档吧

yangtingkun 评论于: 2006.08.15 13:05
re: Oracle缓存连接——Timesten体系结构 [回复]

兄弟,我试了多次与看了些安装后doc下的一下文档,同一个过程,oracle的驱动可以使用,而用了timesten的驱动后,就是说找不到过程呢!

真的没法了,yangtingkun,怎么办嘛1?谢谢

小刚 评论于: 2006.08.15 23:36
re: Oracle缓存连接——Timesten体系结构 [回复]

TT不支持返回结果集!

like_7412 评论于: 2007.03.05 15:10
re: Oracle缓存连接——Timesten体系结构 [回复]

$ ttisql

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.

Command>connect "DSN=cache;UID=ndmain;PWD=ndmain;OraclePWD=ndmain";
Connection successful: DSN=cache;UID=ndmain;DataStore=/var/TimesTen/imdb/imdb;OracleId=member;PermSize=16;
(Default setting AutoCommit=1)

Command> CREATE USER timesten identified by 'timesten';
15007: Access control not enabled
The command failed.

我在timesten上创建用户的时候报错"15007: Access control not enabled",我安装的是TIMESTEN cache for oracle.

chenfeng 评论于: 2007.06.13 10:50
re: Oracle缓存连接——Timesten体系结构 [回复]

已经一年没有用过TIMESTEN了,基本上忘光了,手头也没有环境。

建议你去查查文档,这个问题的原因似乎是没有启动ACCESS CONTROL

yangtingkun 评论于: 2007.06.13 23:22
re: Oracle缓存连接——Timesten体系结构 [回复]

timesten怎么连接oracle啊?各位大哥指点指点啊!
谢!

hy 评论于: 2007.06.17 00:15

发表评论
标题

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

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


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