产品
TimesTen In-Memory Database
本文档包含有关 Oracle TimesTen In-Memory Database 产品的常见问题解答
Oracle TimesTen In-Memory Database 是一个内存优化的关系数据库,它为应用提供了当今实时企业和行业(如通信、金融服务、Web 应用、旅游物流、游戏等)所需的即时响应能力和非常高的吞吐量。Oracle TimesTen In-Memory Database 作为独立或嵌入式数据库部署在应用层中,利用标准的 SQL 接口对完全位于物理内存中的数据库进行操作。内置的复制技术支持 TimesTen 数据库之间的实时事务复制,以实现高可用性和负载共享。
Oracle TimesTen Application-Tier Database Cache (TimesTen Cache) 是一个数据库选件,可以为 Oracle 数据库提供实时读/写缓存。Oracle TimesTen Application-Tier Database Cache 通过将对性能影响极大的部分表和表片段缓存到应用层,大大缩短了应用事务的响应时间。在 TimesTen In-Memory Database 中管理缓存表的方式与管理普通的关系数据库表类似。因此,Oracle TimesTen Application-Tier Database Cache 为应用提供了关系数据库的所有共性和功能,透明地维护缓存和 Oracle 数据库的一致性,同时提供内存中数据库的实时性能。此 Oracle Database 选件非常适合将 Oracle 数据库中对性能影响极大的数据子集缓存在应用层中,以提高响应速度。为了实现高可用性,可以使用主-备配置部署 Oracle TimesTen Application-Tier Database Cache,此配置支持在 Oracle TimesTen 数据库之间实时复制缓存表。
构建 Oracle TimesTen 数据库时假设所有被管理的数据都驻留在物理内存 (RAM) 中。因此,关于硬件一个重要的考虑因素是应用层中要有足够的可用 RAM。除此之外,TimesTen 要考虑的硬件因素极少。与任何应用一样,拥有适当数量的 CPU(以适当的时钟速度运行)对于应用的运行速度非常重要。同样,要利用多个 CPU,您需要运行多个应用,或者应当在编写应用时使用多个线程。此外,事务日志和检查点文件将持久保留在磁盘上,磁盘速度越快,整体性能越高。
Oracle TimesTen Application-Tier Database Cache 驻留在应用层中,它使用 SQL*Net 与 Oracle 数据库进行通信。Oracle Database Instant Client 随 TimesTen Cache 一同安装,以便连接到 Oracle 数据库。
数据库大小受服务器中物理 RAM 数量的限制。在 32 位平台上,它受 32 位地址空间的限制,因此数据库大小小于 2GB,取决于具体平台。对于 64 位平台,除了计算机中的物理内存量之外,其大小没有任何限制。我们客户部署的数据库大小范围从 1GB(千兆字节)到超过 2 TB(兆兆字节)。
Oracle TimesTen Application-Tier Database Cache 是 Oracle 12c 和 Oracle 11g 数据库的一个数据库选件。它包括 TimesTen In-Memory Database 和缓存技术,可将 TimesTen 作为内存中缓存数据库部署,可自动完成 TimesTen 与 Oracle Database 之间的数据同步。
Oracle TimesTen In-Memory Database 是一个单独许可的产品,它包含 TimesTen 内存中数据库和复制组件。
| 支持以下平台: | |
|
|
Oracle TimesTen Application-Tier Database Cache 选件支持 Oracle Database 12c、Oracle Database 11g 第 2 版和 Oracle Database 11g 第 1 版。
许多电信应用都在使用 TimesTen,例如身份验证、授权、号码可携带性、在线收费和计费、中介和呼叫中心。金融应用也在使用它,例如证券交易、证券交易所、欺诈检测、合规性、网上银行和债券定价。其他应用包括游戏、CRM 系统、航空预订系统、旅行物流、面向客户的应用和国防应用。
Oracle TimesTen 也是一些 Oracle 应用的核心,例如用于实现“快如闪念”的 OLAP 分析的 Exalytics 商务智能云平台以及用于提供实时计费的 Oracle 计费和收入管理应用。
TimesTen 和 Coherence 都在应用层中运行。两者都基于主内存。Coherence 是一个分布式内存中对象存储库。它用于通过 get/put API 来存储和检索序列化对象。
TimesTen 是一个内存中关系数据库,支持磁盘持久性和标准事务语义。可以通过 SQL 来访问它。当用作 Oracle 数据库的缓存时,它会自动与 Oracle 数据库同步数据。分布式缓存向具有位置透明性和分布式并发控制的应用提供单一映像。
Exadata 基于 Oracle RAC,是一个高度可扩展的系统,可用于大幅提升数据库吞吐量。
TimesTen 的独特价值在于它能够在应用层中提供非常低的响应时间。为了实现更好的性能,TimesTen 嵌入应用中。TimesTen 响应 SQL 请求的时间在微秒级。这对于电话呼叫路由、身份验证和授权、实时计费、证券交易、欺诈检测、网上银行等需要即时响应时间的实时应用至关重要。
OTN 上有一个 TimesTen In-Memory Database 论坛。请在该论坛中发布与 TimesTen 产品相关的问题。
可以,现在许多客户都将 Oracle TimesTen In-Memory Database (TimesTen) 用作应用层的独立数据库。TimesTen 为 SQL 操作提供全面的事务支持,并将事务日志持久保存到磁盘中以进行恢复(数据库始终位于内存中)。
可以,这是 Oracle 数据库选件“Oracle TimesTen Application-Tier Database Cache”。此数据库选件包括 TimesTen In-Memory Database 和缓存技术,可将 TimesTen 作为内存中缓存数据库部署,可自动完成 TimesTen 与 Oracle 数据库之间的数据同步。
TimesTen In-Memory 数据库支持标准的 ODBC 和 JDBC 接口以及 OCI 和 ADO.NET,应用可以通过 SQL-92 标准连接到数据库。
没有不同,32 位和 64 位应用的应用接口都是相同的。为了利用 64 位模式,应用需要在 64 位模式中重新编译并链接到 TimesTen 64 位库。
可以使用 Java、.NET、C、C++、Pro*C 和 PL/SQL 开发应用。有关示例程序列表,请参阅 Oracle TimesTen In-Memory Database 快速入门指南。
Oracle TimesTen In-Memory Database 经过精心设计和优化,可在应用层中运行。数据库可以直接链接至(嵌入)应用以实现更好的性能。对于嵌入应用的 TimesTen 数据库,SQL 访问不会产生任何网络或 IPC 开销。即使在“嵌入模式”下运行,TimesTen 仍然可提供全面的多进程/多线程访问和并发控制。
是的,Oracle TimesTen In-Memory Database 支持索引。与 Oracle 数据库中一样,索引可以提高数据库查询性能。TimesTen 支持三种类型的索引:范围索引,用于涉及等式和不等式范围的查找;散列索引,提供比范围索引更快的主键和等式访问,可精确匹配查找和等值联接;位图索引,适用于没有大量唯一值和低级别并发 DML 事务的列。
TimesTen In-Memory Database 支持 SQL 标准。要创建数据结构,请使用 SQL DDL 语句,例如 CREATE TABLE、CREATE INDEX、CREATE SEQUENCE、CREATE VIEW、CREATE MATERIALIZED VIEW、CREATE PACKAGE、CREATE PROCEDURE、CREATE FUNCTION、CREATE SYNONYM、ALTER TABLE 等。用于 RDBMS 的数据库设计技术也同样适用于 TimesTen。在 TimesTen 中设计和管理数据库比在磁盘优化的 RDBMS 中更简单,因为不需要调整表范围大小或整理磁盘碎片。
当整个数据库位于内存中时,TimesTen 还会将事务日志文件和检查点文件持久保存到磁盘。当系统重新启动或发生故障时,将从检查点和事务日志文件中恢复内存数据库。此外,客户还可以配置 TimesTen Replication 来提供高可用性。
TimesTen Cache 支持 Oracle Database 12c、Oracle Database 11g 第 2 版和 Oracle Database 11g 第 1 版。
TimesTen Cache 作为 Oracle 数据库服务器的客户端应用运行。TimesTen Cache 支持与 TimesTen In-Memory Database 相同的平台。请参见哪些平台支持 Oracle TimesTen 技术?。
可以,TimesTen Cache 作为 Oracle 客户端运行,因此它可以在不同于 Oracle 数据库服务器的其他平台上运行。顾名思义 (Application-Tier Database Cache),TimesTen Cache 通常位于应用层中,而 Oracle 数据库则位于数据库层中。
TimesTen 中缓存的对性能影响极大的数据量取决于应用的性质。可以在 TimesTen 中缓存数据库表、列和行的子集,而不是缓存整个数据库。另一种选择是定义一个动态缓存,可以根据需要加载 Oracle 表中的数据。
TimesTen Replication 是 TimesTen In-Memory Database 和 TimesTen Application-Tier Database Cache 的一个组件。TimesTen Replication 技术支持 TimesTen 服务器节点之间的实时数据复制。该技术用于创建高可用性架构、灾难恢复站点以及跨多个节点分发数据。Replication 支持使用异步或同步数据传输的主用/备用或主用/主用配置。有关更多详细信息,请参阅概述页面上的 imesTen In-Memory Database 产品介绍。
可以将 TimesTen Replication 配置为将整个 TimesTen 数据库复制到一个或多个 TimesTen 节点。故障切换后,备用节点成为主用节点,可以从备用(现在的主用)数据库恢复故障节点。
可以,支持表级复制和数据库级复制。
TimesTen Replication 在基于 LAN 或 WAN 的复制节点之间使用持久的流式 TCP/IP 套接字。
是的,它支持单向和双向复制。对于双向复制,建议对负载进行分区以避免大量冲突。如果在对同一个数据库进行更新时发生冲突,TimesTen Replication 支持基于时间戳的冲突检测和解决。