排除内存消耗问题

注意:

此信息仅适用于数据复制部署。

如果 Oracle GoldenGate 提取或复制在运行长时间事务处理时内存不足,则必须为每个进程正确配置高速缓存管理器。

在大多数情况下,默认高速缓存大小设置为 64 GB 可以。处理非常大的事务处理时,或者部署配置相对于要处理的事务处理大小较小时,会出现问题。

根据 OCI GoldenGate 部署的配置,每个 OCPU 分配 16 千兆字节 (GB) 物理内存。如果启用了自动缩放,则总物理内存可以增加多达 3 倍。

例如,具有 4 个 OCPU(4 x 16 GB = 64 GB) 和启用自动缩放 (64 GB x 3) 的 OCI GoldenGate 部署具有 192 GB 可用物理内存。

默认情况下,为每个 OCI GoldenGate 部署分配 256 GB 的交换空间。因此,部署的虚拟内存总量为 192 GB + 256 GB = 448 GB。考虑到部署中的所有 GoldenGate 处理都共享此虚拟内存,Oracle 建议您将 CACHEMGR CASHESIZE 设置为安全范围,例如 60% 的虚拟内存或 268 GB。提取或复制达到 268 GB 虚拟内存使用量后,溢出事务处理将写入磁盘,缺省值为 /u03/temp。此默认目录有 256 GB 可用。如果空间仍然不足,则可以添加辅助目录。Oracle 建议使用无限制的 /u02/Deployment/var/lib/cachemanager

CACHEMGR CACHESIZE 268G CACHEDIRECTORY /u03/temp, CACHEDIRECTORY /u02/Deployment/var/lib/cachemanager

如果有多个提取和复制用于在同一部署中处理大型事务处理,则可以从以下选项中进行选择:

  • 增加部署的 OCPU,以便您拥有更多的物理内存并产生更多的虚拟内存供进程使用。
  • 减少 CACHEMGR CACHESIZE 设置,以便每个进程使用较少的虚拟内存并强制溢出使用磁盘目录。这样,您可以保留当前的部署配置,而不会增加成本。但是,大型事务处理将稍微慢一些,因为它使用磁盘而不是虚拟内存来缓存暂挂事务。

您可以使用此处提到的参数和建议来帮助微调您的环境设置,使其达到交易规模。