使用 onmode -F 释放共享内存

可以运行 onmode -F 命令来释放进程不可用或不再需要的共享内存段。

数据库服务器不会自动释放操作过程中添加的共享内存段。将内存分配给数据库服务器虚拟部分后,该内存仍无法供主机中运行的其他进程使用。当数据库服务器运行大的决策支持查询时,可能获得大量的共享内存。查询完成后,数据库服务器将不再需要这些共享内存。但是,数据库服务器分配用于执行查询的共享内存仍然会保留分配给虚拟部分,即使已不再需要它。

onmode -F 命令将查找并释放数据库服务器仍然保留但不使用的 8 KB 共享内存块。虽然该命令的运行时间很短暂(一两秒钟),但是 onmode -F 在运行时会极大地限制用户活动。该实用程序运行时,附带多个 CPU 和 CPU VP 的系统的性能通常会稍有下降。

应该在空隙时间段使用操作系统调度工具(如 UNIX™ 上的 cron)运行 onmode -F。另外,在执行会显著增加数据库服务器共享内存大小的任何任务(例如,大型决策支持查询、索引构建、排序或备份操作)后,请考虑运行该实用程序。