我收到了来自 oracle 的电子邮件,要求更改 solaris 10 服务器的限制以使 oracle 应用程序正常工作,
不幸的是我没有 Solaris 的经验,所以需要帮助
值将如下所示
A00110 This rule verifies that the ulimit settings are adequate Oracle Database 11g R2. The recommended values are not less than:
ulimit(TIME) = unlimited
ulimit(FILE) = unlimited
ulimit(DATA) = 1048576
Soft ulimit(NOFILES) = 1024
Hard ulimit(NOFILES) = 65536
ulimit(VMEMORY) = 4194304
and not more than
Soft ulimit(STACK) = 10240
Hard ulimit(STACK) = 32768
VmemoryNotDefined
StackHardUnlimited Review the ulimit settings:
Set the hard ulimit(STACK) to a maximum of 32768
ulimit(VMEMORY) is not defined
不建议提高全局文件描述符限制,因为这可能会使 32 位程序失败,除非他们知道如何使用大于 255 的文件描述符,请参阅:
enable_extended_FILE_stdio(3C)
.因此,最好只通过 shell 脚本调用 oracle 数据库,该脚本首先执行所需的
ulimit
调用以设置限制,然后调用数据库。让我展示一个可以使用 Bourne Shell 检索的典型 Solaris 限制集(如我的示例中所示)。请注意,
ksh93
此处使用没有帮助,因为 ksh93 包含来自其他不可设置的资源的信息。这是 Solaris 上的默认设置:如您所见,除了打开的文件描述符之外,所有默认值都高于所需值。我不确定是否应该减少堆栈硬限制。
如果您想修改这些值,请编写一个 shell 脚本并输入:
这将软文件描述符限制提高到 1024 并产生新的限制:
如果您需要减少硬堆栈限制,请同时输入:
这将硬堆栈限制减少到 32 MB,并导致:
之后,输入命令启动oracle数据库到脚本,然后运行这个脚本。