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

原创 2016年05月30日 16:46:14

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

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

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

在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-16 01.12.49.000000 AM


SQL> /

        ID
----------
T
---------------------------------------------------------------------------
         1
30-MAY-16 01.12.49.000000 AM

         2
30-MAY-16 01.13.50.000000 AM
版权声明:本文为博主原创文章,未经博主允许不得转载。

TimesTen 应用层数据库缓存学习:6. Aging策略

declare a number := 1; begin select max(a) into :a from lru_tab; a := a+1; insert into l...

TimesTen 应用层数据库缓存学习:19. 理解AWT缓存组的三种模式

概述本文很好的讲述了AWT三种缓存组的概念和区别,并给出了3种缓存组从建立到摧毁的完整过程。AWT缓存组有3中类型: 1. AWT 缺省 (Manually load) 2. AWT Dynami...

TimesTen 应用层数据库缓存学习:11. AWT性能监控

演示环境准备为了运行以下的例子,我们建立了一个AWT缓存组 Oracle Schema用户:$ sqlplus tthr/oracle@ttorcl create table orders(ord_...

TimesTen 应用层数据库缓存学习:8. 配置Sliding Window(滑动窗口)

Sliding Window(滑动窗口)是Cache Group常用的一种场景。 本文介绍滑动窗口的基本概念以及如何配置滑动窗口。滑动窗口的描述如下: In a sliding window c...

TimesTen 应用层数据库缓存学习:3. 环境准备 - DB 11gR2版本

本文通过一个例子讲述在建立Cache Group之前的准备工作。 准备工作包含4个部分。 1. 在Oracle数据库中创建用户 2. 为TimesTen数据库创建DSN 3. 在TimesTe...

TimesTen 应用层数据库缓存学习:10. 监控缓存组的autorefresh操作

测试环境准备$ sqlplus tthr/oracle@ttorcl create table orders(ord_num int primary key, ship_time timestamp ...

TimesTen 应用层数据库缓存学习:3. 环境准备 - DB 12cR1版本

本文通过一个例子讲述在建立Cache Group之前的准备工作。 准备工作包含4个部分。 1. 在Oracle数据库中创建用户 2. 为TimesTen数据库创建DSN 3. 在TimesTe...

TimesTen 应用层数据库缓存学习:1. 基本概念

Cache Group基本概念 TimesTen Application-Tier Database Cache is an Oracle Database product option that...

TimesTen 应用层数据库缓存学习:9. 一些独特的缓存组定义选项

在缓存组定义中,有一些选项,它们平常很少会用到,但在一些特定的场合也许有用。 这些选项是: * ON DELETE CASCADE * UNIQUE HASH ON * Where 条件中的S...

TimesTen 应用层数据库缓存学习:5. 异步读写缓存

eleAsynchronous Write Through(AWT) cache group, 即TimesTen的异步写缓存。数据只允许在TimesTen中修改,然后同步到Oracle。当然,Tim...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TimesTen 应用层数据库缓存学习:16. Aging策略与AWT缓存组
举报原因:
原因补充:

(最多只允许输入30个字)