Oracle True Cache 是一个面向 Oracle Database 的内存中、一致且支持自动化管理的 SQL 高速缓存。该产品可以在您的数据库环境中无缝运行,有效存储经常访问的信息,从而显著缩短应用响应时间。Oracle True Cache 可承担重复性数据请求的负载,有效减少了数据库服务器的压力。其自动化管理和稳定的一致性有助于简化应用开发,为开发人员提供了经济高效和简化的方法。
Oracle True Cache 可带来与应用开发和性能相关的多重业务优势。
简单来说,Oracle True Cache 的工作原理是:
True Cache 在启动时是空的,因此会读取大量数据来填充高速缓存。
数据块进行高速缓存后,会通过主数据库的重做应用自动更新。这一点类似于 Oracle Active Data Guard 中的更新机制。
True Cache 提供了在高速缓存中固定特定的表和数据集的功能。这种做法可以确保关键数据保持不变,即使是遇到内存限制或最近较少使用的 (LRU) 算法也是如此。当主数据库发生变更时,固定数据会自动实时刷新,从而保持一致性和可靠性。
True Cache 可以利用服务的概念进行扩展。例如,您可以定义两个服务:一个给销售部门,另一个给 HR。销售服务的所有请求都将流向一个高速缓存,而 HR 的请求则会流向另一个高速缓存。由于每个服务的数据是不同的,相关的表和数据结构也各不相同,因此这种方法能够有效地扩展 True Cache。MySQL Autopilot 提供下列功能:
您可以使用与主数据库应用服务对应的服务名称,设置 TRUE_CACHE_SERVICE 参数。为了区分 True Cache 数据库应用服务,我们建议您使用“主服务名_TC”的格式。例如,如果主服务是 SALES,则 True Cache 服务名称为 SALES_TC。
是的,您可以使用 COLOCATION_TAG 特性进行托管,该功能允许您将数据发送到特定区域的 True Cache。比方说,您有两个应用和两个 True Caches。COLOCATION_TAG 设为美国的会话将转至一个 True Cache (TCDB1I),而 COLOCATION_TAG 设为欧洲的会话则会转至另一个 True Cache (TCDB2I)。
不可以,True Cache 是只读高速缓存,因此无法直接更新高速缓存,但可以使用 DML 重定向间接更新高速缓存。DML 重定向会把数据写入主数据库,然后相关数据会在高速缓存中自动更新。这与 Oracle Active Data Guard 的工作方式相似。由于 DML 重定向使用更多的资源,因此不建议用于更新密集型应用。
要启用 DML 重定向,请在 True Cache 上将 ADG_REDIRECT_DML 初始化参数设置为 TRUE。
Oracle True Cache 针对所有 Oracle Database 对象和数据类型进行高速缓存,包括关系、JSON、文本、空间、图形和向量数据类型。用户可以以行或列格式访问 True Cache 中的数据,以满足各种高速缓存所需的兼容性和灵活性。
智能客户端驱动程序引用 Oracle JDBC 驱动程序的智能功能,可自动识别 True Cache 是否存在。这些驱动程序可以识别只读和读写请求,并将只读查询无缝路由到高速缓存。此创新功能无需为主数据库和高速缓存管理单独的连接,有助于简化应用开发。
True Cache 提供多种部署选项,可满足中层高速缓存、边缘高速缓存、跨区域高速缓存和跨云高速缓存配置等多种场景的需求。
Oracle True Cache 实施 Oracle Database 安全策略,其中包括一系列广泛的保护措施,例如静态数据加密、线下数据加密、行级安全性、Oracle Database Vault、Oracle Key Vault 以及全面的验证和授权机制。
True Cache 在 Oracle Database 23ai 及更高版本中提供。早期 Oracle Database 版本不支持 True Cache。
Oracle True Cache 是 Oracle Base Database Service 中的一项特性。
注:为免疑义,本网页所用以下术语专指以下含义: