Process m000 died, see its trace file
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,数据库是11g的物理DGstandby database报错Process m000 died, see its trace file。现在网上搜索的此错误,是资源耗尽不能连接,但是数据库仍然存活。这
千家信息网最后更新 2026年11月03日Process m000 died, see its trace file
数据库是11g的物理DG
standby database报错Process m000 died, see its trace file。
现在网上搜索的此错误,是资源耗尽不能连接,但是数据库仍然存活。
这种情况通过调整资源数解决,如processes达到上限
查看资源使用情况
select * from v$resource_limit;RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE------------------------------ ------------------- --------------- -------------------- --------------------processes 50 54 150 150sessions 64 68 252 252enqueue_locks 35 39 3310 3310enqueue_resources 17 17 1328 UNLIMITEDges_procs 0 0 0 0ges_ress 0 0 0 UNLIMITEDges_locks 0 0 0 UNLIMITEDges_cache_ress 0 0 0 UNLIMITEDges_reg_msgs 0 0 0 UNLIMITEDges_big_msgs 0 0 0 UNLIMITEDges_rsv_msgs 0 0 0 0gcs_resources 0 0 0 0gcs_shadows 0 0 0 0dml_locks 0 0 1108 UNLIMITEDtemporary_table_locks 0 0 UNLIMITED UNLIMITEDtransactions 5 5 277 UNLIMITEDbranches 0 0 277 UNLIMITEDcmtcallbk 2 3 277 UNLIMITEDmax_rollback_segments 11 11 277 65535sort_segment_locks 0 1 UNLIMITED UNLIMITEDk2q_locks 0 0 504 UNLIMITEDmax_shared_servers 1 1 UNLIMITED UNLIMITEDparallel_max_servers 0 0 135 3600
增加processes
alter system set processes=200 scope=spfile;
然后重启数据库解决。
但是我的问题通过上述方法无法解决。
再次观察出问题实例,发现以下:
通过sqlplus登陆,进去是idle进程,只能杀死os进程来重启。
重启后又会自动关闭。
查看alert日志无信息
使用strace 命令跟踪smon进程显示
[oracle@rac2 ~]$ strace -p 7351Process 7351 attachedgetrusage(RUSAGE_SELF, {ru_utime={0, 21996}, ru_stime={0, 14997}, ...}) = 0getrusage(RUSAGE_SELF, {ru_utime={0, 21996}, ru_stime={0, 14997}, ...}) = 0semtimedop(15794179, {{18, -1, 0}}, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)semtimedop(15794179, {{18, -1, 0}}, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)semtimedop(15794179, {{18, -1, 0}}, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)semtimedop(15794179, {{18, -1, 0}}, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)可以看出资源已经不可用,怀疑是内存的问题。
这里说明一下,该服务器是用作测试的,上面跑了若干个实例,单节点10g,11g,12c,11g standby,11g rac等5个实例。
使用ipcs -m查看
ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x1644d05c 28082176 oracle 600 945815552 28 0xb4a8f6f0 28147713 oracle 660 4096 0 0xb3928380 28475394 oracle 640 14680064 82 0x00000000 28508163 oracle 640 868220928 82 0xb2f44a00 41123844 oracle 660 4096 0 0x27bbfbde 3309577 oracle 755 1079228 1 0x00000000 22708244 oracle 640 33554432 49 0x00000000 22741013 oracle 640 2449473536 49 0x0fc14ec0 22773782 oracle 640 2097152 49
可以看到上面的信号量有6个,排除0x00000000(这个信号量是派生出来的)
但是实例一共是5个,怀疑standby的内存段异常关闭,并且系统没有清理掉
并且上面有一个权限是755的oracle段,一般都是640的,怀疑是这个导致,并且
查看每个内存段是属于oracle哪个实例,可以通过oracle命令sysresv
[oracle@rac2 ~]$ sysresvIPC Resources for ORACLE_SID "orcl" :Shared Memory:ID KEY41385984 0xb2f44a00Semaphores:ID KEY16220162 0xb38b1d5cOracle Instance alive for sid "orcl"
同版本多实例可以指定实例
sysresv -l sid
删除共享内存段
[oracle@rac2 trace]$ ipcrm --hlepusage: ipcrm [ [-q msqid] [-m shmid] [-s semid] [-Q msgkey] [-M shmkey] [-S semkey] ... ]
或者sysresv -f sid删除
删除后重启stanby,一切正常。
实例
内存
资源
数据
数据库
进程
问题
信号
命令
情况
信号量
上限
信息
再次
可以通过
方法
日志
服务器
权限
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网的科技
互联网通讯科技
互联网为科技
朗新科技与工业互联网
关于新基建和互联网科技
深圳互联网络科技有限公司
礼当家互联网科技
唐信互联网科技 大连
互联网科技中介
字节跳动和互联网科技
群盈汇互联网科技有限公司
每天都有哪些好的互联网科技
江苏互联网科技小贷
郑州欣桑互联网科技有限公司
互联网科技机房
恒生科技指数 中概互联网
亚光科技低轨卫星互联网
青岛互联网科技园
互联网高科技绘画
高科技和互联网的现代国家
广东猪兼强互联网科技有限公司
互联网为科技
互联网 科技创新
互联网科技视频
互联网科技股有哪些
厦门千工互联网科技有限公司
宜昌元轩互联网科技有限公司
华中科技大学互联网的牛人
中国互联网有什么科技
雨阳互联网卡科技有限公司