当前位置: 首页 > news >正文

Oracle故障分析:启用与禁用表的约束是否会导致存储过程无效

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

Oracle故障分析:启用与禁用表的约束是否会导致存储过程无效

  客户一套系统因为library cache pin/library cache lock导致整个系统hang住了,全部业务中断,通过分析过,是由于人为导致编译了一个子的存储过程,导致父存储过程在执行时发现无效,自动进行编译,然而存储过程切一直在执行,最后导致了整个业务系统的hang住,这个存储过程是一个接口,所有的应用都要调用,业务通过分析日志,切没有找到任何的alter procedure的语句,只发现了alter table *** disable/enable constraint语句,所以怀疑我们的分析结果,下面是一个测试结果,让业务方知道约束的启用与禁用是不会导致过程失效的。

测试环境:DB:RHEL 4.8 OS:10.2.0.4.12

1,创建测试环境:

www.htz.pw >grant dba to scott;Grant succeeded.www.htz.pw >create table scott.test2(id number,id2 varchar2(20));Table created.www.htz.pw >alter table scott.test2 add constraint pk_test2_id primary key(id);Table altered.www.htz.pw >create table scott.test3(id number,id2 varchar2(20));Table created.www.htz.pw >alter table scott.test3 add constraint for_test3_id foreign key(id) references scott.test2(id);Table altered.www.htz.pw >conn scott/oracle
Connected.
www.htz.pw >create or replace procedure test_proc2  is 3  begin 4  execute immediate 'select count(*) from scott.test2';5  execute immediate 'select count(*) from scott.test3';6  end;7  /Procedure created.create or replace procedure test_proc2 is
beginscott.test_proc;
end;
/

2,禁用约束

www.htz.pw >alter table scott.test3 disable constraint for_test3_id;Table altered.
www.htz.pw >alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.www.htz.pw >select owner,object_name,object_type,last_ddl_time,status from dba_objects where object_name in ('TEST2','TEST3','TEST_PROC','TEST_PROC2') and owner='SCOTT';OWNER                          OBJECT_NAME                    OBJECT_TYPE         LAST_DDL_TIME       STATUS
------------------------------ ------------------------------ ------------------- ------------------- -------
SCOTT                          TEST2                          TABLE               2013-06-21 09:52:55 VALID
SCOTT                          TEST3                          TABLE               2013-06-21 10:09:09 VALID
SCOTT                          TEST_PROC                      PROCEDURE           2013-06-21 09:53:30 VALID
SCOTT                          TEST_PROC2                     PROCEDURE           2013-06-21 10:07:52 VALID
这里发现过程是有效的
再禁用另一个约束www.htz.pw >alter table scott.test2 disable constraint pk_test2_id;Table altered.www.htz.pw >select owner,object_name,object_type,last_ddl_time,status from dba_objects where object_name in ('TEST2','TEST3','TEST_PROC','TEST_PROC2') and owner='SCOTT';OWNER                          OBJECT_NAME                    OBJECT_TYPE         LAST_DDL_TIME       STATUS
------------------------------ ------------------------------ ------------------- ------------------- -------
SCOTT                          TEST2                          TABLE               2013-06-21 10:10:08 VALID
SCOTT                          TEST3                          TABLE               2013-06-21 10:09:09 VALID
SCOTT                          TEST_PROC                      PROCEDURE           2013-06-21 09:53:30 VALID
SCOTT                          TEST_PROC2                     PROCEDURE           2013-06-21 10:07:52 VALID
两个过程都是有效的

3,启用约束

www.htz.pw >alter table scott.test2 enable constraint pk_test2_id;Table altered.www.htz.pw >alter table scott.test3 enable constraint for_test3_id;Table altered.www.htz.pw >select owner,object_name,object_type,last_ddl_time,status from dba_objects where object_name in ('TEST2','TEST3','TEST_PROC','TEST_PROC2') and owner='SCOTT';OWNER                          OBJECT_NAME                    OBJECT_TYPE         LAST_DDL_TIME       STATUS
------------------------------ ------------------------------ ------------------- ------------------- -------
SCOTT                          TEST2                          TABLE               2013-06-21 10:10:46 VALID
SCOTT                          TEST3                          TABLE               2013-06-21 10:11:11 VALID
SCOTT                          TEST_PROC                      PROCEDURE           2013-06-21 09:53:30 VALID
SCOTT                          TEST_PROC2                     PROCEDURE           2013-06-21 10:07:52 VALID

通过上面的测试可以发现,禁用约束并不会影响过程的有效性与last_ddl_time的值。

------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.gsyq.cn/news/26236.html

相关文章:

  • 一文读懂字符、字形、字体
  • Moe-ctf Misc
  • 智联笔记项目——251021为分享功能添加有效期
  • WPF 具有跨线程作用的UI元素
  • 深入解析:手撕哈希全家桶!unordered_map/set 底层 + 位图布隆过滤器----《Hello C++ Wrold!》(24)--(C/C++)
  • Flink 方案配置从 0 到可部署
  • Redis为什么快 - 实践
  • 操作系统应用开发(二十一)RustDesk 域名访问故障—东方仙盟筑基期 - 详解
  • prufer板子
  • Promise多个then、catch、finally的执行结果分析与总结
  • vSAN物理磁盘故障处理
  • 2025年10月医用面膜产品推荐:权威对比评测榜助术后修护精准决策
  • 2025年10月电动叉车销售公司推荐:五强对比评测榜
  • 类方法和实例方法区别 flutter
  • 今天给电脑安装了新华财经
  • [Linux]学习笔记系列 -- lib/xarray.c eXtensible Array (XArray) 可扩展数组 - 教程
  • 2025 年桥梁护栏厂家最新推荐排行榜:聚焦安全防护与耐用性能的实力企业甄选指南
  • 2025年10月美白精华产品排行:从成分到肤感全维度评测
  • Koodo Reader快捷键大全:提升阅读效率的键盘执行技巧
  • 2025年10月美白精华产品推荐榜:十款热门单品深度对比
  • 基于 RoBERTa + 多策略优化的中文商品名细粒度分类 - 实践
  • 2025年10月不锈钢水箱厂家评价榜:实力参数横向对比
  • 2025年10月长白山度假酒店推荐:民俗与国际范双榜对比
  • 2025年10月不锈钢水箱厂家榜单:十家参数对比与选购要点
  • 深入解析:开源项目net-radio-archive常见问题解决方案
  • 2025 年干燥机厂家最新推荐排行榜:聚焦实验室 / 工业用优质设备,精选实力企业权威呈现
  • 2025年10月注册公司服务评测榜:五家机构对比与排名全解析
  • 2025年10月代理记账公司推荐:五强对比评测榜助创业者精准选合规伙伴
  • redis-分级管理及容灾冷处理
  • Redis常用命令指南