< 在 此 处 插 入 图 片 > 利 用 Oracle In-Memory Database Cache 开 发 数 据 库 应 用 程 序
以 下 内 容 旨 在 概 述 产 品 的 总 体 发 展 方 向 该 内 容 仅 供 参 考, 不 可 纳 入 任 何 合 同 该 内 容 不 构 成 提 供 任 何 材 料 代 码 或 功 能 的 承 诺, 并 且 不 应 该 作 为 制 定 购 买 决 策 的 依 据 所 描 述 的 有 关 Oracle 产 品 的 任 何 特 性 或 功 能 的 开 发 发 布 和 时 间 安 排 均 由 Oracle 自 行 决 定 2
Oracle TimesTen In-Memory Database 基 于 物 理 内 存 优 化 设 计 的 关 系 型 数 据 库 内 存 关 系 型 数 据 库 针 对 物 理 内 存 特 别 优 化 的 存 储 结 构 和 数 据 处 理 算 法 卓 越 性 能 微 秒 级 别 的 响 应 时 间 高 吞 吐 量 嵌 入 式 结 构 数 据 持 久 性 交 易 日 志 和 检 查 点 文 件 写 到 磁 盘 灵 活 的 数 据 持 久 选 项 标 准 接 口 SQL 和 PL/SQL JDBC, ODBC, ODP.NET, OCI, Pro*C 兼 容 Oracle 数 据 库 接 口 客 户 端 / 服 务 器 应 用 程 序 客 户 端 / 服 务 器 TimesTen 客 户 端 库 直 连 应 用 程 序 TimesTen 库 JDBC / ODBC / ADO.NET / OCI / PLSQL 常 驻 内 存 的 数 据 库 快 速 数 据 访 问 检 查 点 文 件 日 志 文 件 3
Microseconds 极 速 响 应 时 间 平 均 响 应 时 间 TimesTen In-Memory Database 12 8 4 0 2.5 微 秒 读 一 条 记 录 10 微 秒 写 一 条 记 录 Oracle TimesTen In-Memory Database 11g Sun Fire 4270 M2 Solaris 10 上 的 2 个 6 核 Intel Xeon 5670 (2.93 GHz) 4
Transactions Per Second Transactions Per Second TimesTen 11g 极 限 性 能! 3,500,000 TimesTen 11g - Read Throughput 3,112,020 每 秒 五 十 万 次 更 3,000,000 2,500,000 2,429,709 新 操 作! 2,000,000 1,500,000 1,258,811 1,000,000 500,000 396,816 500,000 450,000 TimesTen 11g - Update Throughput 449,772 0 1 4 8 12 Concurrent Processes 400,000 350,000 300,000 270,369 338,511 每 秒 超 过 三 百 万 250,000 200,000 次 读 操 作! 150,000 100,000 98,106 50,000 0 1 4 8 12 Concurrent Processes Oracle TimesTen In-Memory Database 11g Sun Fire 4270 M2 Solaris 10 上 的 2 个 6 核 Intel Xeon 5670 (2.93 GHz) 5
为 什 么 TimesTen 速 度 快? 内 存 数 据 库 所 有 数 据 在 内 存 中 当 然 数 据 也 会 被 写 到 磁 盘 中 不 存 在 buffer cache management 的 额 外 开 销 针 对 物 理 内 存 特 别 优 化 的 存 储 结 构 和 数 据 处 理 算 法 更 短 的 执 行 路 径 (code path) = 更 快 的 速 度 应 用 程 序 可 以 和 TimesTen database 链 接 到 一 起 应 用 程 序 操 作 数 据 库 数 据, 就 像 在 读 取 和 操 作 自 己 堆 栈 空 间 里 的 数 据 Database operations executed directly in the application process address space 没 有 网 络 传 输 的 额 外 开 销, 没 有 进 程 间 通 信 (IPC) 额 外 开 销 Eliminates network and inter-process communication overhead 极 低 的 响 应 时 间 ( 就 像 调 用 程 序 里 面 的 一 个 函 数 一 样 ) Extremely low response time (like calling a procedure) 使 用 标 准 APIs: SQL, PL/SQL, JDBC, ODP.NET, OCI, Pro*C, ODBC, 6
<Insert Picture Here> TIMESTEN 内 存 数 据 库 演 示 7
持 久 性 和 实 时 复 制 高 可 用 性 低 延 迟 持 久 性 联 机 升 级 应 用 程 序 事 务 主 机 检 查 点 文 件 日 志 文 件 只 读 订 阅 数 据 库 热 备 份 上 的 应 用 程 序 读 取 备 机 检 查 点 文 件 日 志 文 件 订 阅 数 据 库 订 阅 数 据 库 订 阅 数 据 库 实 时 事 务 复 制 内 存 到 内 存 复 制 高 性 能 异 步 复 制 同 步 复 制 低 延 时 数 据 持 久 灵 活 的 配 置 主 机 备 机 配 对 主 机 主 机 相 互 复 制 可 选 的 只 读 数 据 库 高 可 靠 性 LAN 和 WAN 配 置 数 据 压 缩 联 机 升 级 无 停 机 8
<Insert Picture Here> 如 果 你 已 经 在 使 用 Oracle 数 据 库, 如 何 让 你 的 应 用 程 序 利 用 TimesTen 内 存 数 据 库 技 术? 9
Oracle In-Memory Database Cache 客 户 端 / 服 务 器 应 用 程 序 客 户 端 / 服 务 器 Mid-Tier Server TimesTen 客 户 端 库 直 连 应 用 程 序 TimesTen 库 JDBC / ODBC / ADO.NET / OCI / PLSQL 检 查 点 文 件 日 志 文 件 Database Tier 缓 存 Oracle 数 据 库 的 部 分 数 据 缓 存 表 和 常 规 数 据 库 表 一 样 使 用 标 准 SQL 接 口, JDBC, ODP.NET, ODBC, OCI, Pro*C, PL/SQL 等 可 读 可 写 的 缓 存 技 术 具 备 标 准 ACID 属 性 的 事 务 处 理 数 据 持 久 不 丢 失 和 Oracle 数 据 库 自 动 同 步 10
In-Memory Database Cache 灵 活 的 缓 存 组 配 置 Application Transactions Cache Groups 缓 存 组 描 述 要 缓 存 的 Oracle 数 据 库 中 的 数 据 一 组 相 关 联 的 表 格 所 有 或 部 分 行 或 列 通 过 SQL 子 句 定 义 Automatic Data Synchronization CREATE CACHE GROUP FROM owner.customer (col1, col2), owner.acct (col1, col4) WHERE <predicate> 缓 存 表 和 TimesTen 中 的 常 规 数 据 库 表 一 样 联 接 / 搜 索 插 入 / 更 新 / 删 除 11
Read-only Cache Groups 只 读 缓 存 For Frequently Queried Data 缓 存 频 繁 访 问 的 数 据 Application Reads In-Memory Cache Tables 3-node Cache Grid Application Reads In-Memory Cache Tables Application Reads In-Memory Cache Tables Updates to Oracle Server Oracle database 包 含 最 近 更 新 过 数 据 Oracle Database 中 的 更 新 能 够 自 动 刷 新 到 TimesTen In-Memory Database 缓 存 中 可 以 自 定 义 刷 新 频 率 (Refresh interval) 不 允 许 直 接 更 新 只 读 缓 存 中 的 数 据 但 是 可 以 使 用 TimesTen 的 passthrough 功 能, 在 TimesTen 连 接 (connection) 里 更 新 Oracle Database 中 的 数 据 ( 用 户 不 需 要 建 立 到 Oracle Database 的 连 接 ) 12
Read-Write Cache Groups 可 读 可 写 缓 存 With Transactional Consistency 保 持 交 易 一 致 性 自 动 同 步 Application Transactions In-Memory Cache Tables 3-node Cache Grid 三 节 点 缓 存 网 格 Application Transactions In-Memory Cache Tables Application Transactions In-Memory Cache Tables TimesTen 数 据 库 包 含 最 新 的 数 据 在 TimesTen 中 执 行 事 务 (Transactions executed in TimesTen) 事 务 提 交 后 再 写 入 到 Oracle Database 事 务 写 入 到 Oracle Database 可 以 是 异 步 写 入, 也 可 以 是 同 步 写 入 异 步 写 入 时 性 能 最 好 13
Globally Shared Caches 全 局 共 享 缓 存 网 格 基 于 商 用 硬 件 的 水 平 扩 展 读 / 写 事 务 读 / 写 事 务 应 用 程 序 读 / 写 事 务 位 置 透 明 性 每 个 节 点 都 可 访 问 所 有 缓 存 节 点 数 据 应 用 程 序 应 用 程 序 按 需 加 载 缓 存 由 使 用 情 况 驱 动 的 自 适 应 缓 存 数 据 重 新 分 配 自 动 同 步 分 布 式 并 行 搜 索 更 新 事 务 一 致 性 点 对 点 通 信 自 动 与 Oracle Database 进 行 同 步 14
Flexible Caching Options 灵 活 的 缓 存 选 项 不 同 类 型 的 缓 存 可 以 同 时 存 在 预 先 加 载 的 只 读 缓 存 预 先 加 载 的 可 读 可 写 缓 存 动 态 加 载 的 可 读 可 写 缓 存 自 定 义 生 命 周 期 的 缓 存 灵 活 的 缓 存 选 择 本 地 缓 存 提 供 一 致 的 响 应 时 间 全 局 缓 存 使 得 网 格 数 据 对 应 用 程 序 透 明 15
联 机 添 加 / 删 除 缓 存 网 格 成 员 增 量 扩 展 / 收 缩 应 用 程 序 应 用 程 序 应 用 程 序 应 用 程 序 应 用 程 序 按 需 添 加 / 删 除 缓 存 节 点, 以 适 应 内 存 容 量 需 求 计 算 容 量 需 求 16
<Insert Picture Here> IN-MEMORY DATABASE CACHE 内 存 数 据 库 缓 存 演 示 17
<Insert Picture Here> 高 可 用 性 和 最 大 可 用 性 架 构 18
Tx logs on disk Updatable Cache Replication 复 制 可 读 可 写 缓 存 Application Transactions In-Memory Cache Tables 主 机 Hot Standby available for reads In-Memory Cache Tables 备 机 缓 存 写 入 同 步 Tx logs on disk 应 用 程 序 运 行 在 主 机 数 据 库 上 事 务 提 交 后 被 复 制 到 备 机 上 备 机 再 将 提 交 的 事 务 同 步 到 Oracle database 备 机 上 运 行 报 表 类 (reporting) 只 读 应 用 程 序 应 用 程 序 不 受 单 点 故 障 影 响 应 用 程 序 不 受 Oracle Database 可 用 性 影 响 瞬 间 完 成 故 障 迁 移 恢 复, 不 丢 失 任 何 数 据 19
Tx logs on disk Read-only Cache Replication 复 制 只 读 缓 存 Queries on read-only cache In-Memory Cache Tables 主 机 缓 存 刷 新 Hot Standby also available for reads In-Memory Cache Tables 备 机 Tx logs on disk Oracle Database 中 的 数 据 更 新 被 刷 新 到 主 机 上 的 缓 存 中 主 机 再 复 制 更 新 到 备 机 上 备 机 数 据 库 可 以 运 行 报 表 类 (reporting) 只 读 应 用 程 序 主 机 和 备 机 数 据 同 时 可 读 应 用 程 序 不 受 单 点 故 障 影 响 应 用 程 序 不 受 Oracle Database 可 用 性 影 响 瞬 间 完 成 故 障 迁 移 恢 复, 不 需 要 等 待 重 新 加 载 数 据 库 20
客 户 端 连 接 自 动 迁 移 恢 复 适 用 于 客 户 机 / 服 务 器 类 型 的 连 接 (connections) 可 在 应 用 程 序 中 配 置 自 动 连 接 恢 复 所 有 主 机 上 的 连 接 自 动 迁 移 到 备 机 当 主 机 故 障, 系 统 自 动 迁 移 恢 复, 备 机 接 管 成 为 新 主 机 时 客 户 端 连 接 自 动 重 连 到 新 的 主 机 ( 故 障 之 前 的 备 机 ) 对 客 户 端 透 明, 应 用 程 序 继 续 使 用 同 一 个 连 接 对 象 连 接 迁 移 恢 复 提 醒 (like TAF) 应 用 程 序 可 以 选 择 接 收 连 接 迁 移 恢 复 的 提 醒 Active In-Memory Database Cache Application IMDB Cache Client Library Active In-Memory Database Cache 21
和 Oracle RAC 无 缝 集 成 提 供 多 层 次 的 高 可 用 性 如 果 Oracle RAC 节 点 故 障, TimesTen 缓 存 自 动 切 换 到 可 用 RAC 节 点 (using TAF and FAN) 自 动 重 连 到 Cluster 缓 存 数 据 刷 新 从 断 点 继 续 缓 存 写 入 同 步 从 断 点 继 续 不 丢 失 任 何 事 务 或 者 数 据 Application Transactions In-Memory Cache Tables Active Hot Standby for reads In-Memory Cache Tables Standby 22
和 Oracle Clusterware 无 缝 集 成 自 动 化 管 理, 监 控 和 故 障 恢 复 Oracle Clusterware 管 理 TimesTen 进 程 监 控 和 检 测 如 下 故 障 节 点 故 障 TimesTen / IMDB Cache 进 程 故 障 应 用 程 序 故 障 自 动 故 障 恢 复 重 新 分 配 主 机 备 机 角 色 利 用 空 闲 节 点 重 新 部 署 替 换 故 障 节 点 Active Application In-Memory Database Cache Read-Only Subscribers Standby Application In-Memory Database Cache In-Memory Database In-Memory Cache Database In-Memory Cache Database Cache Shared Storage Spare Nodes For Clusterware 23
和 Oracle Data Guard 无 缝 集 成 Oracle Maximum Availability Architecture 支 持 Data Guard 同 步 物 理 复 制 故 障 迁 移 恢 复 主 用 备 用 角 色 转 换 Business Applications Cache tables Business Applications Cache tables 滚 动 升 级 In-Memory Database Cache Data Guard Real Application Clusters Standby Oracle Database 24
TimesTen IMDB Cache 缓 存 网 格 高 可 用 性 备 用 备 用 主 用 主 用 主 用 备 用 网 格 成 员 备 用 主 用 备 用 应 用 主 程 用 序 与 Oracle Clusterware 集 成, 以 自 动 执 行 故 障 切 换 和 恢 复 单 节 点 故 障 不 影 响 网 格 成 员 可 用 性 单 个 网 格 成 员 故 障 不 影 响 整 个 缓 存 网 格 可 用 性 25
<Insert Picture Here> 接 口 和 工 具 26
应 用 开 发 ADO.NET ODBC ttclasses OCI, Pro*C SQL PL/SQL C/C++/C# Languages J2EE App Servers OR Mapping 27
TimesTen 支 持 SQL Developer 3.0 浏 览, 创 建, 修 改 TimesTen Database 对 象 ( 包 括 用 户 对 象 ) In-Memory Database Cache 创 建 / 删 除 / 修 改 缓 存 组 (cache groups) 加 载 / 卸 载,flush 同 步, 以 及 刷 新 缓 存 数 据 支 持 PL/SQL 创 建 / 替 换 / 删 除, 修 改, 编 译, 执 行 以 及 导 出 函 数 / 功 能 或 者 PL/SQL 包 显 示 SQL 执 行 计 划, 更 新 表 格 统 计 信 息 使 用 SQL Worksheet 来 执 行 SQL, TimesTen 内 嵌 函 数 (built-in proc), 以 及 ttisql 的 命 令 运 行 预 定 义 的 数 据 库 对 象 报 告 可 同 时 操 作 TimesTen 缓 存 数 据 和 Oracle 中 相 应 的 数 据 28
TimesTen 系 统 监 视 工 具 Oracle Enterprise Manager 插 件 监 视 关 键 性 能 指 标 用 户 可 定 义 警 报 和 通 告 触 发 点 提 供 即 时 可 用 的 TimesTen 性 能 报 表 用 户 可 使 用 图 形 界 面 向 导 来 创 建 更 多 自 定 义 报 表 低 开 销 29
客 户 选 择 TimesTen 的 主 要 原 因 低 延 迟 响 应 时 间 以 微 秒 为 单 位 海 量 事 务 和 事 件 处 理 能 力 高 并 发 量 时 提 供 一 致 的 响 应 时 间 高 可 用 性 联 机 升 级 标 准 SQL 和 API 以 及 和 Oracle 数 据 库 自 动 同 步 功 能 现 有 应 用 程 序 无 需 修 改 或 只 需 很 少 修 改 30
VIRTUALBOX TIMESTEN 上 机 练 习 环 境 31
VirtualBox TimesTen 上 机 练 习 32
Oracle In-Memory Database Cache 上 机 练 习 Developing PL/SQL Applications with Oracle TimesTen In-Memory Database Creating an In-Memory Cache Grid with Oracle TimesTen In-Memory Database 33
更 多 信 息 TimesTen 产 品 中 心 http://www.oracle.com/technetwork/cn/database/timesten/overview/ 34
35
36