包对象之Oracle如何编译失效包体
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,主题:如何Oracle编译失效的包体作者:基毛飞上天情况说明:在吗?可以帮忙重新编译一个包吗?我们这边编译不了!处理思维:(1)包头失效还是包体失效?(2)是否存在阻碍的进程影响重新编译?(3)如果存
千家信息网最后更新 2024年11月24日包对象之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安全错误
数据库的锁怎样保障安全
有矿区的服务器推荐
学计算机网络技术以后
数据库名称后面的两个点
网络安全教育2020内容
网络安全 攻防竞赛
网络技术研究院 教师
数据库管理平台在哪
雅安软件开发大概费用
网络安全态势感知平台应支持
运城软件开发学院
数据库查询 升序
移动服务器的通话记录如何查
幼儿园网络安全故事演讲
路南区信息网络技术答疑解惑
恩施网络安全建设
六安网络安全师
网络安全过滤怎么关闭
网络安全观的五个特点
存入数据库乱码
专职计算机网络技术的就业前
快手直播地瓜网络技术
数据库的阶段划分原则
宝山区管理软件开发代理价格
软件开发企业会计明细科目
万网服务器邮件
数据库startup报错
刀塔怎么匹配中国服务器
传奇中的服务器
海南盈泰网络技术有限公司怎么样
太壹互联网科技