True Cache 常见问题解答

常见问题解答主题

概述

什么是 Oracle True Cache?

Oracle True Cache 是一个面向 Oracle Database 的内存中、一致且支持自动化管理的 SQL 高速缓存。该产品可以在您的数据库环境中无缝运行,有效存储经常访问的信息,从而显著缩短应用响应时间。Oracle True Cache 可承担重复性数据请求的负载,有效减少了数据库服务器的压力。其自动化管理和稳定的一致性有助于简化应用开发,为开发人员提供了经济高效和简化的方法。

Oracle True Cache 有哪些优势?

Oracle True Cache 可带来与应用开发和性能相关的多重业务优势。

  • 从主数据库卸载查询,提高可扩展性和性能。
  • 在更靠近应用的地方部署 True Cache,缩短应用响应时间,减少网络延迟。尤其适用于为满足数据驻留要求,而将数据库与应用分别部署在不同位置的情况。
  • 将数据分散到多个 True Caches,创建庞大的内存中存储区域。所有 True Caches 中高速缓存数据的总量可能比单个主数据库或高速缓存的大小大得多。
  • 自动维护高速缓存内容。
  • 对应用保持透明,简化开发和维护。

Oracle True Cache 的工作原理是什么?

简单来说,Oracle True Cache 的工作原理是:

  • 由某个应用决定要从 True Cache 还是从主数据库查询数据。
  • True Cache 使用内存中的高速缓存数据满足查询需求。当数据不在高速缓存中时,True Cache 将从主数据库提取数据。
  • True Cache 在启动时是空的,因此会读取大量数据来填充高速缓存。数据块进行高速缓存后,会通过主数据库的重做应用自动更新。这一点类似于 Oracle Active Data Guard 中的更新机制。
  • 对 True Cache 的查询只会返回已提交的数据,并且可以确保数据始终一致。
  • 如果一个数据库应用存在多个 True Cache,监听程序会自动将会话分配到每个高速缓存并进行负载平衡。

生命周期详细信息

数据是如何加载到 Oracle True Cache 的?

True Cache 在启动时是空的,因此会读取大量数据来填充高速缓存。

数据如何在 Oracle True Cache 中刷新?

数据块进行高速缓存后,会通过主数据库的重做应用自动更新。这一点类似于 Oracle Active Data Guard 中的更新机制。

Oracle True Cache 如何处理基本数据以防止被逐出?

True Cache 提供了在高速缓存中固定特定的表和数据集的功能。这种做法可以确保关键数据保持不变,即使是遇到内存限制或最近较少使用的 (LRU) 算法也是如此。当主数据库发生变更时,固定数据会自动实时刷新,从而保持一致性和可靠性。

Oracle True Cache 如何扩展?

True Cache 可以利用服务的概念进行扩展。例如,您可以定义两个服务:一个给销售部门,另一个给 HR。销售服务的所有请求都将流向一个高速缓存,而 HR 的请求则会流向另一个高速缓存。由于每个服务的数据是不同的,相关的表和数据结构也各不相同,因此这种方法能够有效地扩展 True Cache。MySQL Autopilot 提供下列功能:

  • 主数据库 (PRIMDBI) 运行两个数据库应用服务:SALES 和 HR。
  • 两个 True Cache 与主数据库应用服务相应的不同服务相关联:
    • TCDB1I 与 SALES_TC 服务关联。
    • TCDB2I 与 HR_TC 服务关联。

如果要将数据库应用服务与 Oracle True Cache 关联,需要设置哪些参数?

您可以使用与主数据库应用服务对应的服务名称,设置 TRUE_CACHE_SERVICE 参数。为了区分 True Cache 数据库应用服务,我们建议您使用“主服务名_TC”的格式。例如,如果主服务是 SALES,则 True Cache 服务名称为 SALES_TC。

Oracle True Cache 是否可以托管?

是的,您可以使用 COLOCATION_TAG 特性进行托管,该功能允许您将数据发送到特定区域的 True Cache。比方说,您有两个应用和两个 True Caches。COLOCATION_TAG 设为美国的会话将转至一个 True Cache (TCDB1I),而 COLOCATION_TAG 设为欧洲的会话则会转至另一个 True Cache (TCDB2I)。

是否可以直接在 Oracle True Cache 上执行更新?

不可以,True Cache 是只读高速缓存,因此无法直接更新高速缓存,但可以使用 DML 重定向间接更新高速缓存。DML 重定向会把数据写入主数据库,然后相关数据会在高速缓存中自动更新。这与 Oracle Active Data Guard 的工作方式相似。由于 DML 重定向使用更多的资源,因此不建议用于更新密集型应用。

如何在 Oracle True Cache 中启用 DML 重定向?

要启用 DML 重定向,请在 True Cache 上将 ADG_REDIRECT_DML 初始化参数设置为 TRUE。

Oracle True Cache 支持将哪些类型的数据进行高速缓存?

Oracle True Cache 针对所有 Oracle Database 对象和数据类型进行高速缓存,包括关系、JSON、文本、空间、图形和向量数据类型。用户可以以行或列格式访问 True Cache 中的数据,以满足各种高速缓存所需的兼容性和灵活性。

智能客户端驱动程序如何通过 Oracle True Cache 提高性能?

智能客户端驱动程序引用 Oracle JDBC 驱动程序的智能功能,可自动识别 True Cache 是否存在。这些驱动程序可以识别只读和读写请求,并将只读查询无缝路由到高速缓存。此创新功能无需为主数据库和高速缓存管理单独的连接,有助于简化应用开发。

Oracle True Cache 支持哪些部署用例?

True Cache 提供多种部署选项,可满足中层高速缓存、边缘高速缓存、跨区域高速缓存和跨云高速缓存配置等多种场景的需求。

Oracle True Cache 具备哪些安全措施?

Oracle True Cache 实施 Oracle Database 安全策略,其中包括一系列广泛的保护措施,例如静态数据加密、线下数据加密、行级安全性、Oracle Database Vault、Oracle Key Vault 以及全面的验证和授权机制。

许可

Oracle True Cache 在哪个数据库版本中提供?

True Cache 在 Oracle Database 23ai 及更高版本中提供。早期 Oracle Database 版本不支持 True Cache。

如何获得 Oracle True Cache 许可?怎么定价?

Oracle True Cache 是 Oracle Base Database Service 中的一项特性。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。