ORA-12810: PARALLEL_MAX_SERVERS must be less than or equal to string ORACLE 报错 故障修复 远程处理

文档解释

ORA-12810: PARALLEL_MAX_SERVERS must be less than or equal to string

Cause: An attempt was made to set the PARALLEL_MAX_SERVERS parameter to a value higher than the maximum allowed by the system.

Action: Set PARALLEL_MAX_SERVERS to a value less than or equal to the maximum specified in the accompanying message and retry.

ORA-12810 : PARALLEL_MAX_SERVERS must be less than or equal to string是当PARALLEL_MAX_SERVERS参数的值大于给定的值时,抛出的错误。可以使用v$resource_limit视图查看当前用户设置的PARALLEL_MAX_SERVERS参数值和允许的最大值。

官方解释

ORA-12810 表明 Simple Class Operating System-wide Resource Manager 的名义分配的 OS 进程数不能大于指定的数字. 这个限制指定每一个CPU多少个进程可以同时运行。

常见情况:

这种情况通常出现在在 Linux 或 Solaris 上启动多个并行会话时,如果你设置了 PARALLEL_MAX_SERVERS 参数大于系统设置的最大进程数时会报错 。

正常处理方法及步骤

可以使用以下 SQL 语句查看系统设置给每个 CPU 允许的最大 OFS 进程数:

SQL> SELECT * FROM v$resource_limit WHERE resource_name=’processor’ AND limit_name=’processor_count’;

LIMIT_NAME PROCESSOR_COUNT

HARD_LIMIT

若想避免报这个错,需使用操作系统提供的工具(如/usr/sbin/psrset)或者是编辑/etc/project 文件,来设置要求的OFSS的最大进程数。

1. 查看每个 cpu 允许的最大 OFS 进程数;

2. 使用操作系统提供的工具或者编辑 /etc/project 文件,设置合理的最大进程数;

3. 使用 ALTER SYSTEM 语句,设置PARALLEL_MAX_SERVERS参数为合理的值;

4. 重新查看当前 PARALLEL_MAX_SERVERS 参数;

5. 重新启动多个并行会话,查看是否能正常运行。


数据运维技术 » ORA-12810: PARALLEL_MAX_SERVERS must be less than or equal to string ORACLE 报错 故障修复 远程处理