Oracle11.2实例重启

背景介绍:

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

企业微信截图_17675135801416

 解决方案:

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(若能登录)。

 

posted @ 2026-01-04 16:18  李文学  阅读(2)  评论(0)    收藏  举报