Library cache pin问题的处理过程

本文介绍了解决ORA-600(17069)错误的过程,包括确定故障原因、分析Job调用的存储过程状态、查找存储过程依赖对象及详细会话信息等步骤,并最终通过杀死进程、重新编译过程和恢复Job来解决问题。
本文是《DBA手记1》的读书笔记,相关文章:ORA-600(17069)错误的解决过程

1. 故障的确定:
ORA-00600 Error的通用处理  

2. 故障的分析
1)根据已经确认的问题是library cache pin,加上若能在trace文件中找出SID,可用以下语句确认

点击(此处)折叠或打开

  1. SELECT EVENT,P1TEXT,P1RAW,P2TEXT,P2RAW,STATE
  2. FROM V$SESSION_WAIT WHERE SID=75;

查询结果的EVENT就是library cache pin

2)确认Job调用的存储过程状态

点击(此处)折叠或打开

  1. SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS
  2. FROM DBA_OBJECTS
  3. WHERE OWNER = :1
  4. AND OBJECT_NAME = :2;
此时该存储过程的STATUS为INVALID

可先关闭该Job

点击(此处)折叠或打开

  1. EXEC DBMS_JOB.BROKEN(63,TRUE);
  2. COMMIT;

  3. #杀掉Job进程
  4. SELECT SPID FROM V$PROCESS WHERE ADDR IN (
  5. SELECT PADDR FROM V$SESSION WHERE SID = 75);

  6. HOST kill -9 <进程ID>;
3)找出存储过程依赖对象

点击(此处)折叠或打开

  1. SELECT * FROM V$ACESS
  2. WHERE (OWNER, OBJECT) IN
  3. (SELECT REFERENCED_OWNER, REFERENCED_NAME FROM DBA_DEPENDENCIES
  4. WHERE OWNER = :1 AND NAME = :2);
4)根据找出的SID,查找详细的会话信息

点击(此处)折叠或打开

  1. SELECT SID, SERIAL#, USERNAME, PROGRAM, TERMINAL
  2. FROM V$SESSION WHERE SID = :1;
5)找出该会话执行的SQL语句

点击(此处)折叠或打开

  1. SELECT SQL_TEXT FROM V$SQL
  2. WHERE ADDRESS IN (SELECT SQL_ADDRESS FROM V$SESSION WHERE SID = :1);
6)找出该语句的等待时间

点击(此处)折叠或打开

  1. SELECT EVENT, P1TEXT, P1, P2TEXT, P2, P3TEXT, P3, SECONDS_IN_WAIT
  2. FROM V$SESSION_WAIT WHERE SID = :1;

3. 故障解决

1)杀死以上查到的进程

点击(此处)折叠或打开

  1. #杀掉Job进程
  2. SELECT SPID FROM V$PROCESS WHERE ADDR IN (
  3. SELECT PADDR FROM V$SESSION WHERE SID = :1);

  4. HOST kill -9 <进程ID>;
2)重新编译过程

点击(此处)折叠或打开

  1. ALTER PROCEDURE <> COMPILE

3) 重新恢复Job

点击(此处)折叠或打开

  1. EXEC DBMS_JOB.BROKEN(63, FALSE);
  2. COMMIT;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-2109979/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22621861/viewspace-2109979/

内容概要:本文介绍了一种基于蒙特卡洛模拟和拉格朗日优化方法的电动汽车充电站有序充电调度策略,重点针对分时电价机制下的分散式优化问题。通过Matlab代码实现,构建了考虑用户充电需求、电网负荷平衡及电价波动的数学模【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)型,采用拉格朗日乘子法处理约束条件,结合蒙特卡洛方法模拟大量电动汽车的随机充电行为,实现对充电功率和时间的优化分配,旨在降低用户充电成本、平抑电网峰谷差并提升充电站运营效率。该方法体现了智能优化算法在电力系统调度中的实际应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源汽车、智能电网相关领域的工程技术人员。; 使用场景及目标:①研究电动汽车有序充电调度策略的设计与仿真;②学习蒙特卡洛模拟与拉格朗日优化在能源系统中的联合应用;③掌握基于分时电价的需求响应优化建模方法;④为微电网、充电站运营管理提供技术支持和决策参考。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注目标函数构建、约束条件处理及优化求解过程,可尝试调整参数设置以观察不同场景下的调度效果,进一步拓展至多目标优化或多类型负荷协调调度的研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值