zoukankan      html  css  js  c++  java
  • [20190415]10g下那些latch是共享的.txt

    [20190415]10g下那些latch是共享的.txt

    http://andreynikolaev.wordpress.com/2010/11/23/shared-latches-by-oracle-version/

    --//oracle并没有文档准确说明那些latch是支持共享,作者的链接通过使用orderbug手工调用kslgetsl()函数(10g)或者kslgetsl_w()函
    --//数(11g),确定那些latch支持共享模式.我仅仅重复测试看看.

    1.环境:
    SYS@test> @ &r/ver1
    PORT_STRING                    VERSION        BANNER
    ------------------------------ -------------- ----------------------------------------------------------------
    x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

    2.建立测试脚本:
    --//drop table shared_latches purge;
    create table shared_latches(
      version varchar2(50),   /* Oracle version */
      latch# number,          /* latch# */
      name   varchar2(200),   /* ltach name */
      shared varchar2(1)      /* if 'Y' then latch is shared  */
    );
    --//建立表shared_latches.

    spool list_shared_latches.sh
    select 'sqlplus /nolog @is_latch_shared 0x'||addr||' '||latch#||' "'||translate(name,'''',' ')||'"'
       from v$latch_parent;
    spool off
    --//获得latch list.仅仅测试latch parent就ok了.适当编辑整理脚本.

    $ cat is_latch_shared.sql
    /*
         This file is part of demos for "Contemporary Latch Internals" seminar v.24.08.2010
         Copyright:   (c) Andrey S. Nikolaev (Andrey.Nikolaev@rdtex.ru) RDTEX
         http://AndreyNikolaev.wordpress.com
         for 32bit Oracle 10g and above
    */
    connect / as sysdba
    set verify off
    WHENEVER SQLERROR EXIT;
    set pagesize 0

    alter session set max_dump_file_size=0;
    /*
       before 11g shared latch get function was named kslgetsl()
       in 11g - kslgetsl_w()
    */
    col shared_latch_function new_value shared_latch_function
    var db_v varchar2(100);
    var db_comp varchar2(100);
    begin dbms_utility.db_version(:db_v,:db_comp); end;
    /
    select decode(sign(replace(:db_v,'.','')-110000),1,'kslgetsl_w', 'kslgetsl') shared_latch_function from dual;
    --//11g use kslgetsl_w,other use kslgetsl.

    oradebug setmypid
    /* try to get latch as shared in S mode */
    oradebug call &shared_latch_function &1 1 2 3 8
    /* if ORA-00600: [545] was raised in previous statement then latch was exclusive.  The error terminates the script */
    /* free the latch */
    oradebug call kslfre &1
    /* if we are here, the latch was shared */
    insert into shared_latches(version,latch#,name,shared) select version,latch#,name,'Y' from v$latch,v$instance where latch#=&2;
    commit;
    exit

    --//说明:作者利用oradebug调用报错,后面的插入语句不会执行,来完整获得那些shared latch的列表.

    3.执行:
    $ . list_shared_latches.sh > /dev/null
    --//略.

    4.结果:
    SYS@test> select * from shared_latches;
    VERSION        LATCH# NAME                                     S
    ---------- ---------- ---------------------------------------- -
    10.2.0.4.0          7 session idle bit                         Y
    10.2.0.4.0          8 client/application info                  Y
    10.2.0.4.0         35 resmgr group change latch                Y
    10.2.0.4.0         36 channel handle pool latch                Y
    10.2.0.4.0         37 channel operations parent latch          Y
    10.2.0.4.0         38 message pool operations parent latch     Y
    10.2.0.4.0         51 SGA mapping latch                        Y
    10.2.0.4.0         52 active service list                      Y
    10.2.0.4.0         97 name-service namespace bucket            Y
    10.2.0.4.0        101 gcs remastering latch                    Y
    10.2.0.4.0        102 gcs partitioned table hash               Y
    10.2.0.4.0        103 gcs pcm hashed value bucket hash         Y
    10.2.0.4.0        106 recovery domain hash list                Y
    10.2.0.4.0        109 Memory Management Latch                  Y
    10.2.0.4.0        118 buffer pool                              Y
    10.2.0.4.0        122 cache buffers chains                     Y
    10.2.0.4.0        131 object queue header operation            Y
    10.2.0.4.0        150 KCL gc element parent latch              Y
    10.2.0.4.0        193 In memory undo latch                     Y
    10.2.0.4.0        194 KTF sga latch                            Y
    10.2.0.4.0        196 Change Notification Hash table latch     Y
    10.2.0.4.0        204 global KZLD latch for mem in SGA         Y
    10.2.0.4.0        207 Policy Refresh Latch                     Y
    10.2.0.4.0        208 Policy Hash Table Latch                  Y
    10.2.0.4.0        209 OLS label cache                          Y
    10.2.0.4.0        210 instance information                     Y
    10.2.0.4.0        211 policy information                       Y
    10.2.0.4.0        212 global ctx hash table latch              Y
    10.2.0.4.0        221 library cache hash chains                Y
    10.2.0.4.0        229 resmgr:active threads                    Y
    10.2.0.4.0        238 resmgr:plan CPU method                   Y
    10.2.0.4.0        244 Shared B-Tree                            Y
    10.2.0.4.0        245 Memory Queue                             Y
    10.2.0.4.0        246 Memory Queue Subscriber                  Y
    10.2.0.4.0        271 JOX SGA heap latch                       Y
    10.2.0.4.0        284 hash table column usage latch            Y
    10.2.0.4.0        291 compile environment latch                Y
    10.2.0.4.0        314 KWQP Prop Status                         Y
    10.2.0.4.0        315 AQ Propagation Scheduling Proc Table     Y
    10.2.0.4.0        316 AQ Propagation Scheduling System Load    Y
    10.2.0.4.0        319 rules engine rule set statistics         Y
    10.2.0.4.0        320 rules engine rule statistics             Y
    10.2.0.4.0        325 kwqbsn:qsga                              Y
    10.2.0.4.0        327 bufq statistics                          Y
    10.2.0.4.0        329 queue sender's info. latch               Y
    10.2.0.4.0        330 bq:time manger info latch                Y
    10.2.0.4.0        333 KWQMN job cache list latch               Y
    10.2.0.4.0        334 KWQMN to-be-Stopped Buffer list Latch    Y
    10.2.0.4.0        392 JS Sh mem access                         Y
    10.2.0.4.0        393 PL/SQL warning settings                  Y
    50 rows selected.

    --//我导入作者的测试结果在链接https://andreynikolaev.wordpress.com/上可以找到.
    --//https://andreynikolaev.wordpress.com/summary-tables/shared_latches-ctl/
    --//10.2.0.4.0结果如下:
    SYS@book> select count(*) from  scott.shared_latches where version='10.2.0.4.0';
      COUNT(*)
    ----------
            51

    --//相差1个.

    SYS@192.168.100.33:1521/test> @ ver1
    PORT_STRING                    VERSION        BANNER
    ------------------------------ -------------- ----------------------------------------------------------------
    x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

    SYS@192.168.100.33:1521/test> @ laddr.sql 'parameter table allocation management'
    ADDR             NAME
    ---------------- ----------------------------------------
    0000000060009298 parameter table allocation management

    SYS@book> select * from scott.shared_latches where version='10.2.0.4.0' minus select * from sys.shared_latches@test033;
    VERSION        LATCH# NAME                                     S
    ---------- ---------- ---------------------------------------- -
    10.2.0.4.0         15 parameter table allocation management    Y

    --//我手工执行发现报错,
    SYS@192.168.100.33:1521/test> oradebug setmypid
    Statement processed.

    SYS@192.168.100.33:1521/test> oradebug call kslgetsl 0x0000000060009298 1 2 3 8
    ORA-00600: internal error code, arguments: [545], [0x060009298], [15], [8], [], [], [], []


  • 相关阅读:
    win8 app scrollviewer ZoomMode
    win8 metro app 不支持 trigger
    WinRT Convert Stream to BitmapImage
    Java深度历险(二)——Java类的加载、链接和初始化(收藏)
    简单的触发器实现
    Java深度历险(一)——Java字节代码的操纵(收藏)
    借用网上大神的一些知识,html5 video 视频播放都兼容(Android,iOS,电脑)
    还原或删除sql server 2008数据库时,经常烩出现: “因为数据库正在使用,所以无法获得对数据库的独占访问权”,终解决方案
    调研《构建之法》指导下的历届作品
    Hibernate 学习笔记一
  • 原文地址:https://www.cnblogs.com/lfree/p/10710685.html
Copyright © 2011-2022 走看看