产品
TimesTen In-Memory Database
本教程介绍如何在 Oracle TimesTen 7.0 中创建和管理简单的 READONLY 缓存组
所需时间
大约 30 分钟
本教程包括下列主题:
| 概述 | ||
| 情景 | ||
| 前提条件 | ||
| 在 Oracle 中创建缓存管理用户帐户 | ||
| 启动缓存代理 | ||
| 创建并加载缓存组 | ||
| 使用 Oracle 更新自动刷新 TimesTen | ||
| 删除缓存组 | ||
| 停止缓存代理 | ||
| 总结 | ||
| 相关信息 | ||
将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
利用 Oracle 内存数据库 TimesTen 选件“Cache Connect to Oracle”,可以将 Oracle 表缓存到 Oracle TimesTen 数据库中。通过创建一个缓存组,它可以缓存单个 Oracle 表或一组相关的 Oracle 表。在 TimesTen 中缓存的 Oracle 数据可以包含 Oracle 表的所有行和列或部分行和列。缓存组可以是只读的或者可更新的。
本教程重点说明如何使用 SQL 语句创建和管理 READONLY 缓存组。
您在本教程中创建的 READONLY 缓存组基于 Oracle HR 示例模式的“departments”和“employees”表。这样就可以在 Oracle TimesTen 数据库上构建员工查找应用程序;该配置提高了应用程序的性能,并移除了主 Oracle Human Resource 数据库的负载。
开始本教程之前,您应该:
| 1. | 可以访问或者已经安装带有 Cache Connect to Oracle 选件的 Oracle 内存数据库 TimesTen 7.0。通过在 LINUX/UNIX 上重新运行 setup.sh 脚本或使用 Microsoft Windows“控制面板”中的“添加或删除程序”,可以将该选件添加到现有的 Oracle TimesTen 7.0 实例中。 |
| 2. | 已在安装有 Oracle TimesTen 7.0 数据库的同一台服务器上安装了 Oracle 9iR2 或 10g 客户端或者 Oracle 9iR2 或 10g 数据库。 |
| 3. | 可以访问或已经安装了 Oracle 数据库中的 Oracle HR 示例模式。 |
您需要首先为 Oracle 数据库中的缓存管理用户创建一个帐户,然后才能使用 Cache Connect to Oracle。该用户拥有 Oracle TimesTen 在 Oracle 数据库中创建的系统表和触发器(它们是为跟踪数据更改而创建的),因此可用于刷新 Oracle TimesTen 数据库中的缓存数据。
教程的其他部分假设 Oracle 用户 HR 的口令为 HR,Oracle 数据库连接字符串为 ORCL。
要为缓存管理用户创建帐户,执行下列步骤:
1. | 以系统用户身份登录,使用 SQL*Plus 并执行下列语句为用户 ttsys 创建一个帐户: CREATE USER ttsys IDENTIFIED BY ttsys
|
2. | 将 CREATE ANY TRIGGER 权限授予 ttsys,这将允许缓存管理用户在其他 Oracle 数据库用户拥有的表(如 HR 表)上创建触发器。
|
| 3. | 以用户 HR 的身份登录,将 DEPARTMENTS 和 EMPLOYEES 表的 SELECT 权限授予缓存管理用户: |
接下来,您需要为 TimesTen 数据库创建一个名为 ttdemo 的 DSN(数据源名称)。
对于 Windows,设置:
对于 UNIX/Linux 平台,将以下项添加到 odbc.ini 文件中:
[ttdemo]
Datastore= /tmp/ttdemo
PermSize= 20
TempSize= 20
UID= hr
OracleId= orcl
DatabaseCharacterSet= 必须是与 Oracle 数据库相同的数据库字符集
其他所有设置使用默认设置。
在 Oracle 数据库中输入以下 SQL,可以检索 Oracle 数据库字符集。
SELECT value FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET';
有关如何创建 DSN 的详细信息,请参见教程“创建 Oracle TimesTen 7.0 数据库”。
现在,切换到 Oracle TimesTen,使用 ttIsql 实用程序,并启动 Oracle TimesTen 缓存代理。缓存代理负责从 Oracle 数据库检索数据,并将数据缓存在 Oracle TimesTen 中。
要启动缓存代理,执行下列步骤:
| 1. | 启动 ttIsql,并连接到 ttdemo Oracle TimesTen 数据库。在连接时提交 Oracle HR 用户口令。
|
| 2. | 调用 Oracle TimesTen 内置过程 ttCacheUidPwdSet( ),为缓存管理用户设置 Oracle 用户名和口令。然后,调用 ttCacheStart( ) 过程以启动 Oracle TimesTen 缓存代理。
|
| 3. | 执行 ttstatus 实用程序,以确认缓存代理已启动并正在运行。 |
接下来,在 ttIsql 中,使用 SQL CREATE CACHE GROUP 语句创建一个 READONLY 缓存组,并使用 Oracle 数据库中的当前数据填充缓存。
要创建并填充只读缓存组,执行下列步骤:
| 1. | 将以下 CREATE CACHE GROUP 语句剪切并粘贴到 ttIsql,以创建一个名为 CG_READONLY_DEPT_EMP 的 READONLY 缓存组,并缓存 HR 示例模式的 DEPARTMENTS 和 EMPLOYEES 表。 create readonly cache group HR.CG_READONLY_DEPT_EMP |
| 2. | 使用 ttIsql cachegroups 命令检查新创建的缓存组的定义。
|
| 3. | 将 Oracle 表的内容载入 READONLY 缓存组。 加载数据之后,缓存组的自动刷新状态将自动更改为 ON。
|
使用 SQL*Plus 将新员工插入 EMPLOYEES 表并提交记录。验证 TimesTen 数据库中的更改。
| 1. | 将新员工插入 Oracle HR.EMPLOYEES 表。 insert into employees |
| 2. | 1 秒钟之后,Oracle Timesten 将自动刷新其缓存的 Oracle 数据。 使用 ttIsql 检查新数据:
|
可以使用 SQL DROP CACHE GROUP 语句将缓存组从 Oracle TimesTen 数据库中删除。
|
调用 ttCacheStop( ) 过程以停止 Oracle TimesTen 缓存代理。使用 ttstatus 确认缓存代理已经关闭。 |
在本教程中,您学习了如何:
| 创建和删除 READONLY 缓存组 | ||
| 在 Oracle 数据库中创建缓存管理用户 | ||
| 将数据载入 READONLY 缓存组 | ||
| 启动和关闭 Oracle TimesTen 缓存代理 | ||
使用 ttstatus 监视 Oracle TimesTen 数据库的状态 | ||
要了解有关 Oracle 内存数据库 TimesTen 的详细信息,您可以参考:
| 入门:Oracle 内存数据库 TimesTen | ||
| OTN 上的 Oracle 内存数据库 TimesTen 产品中心 | ||
将鼠标置于该图标上可以隐藏所有的屏幕截图。