Large Page Size

Oracle Database从10g开始就支持Windows平台的Large Page,该特性有助于更快的访问数据库buffer。11gR2的文档中指出在默认情况下,最小的large page size是16M,但事实上,有人统计出如下数据:

SGA_TARGET Large Page Request Size
256M 4,194,304
512M 4,194,304
1G 4,194,304
1G + 1 byte 16,777,216
2G 16,777,216
4G 16,777,216
8G 16,777,216
8G + 1 byte 33,554,432
16G 33,554,432
32G 67,108,864
64G 134,217,728
64G + 1 byte 268,435,456

如果配置为large page support,在长时间运行的服务器上重新启动实例可能会出现如下错误:

ORA-27102: out of memory
OSD-00022: additional error information
O/S-Error: (OS 1450) Insufficient system resources exist to complete the requested service. 

该问题,在微软的Large-Page Support介绍中已经描述过:当系统运行一段时间后,内存可能会形成碎片,此时将无法获取连续的内存空间。而large page,需要连续的内存空间。

解决办法有两种,一是将ORA_LPENABLE设置为0,取消large page support;二是重启服务器以清理内存碎片。