Oracle 实例无法启动排查与解决笔记

当然可以,以下是关于 Oracle 实例无法启动 的排查与处理笔记说明,适合日常故障排查使用:


🧾 Oracle 实例无法启动排查与解决笔记

🔍 一、常见报错现象

启动 Oracle 实例时报错:

  • oracle Instance not alive for SID "<sid>"
  • ORA-27101: shared memory realm does not exist
  • ORA-27102: out of memory
  • ORA-04031: unable to allocate [shared memory]
  • No shared memory segments used
  • No semaphore resources used

这些错误多与 共享内存/信号量配置不足系统资源不足 有关。

在这里插入图片描述


🧪 二、快速排查步骤

1. 查看实例状态是否存在:

ps -ef | grep pmon

无输出说明实例未启动。

2. 尝试手动启动 Oracle:

export ORACLE_SID=testoracle
sqlplus / as sysdba

SQL> startup

3. 查看 alert.log 日志位置:

tail -100 $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log

📋 三、系统内核参数检查

1. 查看共享内存设置

cat /proc/sys/kernel/shmmax
cat /proc/sys/kernel/shmall

建议值(根据内存适当调整):

kernel.shmmax = 8589934592  # 8GB
kernel.shmall = 2097152     # 页数(页大小通常为4KB)

2. 查看信号量设置

sysctl -a | grep sem

建议值:

kernel.sem = 250 32000 100 128

3. 临时修改(立即生效):

sysctl -w kernel.shmmax=8589934592
sysctl -w kernel.shmall=2097152
sysctl -w kernel.sem="250 32000 100 128"

4. 永久修改 /etc/sysctl.conf

kernel.shmmax=8589934592
kernel.shmall=2097152
kernel.sem=250 32000 100 128

然后执行:

sysctl -p

🛠️ 四、检查系统资源

1. 检查物理内存情况:

free -m

2. 检查 OOM 杀手记录:

dmesg | grep -i oom

🧰 五、重建 IPC 资源(可选操作)

如果 Oracle 启动失败卡在 IPC 清理上,可尝试清除并重启:

ipcs -m | grep oracle | awk '{print $2}' | xargs -n 1 ipcrm -m
ipcs -s | grep oracle | awk '{print $2}' | xargs -n 1 ipcrm -s

确保实例未运行后执行。


✅ 六、启动成功后验证

ps -ef | grep pmon

进入 SQL*Plus:

sqlplus / as sysdba
SQL> select instance_name, status from v$instance;

应显示:

INSTANCE_NAME  STATUS
-------------- ------------
testoracle     OPEN

📌 总结

问题类型解决方向
内存/共享内存不足修改 shmmax/shmall
信号量不足修改 sem 内核参数
启动卡死/死锁清理 IPC 资源
系统内存不足增加内存或降低 SGA 参数
启动失败无日志查看 alert.log 日志并确认路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值