数据库报12516linux,ORA-12516故障解决

本文详细记录了解决Oracle数据库报错ORA-12516的过程。问题源于数据库会话数超过processes和sessions参数设定的值,通过关闭监听器、清理无效会话、调整参数值等步骤成功修复。故障复现及排查过程中发现可能与特定操作系统版本有关。
摘要由CSDN通过智能技术生成

早上刚上班,同事告诉我数据库连不上了,提示“ORA-12516”错误,我尝试通过PL/SQL Developer远程连接数据库,果然,报错了“ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄”;接着我通过远程桌面登录服务器,尝试用sys用户登录数据库,报了同样的错误。奇怪,昨天下班时还好好的。

我上网查了一下,这个报错一般是由于数据库的当前会话数不足造成的,相关的参数有两个:processes和sessions。我想查一下数据库这两个参数,但是sys用户无法登陆,真是着急。后来在朋友的建议下,采取以下步骤,顺利解决了这个问题。

a.关闭listener,禁止新的连接;

b.杀掉local=no的部分或者全部进程(根据业务的重要性),杀掉几个,保证sys用户能登陆;

c.登进去看看哪个业务出问题了,杀掉出问题的用户进程;

d.检查数据库;

e.启动listener;

介绍一下我的操作环境:

操作系统:Windows Server 2008 R2

数据库:Oracle 10g

首先,通过lsnrctl stop关闭监听器,禁止新的连接,以确保第二步能够执行成功;

第二,关闭了两个连接数据库的应用程序,然后尝试用sys用户登录数据库,登录成功;

第三,查看了processes和sessions两个初始化参数值,分别为150、170,均为默认值;

SQL>

SQL> show parameter processes

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes integer 0

db_writer_processes integer 3

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 150

SQL> show parameter sessions

NAME TYPE VALUE

------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值