程序员人生 网站导航

TimesTen 应用层数据库缓存学习:16. Aging策略与AWT缓存组

栏目:数据库应用时间:2016-06-07 08:16:04

本文讨论如果1个Cache Table设定了Aging策略,那末Aging致使的缓存中数据的删除是不是会影响到Oracle数据库?

如果是只读缓存组,固然是不会影响到Oracle的。如果是AWT缓存组,答案也是不会影响,即Aging致使的数据删除不会传播到Oracle,下面通过实验验证1下。

之前的建立缓存组的准备工作此处略过。

Oracle中建立源表(schema 用户 - tthr):

create table t1(id int not null, t timestamp not null, primary key(id));

启动cache agent。

建立AWT缓存组(cache管理用户 - cacheadm),定义Aging策略为基于TimeStamp,生命周期为10秒,检查周期为5秒

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP "AGEAWT" FROM "TTHR"."T1" ( "ID" NUMBER(38) NOT NULL, "T" TIMESTAMP(6) NOT NULL, PRIMARY KEY("ID") ) AGING USE T LIFETIME 10 seconds CYCLE 5 seconds ON start rep agent

在TimesTen中插入数据

$ ttisql "dsn=cachedb1_1122;uid=tthr;pwd=timesten" Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. Type ? or "help" for help, type "exit" to quit ttIsql. connect "dsn=cachedb1_1122;uid=tthr;pwd=timesten"; Connection successful: DSN=cachedb1_1122;UID=tthr;DataStore=/home/oracle/TimesTen/tt1122/info/DemoDataStore/cachedb1_1122;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;DRIVER=/home/oracle/TimesTen/tt1122/lib/libtten.so;PermSize=40;TempSize=32;TypeMode=0;OracleNetServiceName=ttorcl; (Default setting AutoCommit=1) Command> select * from t1; 0 rows found. Command> insert into t1 values(1, sysdate); 1 row inserted. Command> select * from t1; < 1, 2016-05-30 01:12:49.000000 > 1 row found. Command> select * from t1; <- aging生效了 0 rows found. Command> insert into t1 values(2, sysdate); 1 row inserted. Command> select * from t1; < 2, 2016-05-30 01:13:50.000000 > 1 row found. Command> select * from t1; <- aging生效了 0 rows found. Command>

Oracle中视察数据变化, 可以看到数据不断增加,没有由于Aging而被删除

$ sqlplus tthr/oracle@ttorcl SQL*Plus: Release 11.2.0.2.0 Production on Mon May 30 01:12:27 2016 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from t1; no rows selected SQL> select * from t1; no rows selected SQL> / ID ---------- T --------------------------------------------------------------------------- 1 30-MAY⑴6 01.12.49.000000 AM SQL> / ID ---------- T --------------------------------------------------------------------------- 1 30-MAY⑴6 01.12.49.000000 AM 2 30-MAY⑴6 01.13.50.000000 AM
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐