Oracle11.2实例重启
背景介绍:
Linux 环境下 Oracle 进程操作的终端输出,核心问题是尝试终止 PMON 进程时失败(提示 “没有那个进程”),原因是进程 ID 识别错误,截图如下:

解决方案:
1. 终止进程
# 过滤掉grep自身进程,仅显示Oracle的PMON进程 ps -ef | grep ora_pmon_$ORACLE_SID | grep -v grep # 示例输出(仅显示一行):oracle 28122 1 0 03:16 ? 00:00:00 ora_pmon_orcl # 其中“28122”是真正的PMON进程PID
# 终止Oracle实例的核心进程(需root权限,或oracle用户) kill -9 28122
2:验证进程
# 再次检查PMON进程是否存在 ps -ef | grep ora_pmon_$ORACLE_SID | grep -v grep # 无输出则表示进程已终止
3.重启数据库
# 1. 切换到oracle用户 su - oracle # 2. 登录SQL*Plus并启动数据库 sqlplus / as sysdba SQL> startup; # 启动数据库 SQL> select status from v$instance; # 验证状态为OPEN # 3. 重启监听器 lsnrctl stop lsnrctl start
# 查看进程数情况
select resource_name,current_utilization as "当前进程数",limit_value as "最大进程数",round(current_utilization/limit_value*100,2) as "使用率(%)"
from v $resource_limit where resource_name = 'PROCESSES';
4.注意事项
进程过滤:执行ps命令时需添加grep -v grep,避免将grep自身进程误判为目标进程。
权限问题:若kill -9提示 “权限不足”,需切换到root用户执行。
数据安全:强制终止进程可能导致临时数据损坏,重启后 Oracle 会自动执行恢复,生产环境建议优先使用shutdown immediate(若能登录)。

浙公网安备 33010602011771号