创建数据库遇到ORA-12801 ORA-00018错误
T5240 Solaris10 + SunCluster3.2 + ST6140+Oracle11.1.0.7
安装完成11.1.06打11.1.0.7的补丁,
xmanager 后dbca创建实例
创建到80%多的时候报错误:
ORA-12801: error signaled in parallel query server P073.
ORA-00018: maximum number of sessions exceeded
ORA-06512: at "SYS.UTL_RECOMP", line 629
ORA-06512: at "SYS.UTL_RECOMP", line 671
ORA-06512: at line 1
ORA-00018: maximum number of sessions exceeded
ORA-06512: at "SYS.UTL_RECOMP", line 629
ORA-06512: at "SYS.UTL_RECOMP", line 671
ORA-06512: at line 1
metalink也没到这个问题,google一番,在国外的一个blog上看到这个问题,也是T5000系列的机器。大概是说cpu太多,的缘故造成的,
#psrinfo 查看到0-111个cpu (虚cpu可能与T5000系列的型号有关系)
使用psradm -f 0-79 offline0-79个cpu继续 create db
后来发现自动reboot了,session数据错误是什么意思
启动后,发现cpu全部是online状态了,看来不能彻底关闭掉。继续psradm -f 16-111关闭后面的cpu,并且多关闭一些,
然后create db成功了!
【参考】
man psradm
Windows Oracle11gR1 创建数据库错误问题
在IBM 3825(24虚拟CPU)上安装Oracle,创建数据库到95%时,发生如下错误:
ORA-12801: error signaled in parallel query server P073.
ORA-12801: error signaled in parallel query server P073.
ORA-00018: maximum number of sessions exceeded
ORA-06512: at "SYS.UTL_RECOMP", line 629
ORA-06512: at "SYS.UTL_RECOMP", line 671
ORA-06512: at line 1
经google,发现有如下问题:
1.CPU数量太多
2.session数量不够
参考资料
www.keyongtech/5021009-oracle-11-1-0-on
blogs.sun/pomah/entry/too_many_cpu
blogs.sun/glennf/entry/virtual_cpus_effect_on_oracle
ORA-06512: at "SYS.UTL_RECOMP", line 629
ORA-06512: at "SYS.UTL_RECOMP", line 671
ORA-06512: at line 1
经google,发现有如下问题:
1.CPU数量太多
2.session数量不够
参考资料
www.keyongtech/5021009-oracle-11-1-0-on
blogs.sun/pomah/entry/too_many_cpu
blogs.sun/glennf/entry/virtual_cpus_effect_on_oracle
解决:
修改文件D:\app\dmadmin\product\11.1.0\db_1/assistants/dbca/templates/General_Purpose.dbc
在其中InitParams部分增加
<initParam name="sessions" value="1500"/>
MiscParams部分增加
<sessions>500</sessions>
修改文件D:\app\dmadmin\product\11.1.0\db_1/assistants/dbca/templates/General_Purpose.dbc
在其中InitParams部分增加
<initParam name="sessions" value="1500"/>
MiscParams部分增加
<sessions>500</sessions>
<maxUserConn>500</maxUserConn>
重新配置数据库实例
使用Configure Assistant 删除orcl实例,重新创建orcl实例,OK。
重新配置数据库实例
使用Configure Assistant 删除orcl实例,重新创建orcl实例,OK。
这玩意来自一篇03年的文档,估计很古老了,所以有些法则可能不适用,使用者请先在自己的环境验证
parallel_min_servers
最小并行进程数,在ORACLE实例启动的时候,将会自动启动这么多的并行进程放到进程池
parallel_max_servers
最大并行进程数。当需要的并行进程超过parallel_min_servers时,会自动生成新的并行进程来响应请求,但是总的并行进程数受parallel_max_servers限制
parallel_min_percent
最少进程的百分比。当新的申请超过parallel_max_servers的限制的时候,那么如果池中剩余的进程>申请的进程*parallel_min_percent,则会把池中所有剩余的进程全部分配给新的申请(注意:这个时候实际运行的并行度会比申请的并行度要低);反之,则会返回一个错误,表示没有足够的进程。设置为0,表示没有并行进程可用就串行;设置为100,表示必须有足够的并行进程才运行,否则就直接返回错误。
parallel_adaptive_multi_user
设置为TRUE,表示当系统负载很高的时候可以自动调整并减小并行度来适应系统负载;FA
parallel_max_servers
最大并行进程数。当需要的并行进程超过parallel_min_servers时,会自动生成新的并行进程来响应请求,但是总的并行进程数受parallel_max_servers限制
parallel_min_percent
最少进程的百分比。当新的申请超过parallel_max_servers的限制的时候,那么如果池中剩余的进程>申请的进程*parallel_min_percent,则会把池中所有剩余的进程全部分配给新的申请(注意:这个时候实际运行的并行度会比申请的并行度要低);反之,则会返回一个错误,表示没有足够的进程。设置为0,表示没有并行进程可用就串行;设置为100,表示必须有足够的并行进程才运行,否则就直接返回错误。
parallel_adaptive_multi_user
设置为TRUE,表示当系统负载很高的时候可以自动调整并减小并行度来适应系统负载;FA
LSE表示无论系统负责如何,都完全按照要求的并行度运行
parallel_threads_per_cpu
当parallel_adaptive_multi_user设置为TRUE时,系统根据parallel_threads_per_cpu来调整自适应的并行度(存疑)
parallel_automatic_tuning
设置为FALSE时,并行进程间需要交换的信息是缓存在SHARED_POOL中的;设置为TRUE时,信息缓存在LARGE_POOL中
parallel_execution_message_size
进程间信息交换的大小,当信息存在SHARED_POOL,也就是parallel_automatic_tuning为FALSE时,默认为2K;反之则默认为4K。提高这个值可以提高进程间信息交换的速度,但是
会占用更多的内存空间,适当的地方可以设置为8K。可根据v$px_process_sysstat视图中的Buffers HWM进行调整
parallel_threads_per_cpu
当parallel_adaptive_multi_user设置为TRUE时,系统根据parallel_threads_per_cpu来调整自适应的并行度(存疑)
parallel_automatic_tuning
设置为FALSE时,并行进程间需要交换的信息是缓存在SHARED_POOL中的;设置为TRUE时,信息缓存在LARGE_POOL中
parallel_execution_message_size
进程间信息交换的大小,当信息存在SHARED_POOL,也就是parallel_automatic_tuning为FALSE时,默认为2K;反之则默认为4K。提高这个值可以提高进程间信息交换的速度,但是
会占用更多的内存空间,适当的地方可以设置为8K。可根据v$px_process_sysstat视图中的Buffers HWM进行调整
并行相关的视图在V$PX_....中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论