OracleTimesTen内存数据库技术白皮书.pdf
《OracleTimesTen内存数据库技术白皮书.pdf》由会员分享,可在线阅读,更多相关《OracleTimesTen内存数据库技术白皮书.pdf(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Oracle TimesTen 产品和技术Oracle 白皮书2005 年 12 月引言.3“满足实时应用场合的需要”.3 实时应用程序的发展.3实时行业.3 实时企业.4 实时数据管理软件.4 应用程序层部署.4 产品.5Oracle TimesTen In-Memory Database.5 Replication TimesTen to TimesTen.5 Cache Connect to Oracle.5 内存中数据库技术.5ORACLE TIMESTEN 的物理结构.6应用程序层共享库.6 内存中数据结构.7 系统进程.8 管理程序.8 检查点和日志文件.8 数据复制技术.8高速缓
2、存技术.9深入研究 IMDB 技术.11查询优化.11 缓冲池管理.11 索引结构.12 差别体现在哪里.13 非凡的性能.13可伸缩性.13 响应时间.14 实时功能.15数据管理.15 查询处理.19 数据复制.19 高速缓存.21 事件处理.24 结论.25Oracle TimesTen 产品和技术第 2 页Oracle TimesTen 产品和技术引言“Oracle 收购 TimesTen 是一次绝好的技术整合,它将TimesTen 高性能内存中体系结构与 Oracle 巨大的数据库潜力结合起来”Rob Hailstone,2005 年 6 月,Oracle 收购了内存中数据库软件的领
3、先供应商TimesTen,Inc.。Oracle 产品与 TimesTen 产品的结合为端到端数据管理提供了独有的单供应商解决方案。本文介绍了 Oracle TimesTen 产品和技术及其与其他 Oracle 产品集成方面的问题,并使用该软件及其手册前的“书面”评估。“满足实时应用场合的需要”Oracle TimesTen 产品为性能关键系统提供了应用层数据管理,并针对快速响应以及实时高速缓存 Oracle 数据进行了优化。公司可以使用 Oracle TimesTen 扩展其软件基础架构,以创建具有以下特性的系统:即时响应性高度可伸缩性连续可用性这些系统用于:提高客户忠诚度吸引新客户简化操作
4、避免采用昂贵的专用软件开发方法。自 1998 起,Oracle TimesTen 先后部署到网络、电信服务、运营支持系统、联系中心、航空和预订系统、指挥和控制系统以及证券交易系统的生产环境中,并在时间关键的行业和实时企业中发挥了出色的作用。全球范围内的数百家公司在生产应用程序中使用了 Oracle TimesTen,其中包括 Amdocs、Aspect、Avaya、Cisco、Ericsson、JP Morgan、Lucent、Nokia、S 和 Sprint。实时应用程序的发展实时行业需要实时应用程序的行业包括网络设备制造商、电信运营商、证券交易所和经纪公司、航空公司、货运和物流公司以及国防
5、和情报机构等很多公司都离不开实时应用程序。它们对于公司运营必不可少。需要实时应用程序的典型行业包括网络设备制造商、电信运营商、证券交易所和经纪公司、航空公司、货运和物流公司以及国防和情报机构。以往,为这些行业构建实时应用程序还需要开发实时基础架构软件。商业性的实时基础架构软件当时并不Oracle TimesTen 产品和技术第 3 页存在。只要对应用程序的要求保持不变,这些系统便可以起作用,尽管速度快但却不够灵活。然而,动态行业对功能的要求将很快超出静态应用程序的能力范围,而在存在商业基础架构软件的情况下,不值得为开发、测试以及维护专用基础架构软件进行投资。实时企业随着企业网络传输的信息量不断
6、增多,能否使用实时处理智能地捕获、分析和响应重要事件逐渐成为衡量优秀企业的标准。这不仅仅对业务关键流程的执行和管理很重要。客户希望任何与他们保持重要业务关系的公司能够提供高度定制的交互和最快的响应。能否使用实时处理智能地捕获、分析和响应重要事件逐渐成为衡量优秀企业的标准。业务活动监视、复杂事件处理、RFID/基于传感器的应用程序、Web 门户以及 Web 服务有助于将应用程序扩展到企业边界。由于配置为由相互关联的例程的动态集合,因此这些应用程序构成面向服务体系结构(SOA)这一总体方法的一部分。尽管许多应用程序扩展到企业边界,但大多数据源仍存在于后端,其中主要包含大量很少访问的旧数据以及少量当
7、前活动的信息。SOA 概念的自然扩展包括应用程序层中的轻型、实时数据管理,连接到企业数据源以为当前活动的数据提供实时性能。实时数据管理软件仅仅收集并高速缓存与应用程序密切相关的数据是不够的,而将企业数据库与某个应用程序放到同一平台上也是不切实际的作为实时处理最大的受益者,企业体系结构在应用程序层中提供了事件、数据和事务管理,从而使前端系统具备了快速响应性和更深入的洞察力。仅仅收集和高速缓存与应用程序密切相关的数据 第一代内部基础架构软件通常如此 还不够。此外,将企业数据库与某个应用程序放到同一平台也是不实际的。所需要的是一代轻型基础架构软件,它应提供易于使用、功能强大的界面和广泛使用的查询语言
8、 可以轻松地与现有后端数据库、消息处理系统以及应用服务器进行通信,可以充分利用当前内存丰富的联网计算平台的全部潜在性能。这正是Oracle TimesTen 提供的用于管理实时数据的新一代基础架构软件。应用程序层部署当前的很多新应用程序开发都着力于提高与客户之间的交互或简化内部操作以消除延迟和多余的成本。它们是位于网络边界附近(在某些情况下,作为网络内部的托管服务)的实时应用程序。这是一个新的企业应用程序层,它在平台、性能和可用性方面的要求不同于旧的后端应用程序。业务事件包含在应用程序预订的网络消息中,用于触发实时处理以及其他消息发布。所需要的是一代可以利用当前内存丰富的互联计算平台的全部潜在
9、性能的轻型基础架构软件。OracleTimesTen 产品无缝地集成到这些环境中,并提供了针对应用程序层部署优化的体系结构要满足这些应用程序的响应时间和可伸缩性目标,通常必须将Oracle TimesTen 产品和技术第 4 页基础架构软件和应用程序(包括驱动该应用程序的某些或所有数据)部署到同一平台上。Oracle TimesTen 产品可以无缝地集成到这些环境中,并提供了针对应用程序层部署优化的体系结构以及用于实现高度定制解决方案的配置选项。产品Oracle TimesTen 实时数据管理软件由三个基于内存中数据库、数据复制和高速缓存技术的产品组成。本文该部分简要介绍了这些产品和技术。后续
10、部分将提供更多详细信息。Oracle TimesTen 由三个基于内存中数据库、数据复制和高速缓存技术的产品组成Oracle TimesTen In-Memory Database Oracle TimesTen In-Memory Database 是一个内存优化的关系数据库,它为应用程序提供了当今实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen In-Memory Database 作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。Replication TimesT
11、en to TimesTen Replication TimesTen to TimesTen是 Oracle TimesTen In-Memory Database 的一个选项,它支持服务器间的实时数据复制,以获得高可用性和负载共享。数据复制配置可以是双机热备份 (active-standby)或负载均衡 (active-active),可以使用异步或同步传输,可以包含冲突检测和冲突解决以及在故障服务器恢复后自动重新同步。数据复制与 Cache Connect to Oracle 选项完全兼容。Cache Connect to Oracle Cache Connect to Oracle 是
12、 Oracle TimesTen In-Memory Database 的一个选项,它为位于应用程序层中的 Oracle 数据创建实时、可更新的高速缓存。它免除了后端系统的计算负担,并支持反应灵敏且可伸缩的实时应用程序。Cache Connect to Oracle 能够将 Oracle 数据的子集加载到 TimesTen 中,能够双向传播更新,能够使对非高速缓存数据的 SQL 请求的透传自动化,并能够在故障之后自动重新同步数据。Cache Connect to Oracle 与 Replication TimesTen to TimesTen 选项完全兼容。内存中数据库技术内存中数据库 (I
13、MDB)技术是 Oracle TimesTen 产品的基础技术。IMDB技术实现了这样一个关系数据库:其所有运行时数据都位于内存中且数据结构和访问算方利用该特性实现了性能突破。与完全高速缓存的 RDBMS 相比,IMDB 技术使用的 CPU 资源少很多,这是因为它避免了用于管理内存缓冲区并处理多个数据位置(磁盘和内存)的开销。对 IMDB 技术内存中数据库技术实现了这样一个关系数据库:其所有运行时数据都位于内存中且数据结构和访问算法利用该特性实现了性能突破Oracle TimesTen 产品和技术第 5 页而言,磁盘用于实现持久保存和恢复,而不是用作主要的数据库存储位置。Oracle Time
14、sTen 内存优化的性能由提供事务属性功能、持久保存机制以及系统故障恢复所完善。有各种方法可用于锁定、多用户隔离和记录,从而满足了各种应用情形(从临时的查找高速缓存到核心事务交易和计费系统)。TimesTen 通过将已提交事务中的更改记录到磁盘并定期更新数据库的磁盘镜像(称作“检查点”)实现了持久性。应用程序可以对日志写入磁盘的时间进行配置(要么与事务的结束时间同步,要么一直延迟到事务完成之后),从而实现了更高的性能。在许多情况下,高吞吐率要比同步记录重要,尤其是当事务的货币价值很低或事务数据的生存时间较短时(如,当在每几秒种传输一次移动电话位置的网络中跟踪移动电话的位置时)。Oracle T
15、imesTen 产品支持的原生接口符合标准,且一般与任何其他符合标准的关系数据库兼容。应用程序通过 JDBC(Java 数据库连接)或 ODBC(开放数据库连接)接口发出 SQL(结构化查询语言)命令。用于定义数据存储区和复制配置的语句也遵守 SQL 语法惯例。此外,还使用 SNMP(简单网络管理协议)发出标准化的系统管理警报。Oracle TimesTen 的性能由提供事务属性功能、持久保存机制以及系统故障恢复所完善Oracle TimesTen 提供了具有标准 JMS 接口的开放式事务日志 API(XLA)来读取事务日志。它对于创建响应数据库更新的应用程序很有用。在这方面,XLA 是一个轻
16、型“触发器”。它还用于构建从 Oracle TimesTen 到其他数据库系统的自定义数据复制。ORACLE TIMESTEN 的物理结构本部分从安装、运行和使用计算资源的角度介绍了 Oracle TimesTen 产品的系统组件。Oracle TimesTen 产品由以下组合组成:共享库内存中数据结构系统进程(后台程序/子后台程序/代理)管理程序磁盘上的检查点和日志文件应用程序层共享库实施 SQL 操作的例程以及相关函数包含在一组共享库中,开发人员将这些库链接到应用程序并作为应用程序进程的一部分执行。此共享库方法与更常规的 RDBMS 不同,后者实现为与应用程序连接(通常通过客户端/服务器网
17、络连接)的一组可执SQL 操作包含一组共享库中,开发人员将这些库链接到应用程序Oracle TimesTen 产品和技术第 6 页行程序。通常,将数据管理器库嵌入到应用程序中可能会使数据存储区在应用程序进程异常终止时容易遭到破坏。Oracle TimesTen 解决了这一难题。Oracle TimesTen 库使用正在申请专利的算法(称作“MicroLogging”)保护自身不受应用程序进程故障的影响。内存中数据库保持一致,并且其他应用程序不受影响而继续运行。IMDB 技术实现为由应用程序、实用程序和系统进程通过共享库例程访问的内存中数据存储区。可根据恢复目的有选择地维护日志和检查点(备份副本
18、)的磁盘文件图 1:Oracle TimesTen In-Memory Database 产品的组件应用程序还可以使用客户端/服务器连接访问 Oracle TimesTen 数据库,但在大多数情况下,使用直接链接的应用程序将实现最佳性能。对于客户端/服务器访问,服务器后台程序(后台进程)将远程用户连接到服务器代理,服务器代理包含代表远程客户端访问数据存储区的共享库。内存中数据结构内存中数据库在操作系统的共享内存段中维护,它包含所有用户数据、索引、系统目录、日志缓冲区、锁表和临时空间。多个应用程序可以共享一个数据存储区,而单个程序可以访问同一系统上的多个数据存储区。Oracle TimesTen
19、 产品和技术第 7 页内存中数据存储区在操作系统的共享内存段中维护,它包含用户数据、索引、系统目录、日志缓冲区、锁表和临时空间。多个应用程序可以共享一个数据存储区,而单个应用程序可以访问多个数据存储区图 2:内存中数据存储区系统进程后台进程在系统级别为启动、关闭和应用程序故障检测提供服务,并在数据存储区级别为加载、检查点和死锁处理提供服务。每个数据存储区都有一个实例范围的TimesTen 后台程序(一个系统可能有多个实例)和一个单独的数据存储区子后台程序。管理程序用户、脚本或应用程序显式调用实用程序来执行交互式 SQL、批量复制、备份/恢复、数据存储区移植和系统监视等服务。检查点和日志文件并定
20、期将数据存储区和事务日志的更改写入磁盘并定期将数据存储区和事务日志的更改写入磁盘。如果需要恢复数据存储区,Oracle TimesTen 将把磁盘上的数据存储区检查点与仍位于日志文件中的已完成事务合并在一起。检查点和日志文件使用普通的磁盘文件系统。在有限情况下,可以将 Oracle TimesTen 配置为执行无磁盘操作。数据复制技术当需要近乎连续的可用性或负载分配时,可以将数据复制配置为在两个或多个服务器间发送更新。将主服务器配置为发送更Oracle TimesTen 产品和技术第 8 页新,将用户服务器配置为接收更新,而服务器可以同时用作主服务器和用户服务器来执行双向复制。基于时间的冲突检
21、测和解决用于当同时在多个位置更新同一数据时(这种情况很少出现)建立优先级。当需要近乎连续的可用性或负载分配时,可以将复制配置为在两个或多个服务器间发送更新。服务器可以同时用作主服务器和用户服务器以执行双向复制图 3:添加数据复制以获得高可用性配置复制后,将为每个数据存储区启动复制代理进程。如果为复制而配置了同一服务器上的多个数据存储区,则每个数据存储区将有一个单独的复制代理。每个复制代理能够向一个或多个用户服务器发送更新,并从一个或多个主服务器那里接收更新。这些连接分别在复制代理进程的内部实现为一个单独的执行线程。复制代理通过 TCP/IP 流套接字进行通信。为获得最高性能,复制代理通过监视现
22、有的事务日志检测数据存储区更新,并在可能的情况下向用户服务器发送批量更新。只复制提交的事务。在用户服务器节点上,复制代理通过高效的低级接口更新数据存储区,从而避免了 SQL 层的开销。高速缓存技术当使用 Oracle TimesTen 将 Oracle 数据的某些部分高速缓存到内存中数据库时,将创建一个高速缓存组数据库结构来保存高速缓存的数据,应用程序将调用其他共享库例程,同时启动一个系统代理(即高速缓存代理),此代理在高速缓存数据库和 Oracle 数据库之间执行所有异步数据传输。Oracle TimesTen 产品和技术第 9 页当使用Cache Connect to Oracle 选项将
23、 Oracle 数据库的某些部分高速缓存到 Oracle TimesTen 数据存储区时,将创建一个高速缓存组结构来保存缓存数据,应用程序将调用其他共享库例程,同时高速缓存代理在TimesTen 高速缓存与 Oracle 数据库之间执行异步数据传输图 4:为 Oracle 数据添加高速缓存高速缓存组是由一个或多个通过主键/外键关系以逻辑层次结构排列的表的集合。高速缓存组中的每个表都与 Oracle 数据库表相关。一个高速缓存组表可以包含相关 Oracle 表中的所有行和列或行和列的一个子集。可以通过基于高速缓存管理器的浏览器或通过 SQL 语句创建和修改高速缓存组。高速缓存组支持以下特性:高速
24、缓存组是由一个或多个通过主键/外键关系以逻辑层次结构排列的表的集合。高速缓存组中的每个表都与 Oracle数据库表相关应用程序可以对高速缓存组执行读取和写入操作可以自动或手动刷新高速缓存组(将 Oracle 数据库数据置于高速缓存组中)可以自动或手动清理高速缓存组(将高速缓存更新传播到 Oracle 表)可以自动跟踪对 Oracle 表或高速缓存组的更改如果应用程序更新了高速缓存组中的行,则将 Oracle 表中的相应行作为同一事务的一部分同步更新,或在事务执行后立即异步更新,具体情况取决于所创建的高速缓存组的类型。异步配置显著提高了吞吐量并缩短了响应时间。如果在同步提交至 Oracle 时因
25、某种原因失败,则回滚事务,从而保持一致性,而异步配置将只记录 Oracle 失败,而不是自动回滚 Oracle TimesTen 事务(因为该事务已经提交)。而异步配置的优点(除性能外)在于,即使在与 Oracle 的连接断开的情况下,它仍将继续运行,并在恢复连接时自动将更新应用于 Oracle。源自 Oracle 表的更改通过高速缓存代理刷新到高速缓存中。Oracle TimesTen 产品和技术第 10 页对高速缓存数据的更新置于表中,并定期由代理放到高速缓存中。用户在高速缓存外部所定义数据的老化也是由代理执行的异步操作。深入研究 IMDB 技术内存中数据库技术通过更改有关数据在运行时所在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleTimesTen 内存 数据库技术 白皮书
限制150内