- 浏览: 113389 次
- 性别:
- 来自: 北京
最新评论
TimesTen内存数据库-第七章 在RAC环境中实现Cache Connect
第七章 在RAC环境中实现Cache Connect
这章将讨论怎样在RAC环境中实现Cache Connect to Oracle。
在RAC环境中Cache Connect怎样工作
Oracle Real Application Clusters (RAC)能够使多个Oracle实例使用共享资源访问一个数据库,共享资源包括驻留在簇共享磁盘上所有的数据文件、控制文件、PFILE和重做日志文件。在提供高性能的同时,RAC处理连续的读/写和加载平衡。
Fast Application Notification (FAN)是一个与Oracle Call Interface (OCI) in Oracle Database 10g Release 2结合使用的RAC特性。FAN发布关于簇上变化的信息给订阅FAN事件的应用。FAN将排除如下的降低效率的行为:
• 当服务被关闭时的试图连接
• 当服务被关闭时的试图完成事务的进程
• 等待TCP/IP终止
不使用FAN,Cache Connec可能要花费数分钟来接收一个Oracle失败的通知。
Transparent application failover (TAF)是一个Oracle Net Services的特性,以使可以指定失败以后需要应用怎样进行重新连接。Cache Connect将OCI结合FAN使用来接收Oracle事件的通知。OCI应用可以使用下列类型之一的Oracle Net失败功能:
• 会话:如果一用户的连接丢失,一个新的会话将自动为用户创建。此失败的类型不会试图恢复选择。
• 选择:此失败的类型可以使用户在失败以后使用打开游标来继续在里面取值。
• 无:这是缺省值。不使用失败功能。也可以显式指定来防止失败的产生。
Cache Connect能够很快地从Oracle失败中恢复过来,而不需要用户的干预。Cache Connect可以与Oracle Database 10g Release 2 server一起用于RAC环境。Oracle客户端可以是Oracle9i Release 2或Oracle Database 10g Release 2。
Cache Connect的行为将依赖于TAF的动作和TAF是怎样配置的。RACCallbackCache Connect属性缺省地注册TAF和FAN回叫。如果不需要TAF和FAN可用,则在连接串中设置RACCallback为0。
表 7.1 显示在使用不同的TAF失败类型的RAC环境中Cache Connect特性和操作的行为。这些行为与Oracle9i Release 2和Oracle Database 10g Release 2客户端一样,除了当Oracle Database 10g Release 2中FAN被激活时,Cache Connect将立即接收到节点失败的通知。
表 7.1 在RAC环境中Cache Connect特性和操作的行为
特性或操作 |
TAF失败类型 |
在连接到Oracle数据库失败后Cache Connect的行为 |
Autorefresh |
无 |
缓存代理将自动关闭、重启和等待,直到可以建立到Oracle服务的连接。此行为与Cache Connect to Oracle release 6.0.1和非RAC环境中的Cache Connect中的一样。 |
Autorefresh |
Session |
将发生下列情形之一: • 所有失败的连接将恢复。正在进行中的Autorefresh操作将被回滚并重试。 • 如果TAF时间已到或不能恢复连接,则缓存代理将自动关闭、重启和等待,直到可以建立到Oracle服务的连接。此行为与Cache Connect to Oracle release 6.0.1和非RAC环境中的Cache Connect中的一样。 |
Autorefresh |
Select |
将发生下列情形之一: • Autorefresh将从连接失败点继续重新开始。 • 正在进行中的Autorefresh操作将被回滚并重试。 •如果TAF时间已到或不能恢复连接,则缓存代理将自动关闭、重启和等待,直到可以建立到Oracle服务的连接。此行为与Cache Connect to Oracle release 6.0.1中的一样。 |
Passthrough、 SWT、propagate和flush |
无 |
通知应用连接丢失并必须回滚TimesTen连接。在下一次passthrough操作期间,Cache Connect试图重新连接到Oracle数据库。所有被修改的会话属性会丢失。此行为与Cache Connect to Oracle release 6.0.1和非RAC环境中Cache Connect中的一样。 |
Passthrough、 SWT、propagate和flush |
Session |
将发生下列情形之一: • 将恢复到Oracle数据库的连接。如果在丢失的连接上有打开的游标、DML或锁定操作,则会产生一个错误,并且用户必须回滚事务。否则用户可以继续而不使用回滚。 • 如果TAF时间到或不能恢复连接,通知应用连接丢失并必须回滚TimesTen连接。在下一次passthrough操作期间,Cache Connect试图重新连接到Oracle数据库。所有被修改的会话属性会丢失。此行为与Cache Connect to Oracle release 6.0.1和非RAC环境中Cache Connect中的一样。 |
Passthrough |
Select |
将恢复到Oracle数据库的连接。如果在丢失的连接上有打开的游标、DML或锁定操作,则会产生一个错误,并且用户必须回滚事务。否则用户可以继续而不使用回滚。 |
SWT、 Propagate、 和flush |
Select |
将发生下列情形之一: • 将恢复到Oracle数据库的连接。如果在丢失的连接上有DML或锁定操作,则会产生一个错误,并且用户必须回滚事务。否则用户可以继续而不使用回滚。 • 如果TAF时间到或不能恢复连接,通知应用连接丢失并必须回滚TimesTen连接。在下一次passthrough操作期间,Cache Connect试图重新连接到Oracle数据库。所有被修改的会话属性会丢失。此行为与Cache Connect to Oracle release 6.0.1和非RAC环境中Cache Connect中的一样。 |
Load和 refresh |
无 |
应用将收到一个连接丢失的错误。 |
Load和 refresh |
Session |
将发生下列情形之一: • 加载成功。 • 返回一个错误,报告Oracle取值不能执行。 |
Load和 refresh |
Select |
将发生下列情形之一: • 如果Oracle游标被打开,并且游标被恢复或Oracle游标没有被打开,则加载成功。 • 如果TAF不能恢复会话或打开Oracle游标,则返回一个错误。 注意:返回错误的可能性小于TAF失败类型是Session。 |
AWT |
无 |
AWT的复制接收线程存在。产生一个新线程并试图连接到Oracle数据库。 |
AWT |
Session、 select |
将发生下列情形之一: • 如果连接被恢复并且在连接上有未提交的DML操作,则批量操作或事务将被回滚并重新执行。 • 如果连接被恢复并且在连接上无未提交的DML操作,则工作继续。 |
在RAC环境中使用Cache Connect的限制
可以为下列Oracle客户端和服务器的版本在RAC环境中使用Cache Connect to Oracle:
• Oracle Database 10gRelease 2。如果客户端和服务器的版本都是Oracle Database 10gRelease 2,则只能使用FAN。
• Oracle Database 10g Release 1
• Oracle9i Release 9.2
对于每个版本,要使用Oracle客户端最近的版本。
Cache Connect支持的RAC有下列限制:
• Cache Connect的行为被限制为使用RAC、FAN和TAF的能力。例如,如果服务所有的节点失败,服务将不会重启。Cache Connect将等待用户来重新启动服务。
• TAF不会恢复ALTER SESSION操作。由用户负责在失败之后恢复改变了的会话属性。
• Cache Connect结合FAN事件使用Oracle Client Interface (OCI)。此接口自动产生一个线程来等待一个Oracle事件。在一个直接连接的TimesTen应用中产生一个线程只是TimesTen的特性。建修改ODBC应用以解决此线程的创建。如果不需要额外的线程,设置RACCallbackCache Connect属性为0。则将不会使用TAF和FAN。
在RAC环境中安装Cache Connect
安装Cache Connect和RAC。确保缓存管理用户在s Oracle GV$SESSION动态执行视图上有SELECT权限。
有两个TimesTen环境变量控制TAF超时设置:
• TT_ORA_FAILOVER_TIMEOUT:TAF以分钟数为用户应用(SWT缓存集合、使用propagate选项的缓存集合和使用passthrough特性的缓存集合)进行超时设置。缺省值是5分钟。
• TT_AGENT_ORA_FAILOVER_TIMEOUT:TAF以分钟数为复制代理(对于AWT缓存集合)进行超时设置。缺省值为5小是。
下列Oracle组件也必须启动:
• Oracle实例
• Oracle监听器
• 将用于Cache Connect的Oracle服务
然后执行下列任务:
1. 核实RACCallback连接属性被设置为1(缺省值)。
2. 使用DBMS_SERVICE.MODIFY_SERVICE Oracle PL/SQL包或Oracle Enterprise Manager以使可以进行FAN事件的发布。这将改变Oracle ALL_SERVICES视图的AQ_HA_NOTIFICATIONS列为YES。(这将应用到Oracle Database 10g Release 2客户端。)
3. 通过下列方式之一使得在服务上能够使用TAF:
• 在Oracle tnsnames.ora文件中使用下列字符为Cache Connect创建一个服务:
– LOAD_BALANCE=ON (选项)
– FAILOVER_MODE=(TYPE=SELECT)或FAILOVER_MODE=(TYPE=SESSION)
• 使用DBMS_SERVICE.MODIFY_SERVICE来设置TAF失败类型。
4. 如果应用是一个ODBC直接连接应用,使用一个线程库进行连接,以使它能够接收FAN通知。FAN将产生一个线程来监视失败。(这将应用到Oracle Database 10g Release 2客户端。)
第八章TimesTen和Oracle之间的兼容性
这章将列出TimesTen和Oracle之间的兼容性问题。此列表不完整,但它包括需要特别注意的地方。
注意:TimesTen不支持Oracle Call Interface (OCI)。
兼容性问题总结
考虑下面TimesTen和Oracle之间的不同:
• TimesTen和Oracle数据库的元数据保存不同。
• TimesTen和Oracle有不同的事务隔绝模式。
• TimesTen和Oracle有不同的连接和语句属性。例如,timesTen不支持目录名、滚动游标或更新游标。
• 对于ROWID,TimesTen和Oracle不同的类型和长度。TimesTen 不支持Oracle ROWID数据类型。
• Sequence不会被缓存,并且在缓存和Oracle数据库之间不同步。
• 触发器和过程的作用不会传送到缓存中,直到一个AUTOREFRESH操作或手工REFRESH CACHE GROUP操作之后。
• 在缓存集合中不支持XA和JTA API。
关于Oracle客户端/服务器版本的Cache Connect支持
Cache Connect to Oracle不防碍所有支持的Oracle客户端/服务器相互联合协调工作的配置。例如,在TimesTen服务的机器上Cache Connect使用9.2.0.8 Oracle客户端安装并连接到不同服务器上的10.2.0.3 Oracle数据库是被支持的。用户应该检查Metalink Documentation Note 207303.1、“Client/Server/Interoperability Support Between Different Oracle Versions”中关于当前Oracle客户端/服务器支持的配置信息。用户也应该检查关于交互问题的Oracle和TimesTen版本注意事项。
事务的意义
TimesTen和Oracle的事务意义的不同如下:
• Oracle连接的事务在提交时可能失败,因为事务不能被连续化。而TimesTen将使用锁来强制进行连续的事务。
• Oracle用户可以通过显式的SQL来锁定表。此锁定特征在TimesTen中不支持。
• Oracle支持保存点。而TimesTen不支持。
• 在Oracle中,事务可以被设置为只读或读/写。这在TimesTen中也是不支持的。
JDBC兼容性
应用到JDBC的兼容性问题包括如下:
• JDBC数据库元数据函数返回TimesTen元数据。如果需要Oracle元数据,可以使用带有PassThrough属性的Cache Connect或直接连接到Oracle数据库。
•设置/得到连接和语句属性将在TimesTen上。
• 所有Oraclejava.sql.ResultSet元数据(长度、类型、标签)将以TimesTen数据类型长度返回。返回的列标签也是TimesTen列标签。
• 对于java.sql.CallableStatement方法的输出参数(OUT和INOUT),在TimesTen中不被支持。
• 不支持Oracle扩展(oracle.sql和oracle.jdbc包)。
• 在TimesTen中不支持Java存储过程。
注意:TimesTen不支持语句的异步执行,也不支持从一个不同的线程取消一条执行语句。
java.sql.Connection
下面的Connection方法没有兼容性问题:
close
commit
createStatement
setAutoCommit
prepareCall
prepareStatement
rollback
下面的方法在本地TimesTen中被执行:
getCatalog
getMetaData
get/setTransactionIsolation
isReadOnly
isClosed– 只返回TimesTen连接状态
nativeSQL
setCatalog
setReadOnly
java.sql.Statement
下面的Statement方法有兼容性问题:
close
execute
executeUpdate
executeQuery
getResultSet
getUpdateCount
getWarnings
executeBatch
clearBatch
addBatch
下面的方法在本地的TimesTen中执行:
get/setMaxFieldSize
get/setMaxRows
get/setQueryTimeout
getMoreResults
setEscapeProcessing
setCursorName
cancel
java.sql.ResultSet
下面的ResultSet方法没有兼容性问题:
close
findColumn(int) 和findColumn(string)
getXXX(number) 和getXXX(name)
getXXXStream(int) 和getXXXStream(string)
getMetaData
java.sql.PreparedStatement
下面的PreparedStatement方法没有兼容性问题:
execute
executeUpdate
executeQuery
setXXX
setXXXStream
close
getResultSet
getUpdateCount
addBatch
下面的方法在本地TimesTen中执行:
get/setMaxFieldSize
get/setMaxRows
get/setQueryTimeout
getMoreResults
setEscapeProccessing
setCursorName
cancel
java.sql.CallableStatement
与显示在java.sql.Statement和应用到CallableStatement的java.sql.PreparedStatement接口有相同的限制。另外,使用任何输出形态的CallableStatement都不被支持。所有参数都被作为输入参数。没有输出参数的Callablestatement可能在准备时返回一个错误,通过registerOutparameter返回错误或应用可能得到非预期的结果。
• 在一个WRITETHROUGH缓存集合中,如果PassThrough=1,则隐藏在存储过程中或通过触发器产生的间接DML操作可能被传送,但没有被Cache Connect to Oracle发现。
• 从READONLY缓存集合进行更新的、插入或删除的存储过程将在另一个异步方式的事务中被自动刷新。因此在存储过程被执行的相同事务中将不会出现变化,并且在自动刷新到缓存表之前,会有一段时间间隔。
java.sql.ResultSetMetadata
下面ResultSetMetadata方法没有兼容性问题:
getColumnCount
getColumnType
getColumnLabel
getColumnName
getTableName
isNullable
下面的方法在本地的TimesTen中执行:
getSchemaName
getCatalogName
getColumnDisplaySize
getColumnType
getColumnTypeName
getPrecision
getScale
isAutoIncrement
isCaseSensitive
isCurrency
isDefinitelyWritable
isReadOnly
isSearchable
isSigned
isWritable
Stream support
兼容性问题相关的流是:
• JDBC驱动器在调用executeQuery或next方法时将数据完全取出并放入到内存缓冲区。getXXXStream条目指针返回从此缓冲区读数据的流。
• Oracle支持最大到2GB的long或long raw数据。
• Oracle总是long/long raw数据流,即使应用没有调用getXXXStream。
• TimesTen没有close方法。当它移动到下一行时,将使stream流无效。当移动到下一列时,Oracle将关闭流。
• TimesTen不支持mark、markSupported和reset方法。
ODBC兼容性
下表列出ODBC 2.5 API调用和指出函数是否有兼容性问题。
函数 |
兼容性 |
SQLAllocConnect |
- |
SQLAllocEnv |
- |
SQLAllocStmt |
- |
SQLBindCol |
- |
SQLBindParameter |
当一条SQL语句有相同的参数名时,TimesTen认为它们是相同参数的多次出现,不允许它们分别绑定。Oracle认为它们是不同的参数,并允许它们分别绑定。 |
SQLBrowseConnect |
不支持 |
SQLCancel |
TimesTen不支持语句的异步执行,并且不支持从一不同的线程来取消一条执行语句。 |
SQLColAttributes |
- |
SQLColumnPrivileges |
不支持 |
SQLColumns |
元数据函数从TimesTen表返回元数据。 |
SQLConnect |
- |
SQLDataSource |
- |
SQLDescribeCol |
- |
SQLDescribeParam |
- |
SQLDisconnect |
- |
SQLDriverConnect |
- |
SQLDrivers |
- |
SQLError |
是TimesTen错误的本地错误码。用户可以接收到一般错误如“execution at Oracle failed, Oracle error codennn.”。 |
SQLExecDirect |
- |
SQLExecute |
- |
SQLExtendedFetch |
不支持 |
SQLFetch |
- |
SQLForeignKeys |
元数据函数从TimesTen表返回元数据。 |
SQLFreeConnect |
- |
SQLFreeEnv |
- |
SQLFreeStmt |
- |
SQLGetConnectOption |
- |
SQLGetCursorName |
TimesTen支持get/set游标名,但不支持游标delete/update语句。 |
SQLGetData |
- |
SQLGetFunctions |
- |
SQLGetInfo |
- |
SQLGetStmtOption |
- |
SQLGetTypeInfo |
元数据函数从TimesTen表返回元数据。 |
SQLMoreResults |
不支持 |
SQLNativeSql |
- |
SQLNumParams |
- |
SQLNumResultCols |
- |
SQLParamData |
- |
SQLParamOptions |
- |
SQLPrepare |
- |
SQLPrimaryKeys |
元数据函数从TimesTen表返回元数据。 |
SQLProcedureColumns |
元数据函数从TimesTen表返回元数据。 |
SQLProcedures |
元数据函数从TimesTen表返回元数据。 |
SQLPutData |
- |
SQLRowCount |
- |
SQLSetConnectOption |
设置函数设置TimesTen选项或元数据。 |
SQLSetCursorName |
设置函数设置TimesTen选项或元数据。 |
SQLSetPos |
不支持 |
SQLSetScrollOptions |
不支持 |
SQLSetStmtOption |
设置函数设置TimesTen选项或元数据。 |
SQLSpecialColumns |
元数据函数从TimesTen表返回元数据。 |
SQLStatistics |
元数据函数从TimesTen表返回元数据。 |
SQLTablePrivileges |
不支持 |
SQLTables |
元数据函数从TimesTen表返回元数据。 |
SQLTransact |
- |
SQL兼容性
这部分比较TimesTen的SQL与Oracle的SQL的执行。目的是提供用户一个在TimesTen中不支持或使用不同意义支持的Oracle SQL特性的列表。这部分比较Oracle Database 10g Release 2和Oracle TimesTen In-Memory Database 7.0.0.0.0。
计划对象
TimesTen不承认一些Oracle中支持的计划对象。当语句操作或使用这些对象并传送到Oracle时,TimesTen将返回一个语法错误。不支持的对象是:
• 与存储过程相关的对象
– 存储过程
– 存储函数
– 包
– 触发器
• 访问控制对象
– 角色
– 外形
– 上下文
• 存储管理特性
– 簇
– 表空间
–回滚段
– CREATE/DROP DATABASE语句
– 数据库链节
– 目录
– 分区
• 扩展特性
– 扩展程序库
– Object表
– Object类型
– Object视图
TimesTen支持视图和物化视图,但不支持缓存Oracle视图。当TimesTen中没有相同的本地对象名时,包括视图和物化视图的语句将传送到Oracle。
Oracle和TimesTen表之间的差异
一些TimesTen不支持的Oracle特性是:
• ON DELETE SET NULL
• 约束检查
数据类型支持
下列Oracle数据类型不被TimesTen支持:
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIME ZONE
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
ROWID
UROWID
CLOB
NCLOB
BLOB
BFILE
REF
“Any”类型
XML类型
Spatial类型
Media类型
下列TimesTen数据类型不被Oracle支持:
TT_TINYINT
TT_SMALLINT
TT_INTEGER
TT_BIGINT
TT_VARBINARY
注意:TimesTen NCHAR/NVARCHAR2数据类型将被编译为UTF-16。Oracle NCHAR/NVARCHR2将被编译为UTF-16或UTF-8。
SQL操作符
TimesTen支持这些Oracle操作符和动词:
一元数的 -
+, -, *, /
=, <, >, <=, >=, <>=
| |
IS NULL, IS NOT NULL
LIKE(Oracle LIKE操作符将忽略后面的空格,但TimesTen不会。)
BETWEEN
IN
NOT IN (list)
AND
OR
+(外连接)
ANY、SOME
ALL (list)
EXISTS
UNION
MINUS
INTERSECT
SQL函数
TimesTen支持这些Oracle函数:
ABS
ADD_MONTHS
AVG
CEIL
COALESCE
CONCAT
COUNT
DECODE
EXTRACT
FLOOR
GREATEST
INSTR
LEAST
LENGTH
LPAD
LTRIM
MAX
MIN
MOD
NUMTOYMINTERVAL
NUMTODSINTERVAL
NVL
POWER
ROUND
RPAD
RTRIM
SIGN
SQRT
SUBSTR
SUM
SYSDATE
TO_DATE
TO_CHAR
TO_NUMBER
TRIM
TRUNC
SQL表达式
TimesTen支持这些Oracle表达式:
• 列引用
• Sequence
• NULL
• ()
• 绑定参数
• 计算表达式
• CAST
SQL子查询
TimesTen支持Oracle子查询:
• IN(子查询)
• >,<,= ANY(子查询)
• >,=,< SOME(子查询)
• EXISTS(子查询)
• >,=,< (分级子查询)
• 在DELETE/UPDATE的WHERE子句中
• 在FROM子句中
注意:一个“单行结果集”的非验证分级子查询直到执行时才能被确认。TimesTen允许在整个查询中至多只能有一个非验证分级子查询,并且子查询不指定在OR表达式中。
SQL查询
TimesTen支持这些查询:
• FOR UPDATE
• ORDER BY
• GROUP BY
• 表别名
• 列别名
Oracle支持闪回查询,以查询数据库一些以前状态(例如,查询昨天的一个表)。TimesTen不支持闪回查询。
INSERT/DELETE/UPDATE语句
TimesTen支持这些Oracle DML语句:
• INSERT INTO ... VALUES
• INSERT INTO ... SELECT
• UPDATE WHERE expression(expression可以包含子查询)
• DELETE WHERE expression(expression可以包含子查询)
• MERGE(TimesTen不支持ODBC批量执行MERGE语句)
只用于TimesTen的SQL和内部程序
这部分列出Oracle不支持的TimesTen SQL语句和内部程序。使用PassThrough= 3时,这些语句将被传送到Oracle并产生一个错误。
• 所有TimesTen缓存集合DDL和DML语句,包括CREATE CACHE GROUP、DROP CACHE GROUP、ALTER CACHE GROUP、LOAD CACHE GROUP、UNLOAD CACHE GROUP、FLUSH CACHE GROUP和REFRESH CACHE GROUP语句。
• 所有TimesTen复制管理DDL语句,包括CREATE REPLICATION、DROP REPLICATION、ALTER REPLICATION、CREATE ACTIVE STANDBY PAIR、ALTER ACTIVE STANDBY PAIR和DROP ACTIVE STANDBY PAIR语句。
• 所有TimesTen内部程序。
其它SQL问题
• Oracle ROWID数据类型是假的ROWID。TimesTen的ROWID数据类型是BINARY(16)。它们的长度不同。
• PL/SQL是一种Oracle语言,并不被TimesTen支持。
• Oracle内部优化内含在SQL注释中。TimesTen使用内部程序来设置内部优化。
• Oracle和TimesTen的系统表不同。
• TimesTen不支持Oracle INSERT、UPDATE和DELETE语句中的RETURNING子句。
• Oracle存储函数可能通过输出参数返回游标引用或返回值。TimesTen不支持这种特性。
• 当一条SQL语句有相同的名字的参数时,TimesTen认为它们是相同参数的重复出现,并且不允许对它们进行分别绑定。Oracle则认为它们是不同的参数并允许分别绑定。
术语表
age out
在一个指定的时间周期之后(基于时间)或当数据的使用已经达到指定的水平(基于使用),将从缓存集合中删除缓存实例。
asynchronous writethrough cache group
TimesTen中一个缓存集合中的数据被更新,并异步的传送到Oracle。
autorefresh
Oracle上的更新通过Oracle触发器的手段被自动地传送到TimesTen缓存集合。
AWT cache group
同asynchronous writethrough cache group。
bidirectional propagation
为了将Oracle或TimesTen缓存集合中的更新拷贝到另一方。
cache agent
一个TimesTen进程以保证缓存集合的操作,如AUTOREFRESH和COMMIT EVERYnROWS。
cache group
将Oracle表中的数据缓存到一个TimesTen数据存储中。缓存集合可以创建来缓存一个单表的所有或部分,或是缓存一个Oracle相关联的表集。如果缓存了多个Oracle表,则缓存集合中的每个表必须与缓存集合中另一个表通过一对多相关联。
cache group primary key
缓存集合中根表的主键。
cache instance
由缓存集合根表中的主键指定的数据中一指定的行。如果缓存集合中有多个表,则缓存实例由通过外键与根表中行关联的相关的行集组成。
cache instance key
根表中指定行的主键,用来确定根表的行和缓存集合子表中引用根表此行的所有子表行。
child table
缓存集合中有一个引用根表主键的外键或引用另一个直接或间接引用根表的子表主键的外键的表。缓存集合中表的层次可以指定子表是另其它子表的父表。缓存集合中不能有多个父表的子表。
flush
为了将缓存集合中的插入或更新从TimesTen拷贝到Oracle。
load
为了从Oracle只拷贝新实例。不会更新或删除缓存中已经存在实例。
propagate
为了在Oracle和TimesTen缓存集合之间拷贝数据。
refresh
为了使用最近的Oracle数据来替换TimesTen缓存集合中所有的缓存实例。
replication
在多个数据存储中保持数据的副本拷贝的过程。
replication agent
通过一个replication agent来控制在每个主和从数据存储的复制。在主数据存储上的复制代理来从事务日志读记录并向前查找所有改变以复制到从数据存储上的复制代理。从数据存储上的复制代理然后将更新应用到它的数据存储中。
root table
缓存集合中的主表不通过外键约束来引用缓存集合中的任何其它表。根表的主键就是缓存集合的主键。
synchronous writethrough cache group
一个缓存集合中缓存数据在TimesTen中被更新,并且同步地传送到Oracle。
system-managed cache group
System-managed cache group强制指定行为。系统管理缓存集合是READONLY、SYNCHRONOUS、WRITETHROUGH和ASYNCHRONOUS WRITETHROUGH。
READONLY缓存集合强制地将Oracle表中的更新通过AUTOREFRESH机制应用到TimesTen。不能在READONLY缓存集合中直接更新表。
ASYNCHRONOUS WRITETHROUGH (SWT)缓存集合强制将TimesTen中缓存数据的更新传送到Oracle。当应用提交事务时,在向TimesTen提交之前向Oracle提交。
ASYNCHRONOUS WRITETHROUGH (AWT)缓存集合的强制缓存行为与SWT缓存集合相同,即TimesTen中缓存数据的更新被传送到Oracle,但TimesTen提交的发生与Oracle提交不同步。
user-managed cache group
一个user-managed cache group实现自定义行为,如双向传送。
unload
为了从缓存集合中删除一此或所有缓存实例。
相关推荐
2. **内存数据库缓存**:在信用卡消费监视系统中,timesten展示了其处理大规模实时数据的能力,实现了每秒十万次的查询和一万次的更新/插入,响应时间小于1毫秒,且具备良好的可扩展性,为大数据量处理提供了有力...
1. **内存数据库**:TimesTen运行在主内存中,所有数据都存储在RAM中,这使得数据访问速度极快,几乎消除了磁盘I/O的延迟。这种特性使得TimesTen特别适合于对数据实时性要求极高的应用。 2. **列式存储**:与传统的...
Oracle TimesTen In-Memory Database是一个完全驻留在物理内存中的数据库,它通过标准SQL接口提供快速的数据访问。这种设计使得应用程序可以直接与数据交互,避免了传统数据库通过IPC连接带来的延迟。此外,TimesTen...
在Timesten中,SQL同样支持这些基本操作,并且针对内存数据库的特点进行了优化。 **2. 数据库创建与连接** 在Timesten中,你可以使用CREATE DATABASE语句创建一个新的数据库实例。连接到数据库时,可以使用TTSQL...
《针对Timesten内存数据库的Java开发手册》是一份详细阐述如何在Java环境中与Oracle Timesten内存数据库进行交互的指南。Timesten是Oracle公司推出的一种高性能、低延迟的内存数据库系统,专为需要实时数据处理的...
Oracle Timesten作为一款领先的内存数据库产品,凭借其高速、可靠和灵活的特点,在多个行业中得到了广泛的认可和应用。随着数据处理需求的不断提升,内存数据库技术,尤其是像Timesten这样的高性能解决方案,将在...
9. **产品选择**:TimesTen提供两种主要产品,即基础的内存数据库和带有Cache Connect to Oracle的版本。后者允许与Oracle数据库进行集成,实现缓存功能。这里选择了包含Oracle集成的版本。 10. **组件选择**:在...
1. TimesTen是一个内存数据库(In-Memory Database),这意味着它将数据存储在计算机的随机存取存储器(RAM)中,而不是硬盘上,这使得数据访问速度更快。 2. TimesTen数据库遵循ANSI SQL标准,提供了ANSI SQL数据...
在这个文档中,你可以了解到TimesTen数据库的基本架构,包括内存管理、数据存储、并发控制和事务处理机制。理解这些核心概念有助于优化性能和设计高效的解决方案。 3. **Oracle TimesTen Replication Guide**: ...
在C++环境下开发Timesten应用,可以充分利用C++的性能优势和Timesten的内存优化特性,实现高效的数据存储和检索。 手册中涵盖了以下关键知识点: 1. **Timesten数据库基础**:介绍Timesten的基本架构、工作原理和...
近期,某公司在项目中使用了Timesten内存数据库,并发现Timesten本身并不支持JSON数据类型。为了解决这个问题,开发者自定义编写了一个包来实现Timesten与JSON数据之间的转换。本文将详细介绍该包的功能及其使用方法...
Oracle TimesTen内存数据库是一款高效、高性能的实时在线事务处理(OLTP)系统,它将数据存储在内存中,以提供极快的响应时间。在Oracle TimesTen 11gR2版本中,引入了一些重要的新特性,这进一步增强了其与传统...
为了实现Timesten与Oracle数据库之间的数据同步,需要先安装Cache Connect to Oracle组件。具体步骤如下: 1. **检查Oracle客户端版本**: - 确保已安装的Oracle客户端版本符合要求。 - 支持的版本包括:9.2.0.8...
本指南主要介绍如何利用TimesTen Cache Connect技术在TimesTen内存数据库与Oracle数据库之间实现高效的数据交换。通过此指南,用户可以深入了解缓存组(cachegroups)的概念、数据交换机制以及如何快速设置并配置...
内存数据库的核心特性在于所有数据存储在物理内存中,这使得读写操作的速度远超传统的磁盘数据库。Timesten采用了关系型数据模型,并且针对物理内存进行了优化,包括特殊的数据存储结构和算法。它支持多进程/多线程...
根据提供的文档内容,我们可以深入探讨Oracle TimesTen In-Memory Database的关键特性、优势及其在实际应用场景中的价值。 ### 关键特性 #### 低延迟 (Low Latency) - **微秒级响应时间**:Oracle TimesTen In-...
### Oracle_TimesTen内存数据库_6.0版推荐编程实践 #### 一、概述 Oracle TimesTen内存数据库6.0版是一款高性能的内存数据库管理系统,主要用于实时数据分析和交易处理等场景。为了帮助开发者构建高性能且稳定的...
Oracle Timesten内存数据库自动数据清理机制探究.pdf