包对象之Oracle如何编译失效包体
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,主题:如何Oracle编译失效的包体作者:基毛飞上天情况说明:在吗?可以帮忙重新编译一个包吗?我们这边编译不了!处理思维:(1)包头失效还是包体失效?(2)是否存在阻碍的进程影响重新编译?(3)如果存
千家信息网最后更新 2025年01月21日包对象之Oracle如何编译失效包体BEGIN pkg_test.ap_get_baTran(200,20180515); END;
7. 杀会话
经与应用人员沟通,可以尽情地杀会话,以及PROCESS(这个需要本地杀)
8. 再次查看是否有独占编译包体的锁
检查出1719 ZJDB PKG_TEST Body Exclusive None,还是存在独占DDL锁的进程。按照以上的方式,杀1719的会话,是不对的!因为这个会话就是SYS用户正在执行重新编译的语句。不可能杀掉重新编译的语句嘛,所以看下还能从什么方面下手!
9. 找出ZJDB.PKG_TEST对应ddl锁的相关信息
找出ZJDB.PKG_TEST对应的DDL锁的SID与会话SID符合的会话,机器名字和用户名字以及状态
--以sid=10155为例子,杀系统的process,这个杀process的操作,一般是在他们的主机杀process!
http://www.itpub.net/forum.php?mod=viewthread&tid=1761963
https://blog.csdn.net/u011146687/article/details/72808565
主题:如何Oracle编译失效的包体
作者:基毛飞上天
情况说明:在吗?可以帮忙重新编译一个包吗?我们这边编译不了!
处理思维:
(1)包头失效还是包体失效?
(2)是否存在阻碍的进程影响重新编译?
(3)如果存在阻碍,与应用人员沟通,是否可以尝试杀Process以及会话
1. 查看包头和包体是否失效?
从以下SQL语句输出得知,包头没有失效,包体失效了
点击(此处)折叠或打开
- SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(to_char('7b4dpss4k3hc5'),NULL));
- PLAN_TABLE_OUTPUT
- --------------------------------------------------
- SQL_ID 7b4dpss4k3hc5, child number 0
- BEGIN pkg_test.ap_get_baTran(200,20180515); END;
- NOTE: cannot fetch plan for SQL_ID: 7b4dpss4k3hc5, CHILD_NUMBER: 0
- Please verify value of SQL_ID and CHILD_NUMBER;
- It could also be that the plan is no longer in cursor cache (check v$sql_plan)
点击(此处)折叠或打开
- alter system kill session '12481,8711';
检查出1719 ZJDB PKG_TEST Body Exclusive None,还是存在独占DDL锁的进程。按照以上的方式,杀1719的会话,是不对的!因为这个会话就是SYS用户正在执行重新编译的语句。不可能杀掉重新编译的语句嘛,所以看下还能从什么方面下手!
点击(此处)折叠或打开
- SQL> select * from dba_ddl_locks where name='PKG_REPORT';
- SESSION_ID OWNER NAME TYPE MODE_HELD MODE_REQU
- ---------- --------------- ---------------- ------------------------- --------- ---------
- 9710 ZJDB PKG_TEST Table/Procedure/Type Null None
- 948 ZJDB PKG_TEST Table/Procedure/Type Null None
- 10155 ZJDB PKG_TEST Table/Procedure/Type Null None
- 6814 ZJDB PKG_TEST Table/Procedure/Type Null None
- 2851 ZJDB PKG_TEST Table/Procedure/Type Null None
- 21183 ZJDB PKG_TEST Table/Procedure/Type Null None
- 14698 ZJDB PKG_TEST Table/Procedure/Type Null None
- 16963 ZJDB PKG_TEST Table/Procedure/Type Null None
- 23503 ZJDB PKG_TEST Table/Procedure/Type Null None
- 2650 ZJDB PKG_TEST Table/Procedure/Type Null None
- 20671 ZJDB PKG_TEST Table/Procedure/Type Null None
- 1719 ZJDB PKG_TEST Body Exclusive None
- 9710 ZJDB PKG_TEST Body Null None
- 20671 ZJDB PKG_TEST Body Null None
- 6814 ZJDB PKG_TEST Body Null None
- 16963 ZJDB PKG_TEST Body Null None
- 21183 ZJDB PKG_TEST Body Null None
- 948 ZJDB PKG_TEST Body Null None
- 2851 ZJDB PKG_TEST Body Null None
- 10155 ZJDB PKG_TEST Body Null None
- 23503 ZJDB PKG_TEST Body Null None
- 2650 ZJDB PKG_TEST Body Null None
- 14698 ZJDB PKG_TEST Body Null None
- 23 rows selected.
9. 找出ZJDB.PKG_TEST对应ddl锁的相关信息
找出ZJDB.PKG_TEST对应的DDL锁的SID与会话SID符合的会话,机器名字和用户名字以及状态
点击(此处)折叠或打开
- SQL> select b.saddr, b.sid, b.serial#,b.process,b.status,b.username, b.MACHINE from v$session b where b.sid in
- ( Select b.sid From dba_ddl_locks a, v$session b Where a.session_id = b.SID and a.name = 'PKG_TEST' and owner='ZJDB')
- order by b.username desc;
- SADDR SID SERIAL# PROCESS STATUS USERNAME MACHINE
- ---------------- ---------- ---------- ---------- -------- --------- ---------
- 070000A02BB0E7E0 1719 30765 37358470 ACTIVE SYS RACZJ-DB1
- 070000A010BFF958 10155 46885 33227250 ACTIVE ZJDB RACZJ-DB1
- 070000A00CB32110 9710 9641 27525876 ACTIVE ZJDB RACZJ-DB1
- 070000A023BC4438 2032 9479 31195338 ACTIVE ZJDB RACZJ-DB1
- 070000A0061E8210 23503 30787 55313168 ACTIVE ZJDB RACZJ-DB1
- 070000A0279C9920 948 44781 13631706 ACTIVE ZJDB RACZJ-DB1
- 070000A02B9B4FC0 893 27923 54263886 ACTIVE ZJDB RACZJ-DB1
- 070000A02BCA68C8 2650 48113 29033334 ACTIVE ZJDB RACZJ-DB1
- 070000A00DE3DE58 21183 59867 43516348 ACTIVE ZJDB RACZJ-DB1
- 070000A015A40440 18410 50345 3998656 ACTIVE ZJDB RACZJ-DB1
- 070000A009727FB0 16963 33555 66847560 ACTIVE ZJDB RACZJ-DB1
- 070000A023D20C00 2851 17117 10224286 ACTIVE ZJDB RACZJ-DB1
- 070000A02FB62590 1776 28699 46334786 ACTIVE ZJDB RACZJ-DB1
- 070000A015E08488 20671 38781 53150014 ACTIVE ZJDB RACZJ-DB1
- 070000A011386AF0 14698 60901 37421588 ACTIVE ZJDB RACZJ-DB1
- 070000A005CC69A8 20416 37977 30147116 ACTIVE ZJDB RACZJ-DB1
- 070000A001EE7AC0 21745 60937 8192734 ACTIVE ZJDB RACZJ-DB1
- 17 rows selected.
--以sid=10155为例子,杀系统的process,这个杀process的操作,一般是在他们的主机杀process!
点击(此处)折叠或打开
- SQL> select sid, SERIAL#,process,status from v$session where sid=10155;
- SID SERIAL# PROCESS STATUS
- ---------- ---------- ------------------------ --------
- 10155 30765 37358425 ACTIVE
- $ ps -ef|grep 37358425
- $ kill -9 37358425 --操作系统层面杀会话
- $ ps -ef|grep 37358452
点击(此处)折叠或打开
- alter system kill session '10155,46885';
- alter system kill session '9710,9641';
- alter system kill session '2032,9479';
- alter system kill session '23503,30787';
- alter system kill session '948,44781';
- alter system kill session '893,27923';
- alter system kill session '2650,48113';
- alter system kill session '21183,59867';
- alter system kill session '18410,50345';
- alter system kill session '16963,33555';
- alter system kill session '2851,17117';
- alter system kill session '1776,28699';
- alter system kill session '20671,38781';
- alter system kill session '14698,60901';
- alter system kill session '20416,37977';
- alter system kill session '21745,60937';
点击(此处)折叠或打开
- SQL> alter package ZJDB.PKG_TEST compile body;
- Package body altered.
http://www.itpub.net/forum.php?mod=viewthread&tid=1761963
https://blog.csdn.net/u011146687/article/details/72808565
编译
层面
系统
语句
包头
操作系统
人员
名字
用户
还是
进程
应用
不对
成功
主机
主题
作者
例子
信息
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
王者荣耀主播都是什么服务器
利用web数据库查询成绩
数据库结构化方法
ping 不通服务器
无锡互联网智慧医院软件开发
学软件开发是学什么
虚拟专用服务器的作用
u8维护数据库
校园日网络安全答题
九江网络安全管理公司
英国历时最久的软件开发项目
软件开发中途离职走人
软件开发特殊过程
软件开发PM怎么样
甘肃鸿智达网络技术
西安建筑科技大学互联网 大赛
海陵区多功能网络技术解决方案
学前教育网络安全专业
不选数据库查询
污染服务器
网络技术和信息技术合并叫什么
重建 master 数据库
材料基因数据库与机器学习的区别
杭州铭轲网络技术有限公司
贵州独立服务器
移动公司做网络安全
看数据库的软件
网络安全模式联网错误711
ps5 暗黑2如何切换服务器
2012数据库软件