Oracle In-Memory Database Cache 是一个数据库选件,它为 Oracle 数据库提供了实时、可更新的缓存。Oracle In-Memory Database Cache 将来自数据库的对性能极其关键的一系列表和表碎片缓存到应用程序层,从而缩短应用程序事务响应时间。(产品数据表)
企业数据库中的大部分数据都是历史数据,并且很少有人访问。但是,掩藏在这些数据下面的信息应该能够在被请求时可即时访问。您的最佳客户、未完成的订单、最近的事务以及产品目录都是很好的示例。通过内存缓存和 Oracle 数据库之间的自动数据同步,In-Memory Database Cache 能够在 Oracle 内存数据库 TimesTen 中自动复制和管理这些信息,以供他人实时访问。
In-Memory Database Cache 使用“ 缓存组”的概念,来描述一组映射到 Oracle 数据库中的所有表或部分表的缓存表。缓存组可以包含这些表的所有或部分行和列。可以使用多个缓存组来缓存 Oracle 数据库中不同的相关表集合。在内存数据库 TimesTen 中管理内存缓存表的方式与管理普通的关系型数据库表类似。因此,Oracle In-Memory Database Cache 为应用程序提供了关系数据库的所有共性和功能、缓存和 Oracle 数据库的一致性透明维护以及内存数据库的实时性能。内存缓存表是持久保存且可恢复的。通过事务日志记录与数据库检查点相结合实现了磁盘的持久性。
大多数缓存产品都是只读的,因此只限于一组很少的功能。由于 In-Memory Database Cache 支持完全的 SQL 读/写操作,因此可以用于众多不同种类的应用程序。对 In-Memory Database Cache 中缓存表的更新可以同步或异步方式直写到 Oracle 数据库中,这取决于性能和一致性之间的折衷。 对于只读缓存组,Oracle 数据库的增量更新只能按照用户指定的时间间隔异步刷新到内存缓存中的缓存表。
对于缓存数据集不能预先确定的应用程序,其数据可以按需加载到内存缓存中。例如,呼叫中心应用程序在将呼叫路由至限定的呼叫代理时,可能选择加载呼叫方的当前结算单,而不是将所有客户的整套计费信息预先加载到内存缓存中。自动数据老化特性对动态数据加载进行了补充,可以将旧数据或最近最少使用的 (LRU) 数据从缓存中删除。数据老化使应用程序可以在保持内存中“热”数据可用的同时,为新数据释放空间。
In-Memory Database Cache 的设计为即使在 Oracle 数据库服务器或网络连接丢失的情况下也能继续运行。 系统可以跟踪向缓存表提交的事务,并在连接恢复时立即将其传送回 Oracle 数据库。 同样,系统还可以跟踪向 Oracle 数据库中的缓存表提交的事务,并在与 Oracle 数据库的连接重新建立时立即将其刷新到内存数据库 TimesTen。
支持内存缓存之间的复制以实现高可用性。可以使用活动-备用配置部署 Oracle In-Memory Database Cache,活动-备用配置中的缓存表在内存缓存间进行实时复制。
引自:http://www.oracle.com/technetwork/cn/products/timesten/timesten-imdb-cache-083828-zhs.html