暂无图片
分享
LEE
2019-08-09
X$KGLPN 等内部表如何访问?

library cache pin/lock 相关等待 网上排查过程 中有对x$kglpn ,x$kglob访问 


SELECT addr, kglhdadr, kglhdpar, kglnaown, kglnaobj, kglnahsh, kglhdobj

  FROM x$kglob
 WHERE kglhdadr IN (SELECT p1raw
                      FROM v$session_wait
                     WHERE event LIKE 'library%')
/

ADDR     KGLHDADR KGLHDPAR KGLNAOWN   KGLNAOBJ               KGLNAHSH KGLHDOBJ
-------- -------- -------- ---------- -------------------- ---------- --------
404F2178 52D6730C 52D6730C SYS        PINING               2300250318 52D65BA4


但本地模拟过程中无法对 x$ 等内部表查找 ,请问怎么才能查看x$内部表?


收藏
分享
8条回答
默认
最新
LEE

QQ图片20190809161345.png

暂无图片 评论
暂无图片 有用 0
打赏 0
始于脚下

好像只能用sys用户去查,具有dba权限的用户也查不了,你可以测试一下。

暂无图片 评论
暂无图片 有用 0
打赏 0
LEE

QQ图片20190809174013.png

暂无图片 评论
暂无图片 有用 0
打赏 0
LEE

查不出结果

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文

你这是用了其他工具连的数据库吗?正常sqlplus desc只有Name   Null?    Type。

暂无图片 评论
暂无图片 有用 0
打赏 0
Albert

需要申请句柄时候才会显示这个内存结构,这个过程很快,相对比较闲的系统是抓不到的,模拟个SQL,造成Library cache pin或者lock等待后就可以了

-------------------SESSION 1-----------------------

SQL> select sid from v$mystat where rownum =1;


       SID

----------

       628


SQL> create or replace procedure albert is 

  2  begin

  3     for i in 1..10000 loop

  4     insert into t values('ALBERT',i);

  5     commit;

  6  end loop;

  7     dbms_lock.sleep(10000);

  8  end;

  9  / 


Procedure created.


-------------------SESSION  2------------------------

SQL> select sid from v$mystat where rownum =1;


       SID

----------

      3132


SQL> 


begin

albert;

end;

/



-------------------SESSION  3--------------------------

SQL> select sid from v$mystat where rownum =1;


       SID

----------

      2507



SQL> alter table t rename to t1;


Table altered.


SQL> alter table t1 rename to t;


Table altered.

 


SQL> alter procedure albert compile;


-------------------SESSION  4--------------------------

SQL> select sid from v$mystat where rownum =1;


       SID

----------

      3757


alter procedure albert compile;




验证结果,出现library cache lock 等待

select event,p1raw,count(*) from v$session where wait_class !='Idle' and event like '%lock%' group by event,p1raw;


EVENT                                                            P1RAW              COUNT(*)

---------------------------------------------------------------- ---------------- ----------

library cache lock                                               000000016C3C5220          1



SQL> select KGLLKHDL,KGLLKSNM,KGLLKCNT,KGLLKMOD,KGLLKREQ from x$kgllk where KGLNAOBJ='ALBERT';


KGLLKHDL           KGLLKSNM   KGLLKCNT   KGLLKMOD   KGLLKREQ

---------------- ---------- ---------- ---------- ----------

000000016C3C5220       3757          0          0          3

000000016C3C5220       3132          1          1          0

000000016C3C5220       2507          1          3          0


暂无图片 评论
暂无图片 有用 0
打赏 0
LEE

感谢各位专家指导

暂无图片 评论
暂无图片 有用 0
打赏 0
LEE
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
主库修改redo log会自动同步到DG备库吗?
回答 1
在MySQL的主从复制(MasterSlaveReplication)中,主库修改的redolog并不会自动同步到备库(也称为从库)。主库的redolog是用于持久化事务的日志记录,而备库通过读取主库
Oracle中在system下建立job,怎么指定到别的用户建立job运行?
回答 1
已采纳
登录该用户创建
现在有台Oracle server 应用那边反应连接数据库很慢,但是数据库没有什么慢查询,还可以从哪些方面去troubleshooting性能问题?
回答 2
看一下/etc/resolv.conf配置文件,是否配置了nameserver,如果不通外网但是配置了nameserver那么就会有连接缓慢的问题,直接注释掉就好了
Oracle:建表的时候没有重复语句 ,为什么查表有重复记录 ,用distinct只会在查询结果中去重没有删除表重复记录 ?
回答 4
已采纳
因为最开始没有设置约束条件。查询只是查询。不会删除。建议删除重复数据后加上主键或者唯一约束。或者清空数据后加上主键或者唯一约束。以后就不会有了。
新添加的节点启动报错了,有大佬遇到过这个问题吗?
回答 1
检查下新加节点的参数与其他两个节点的参数是否一致,比如:UNDOMANAGEMENTgcundoaffinitygcpolicytime参考:《OracleDatabaseinstanceFailst
有没有办法把oracle库的表转换成mysql的?
回答 1
已采纳
我说两种方法:一是通过navicat等三方软件,直接做表传输,直接就给你转了;二是查看oracle的建表语句,然后改写为mysql的,然后数据通过导出为csv文件,然后在mysql中导入即可。大数据量
数据量1T ,数据保存半年,该如何设置正确的备份策略?
回答 1
备份最主要的问题是保障生产出现问题后可以恢复出来,更何况现在ADG等容灾可以立马切换,备份只最为最后的一道保障,所以不能理解保留半年备份的意义,恢复时间很长的,况且追这么久的增量备份意义不大。提供一种
oracle10.2.0.4有没有cpu数量限制?
回答 1
没有。
rac19c,老板让升级到23,怎么搞?
回答 2
已采纳
https://docs.oracle.com/en/database/oracle/oracledatabase/23/upgrd/index.htmlOracle%C2%AEDatabase
什么是Oracle的多版本控制?
回答 9
已采纳
Oracle对并发的支持不只是高效的锁定,它还实现了一种多版本控制(multiversioning)体系结构,这种体系结构提供了一种受控但高度并发的数据访问。多版本控制是指Oracle能同时物化多个版