ORA-00445: background process W003 did not start after 120 seconds
一个11g的数据库出现报错,根据字面判断可能是某个slave进程启动失败。这种ORA-00455错误通常表示在操作系统层面为了响应某种请求而去生成一个新的进程时因为某种原因导致失败,最有可能的原因一般是由于操作系统资源不足或者配置错误,所以这个错误的解决途径通常是从操作系统层面入手,但是也有部分情况是与oracle有关的。
这里显示的120s超时可以通过设置event事件来进行动态修改
1 |
|
检查相关日志
1 |
|
通过这里可以看到是由于内存不足的情况导致创建子进程W003失败,于是经过了120s超时的上限以后,调度过程将子任务终止并报错。
这里的主进程是SMCO,引用官方说明
SMCO协调以下空间管理任务。 它执行主动的空间分配和空间回收。 它动态产生从属进程(Wnnn)来执行任务。
-
表空间级空间(扩展)的预分配
这里的预分配是指数据文件扩展,当通常通过插入/加载到段的空间请求(扩展分配)操作在表空间中找不到连续空间时发生数据文件扩展,会话将通过下一个extent来扩展数据文件,并将继续进行空间请求或范围分配。
为了使SMCO自动扩展数据文件,应将数据文件的AUTOEXTEND设置为ON。 SMCO决定根据历史记录扩展表空间,扩展在表空间中的所有数据文件中平均分配,这些数据文件尚未达到其最大大小,并且在一小时的SMCO唤醒中仍限制为整个表空间大小的10%。
(完整的表空间大小=任何给定时间实例的数据文件大小总和。)
除了上述任务外,SMCO流程还负责执行以下任务
- 添加extent后,为本地管理的表空间更新SEG$中的块和extent计数(来自未发布的Bug 12940620)
- 加密lob段预扩展
- 加密lob段内存分配器空间的预分配.
- 加密lob段空间回收
- 临时段空间回收
这种好处是会话无需等待被动的空间分配,因为这是主动完成的,所以可以提高性能
启用和关闭SMCO,不是核心进程,可以通过这种方式进行重启
1 |
|
其他value
1 |
|
ORA-00445: background process W003 did not start after 120 seconds
https://www.xbdba.com/2020/07/02/ora-00445-Background-Process-w003-Did-Not-Start-After-120-Seconds/