一.问题背景分析
首先简单说明Oracle数据库监听注册的机制:PMON进程负责周期性(单个周期最长不超过10分钟,根据数据库负载不同而有所差异)将数据库的相关信息(主要包含:数据库服务名、数据库的当前负载和最大负载、服务句柄的相关信息及负载)更新到监听程序,监听程序根据收到的相关信息进行业务的分发工作:
1).根据客户端的请求和服务句柄提供的服务信息确定请求的转发地址;
2).根据数据库的负载信息进行动态分配请求,确保多个实例间的LB;
3).根据数据库进程占用量(PROCESSES参数)确保是否继续允许用户接入( 超过限制将会把服务状态置为BLOCKED );
4).当PMON更新数据库负载再次低于限制值时将服务状态从BLOCKED置为READY.
5).监听会记录通过此服务句柄连入数据库的连接数量;
二.出现故障的可能性
2).数据库负载过重导致PMON延时注册到监听的负载不准确(间歇性连接异常);
3).PMON未正常工作,没有将负载信息更新到监听;
4).监听未正常工作,没有合理处理PMON注册的信息;
首先简单说明Oracle数据库监听注册的机制:PMON进程负责周期性(单个周期最长不超过10分钟,根据数据库负载不同而有所差异)将数据库的相关信息(主要包含:数据库服务名、数据库的当前负载和最大负载、服务句柄的相关信息及负载)更新到监听程序,监听程序根据收到的相关信息进行业务的分发工作:
1).根据客户端的请求和服务句柄提供的服务信息确定请求的转发地址;
2).根据数据库的负载信息进行动态分配请求,确保多个实例间的LB;
3).根据数据库进程占用量(PROCESSES参数)确保是否继续允许用户接入( 超过限制将会把服务状态置为BLOCKED );
4).当PMON更新数据库负载再次低于限制值时将服务状态从BLOCKED置为READY.
5).监听会记录通过此服务句柄连入数据库的连接数量;
二.出现故障的可能性
结合以上原理说明,可以看出一下情况可能会导致用户登陆时报错:TNS-12519(ORA-12519) 或 TNS-12516(ORA-12516).1).数据库PROCESSES参数设置不合理(设置太小);
2).数据库负载过重导致PMON延时注册到监听的负载不准确(间歇性连接异常);
3).PMON未正常工作,没有将负载信息更新到监听;
4).监听未正常工作,没有合理处理PMON注册的信息;