• Script: Who’s using a database link?(找出谁在使用dblink)


    Every once in awhile it is useful to find out which sessions are using a database link in an Oracle database. It’s one of those things that you may not need very often, but when you do need it, it is usually rather important.

    Yong Huang includes this script on his website, and notes that Mark further attributed authorship in Metalink Forum thread 524821.994. but this note is no longer available.

    Here’s the script, complete with comments.

    — for 9I and below

    -- who is querying via dblink?
    -- Courtesy of Tom Kyte, via Mark Bobak
    -- this script can be used at both ends of the database link
    -- to match up which session on the remote database started
    -- the local transaction
    -- the GTXID will match for those sessions
    -- just run the script on both databases
    
    Select /*+ ORDERED */
    substr(s.ksusemnm,1,10)||'-'|| substr(s.ksusepid,1,10)      "ORIGIN",
    substr(g.K2GTITID_ORA,1,35) "GTXID",
    substr(s.indx,1,4)||'.'|| substr(s.ksuseser,1,5) "LSESSION" ,
    s2.username,
    substr(
       decode(bitand(ksuseidl,11),
          1,'ACTIVE',
          0, decode( bitand(ksuseflg,4096) , 0,'INACTIVE','CACHED'),
          2,'SNIPED',
          3,'SNIPED',
          'KILLED'
       ),1,10
    ) "Status",
    substr(w.event,1,10) "WAITING"
    from  x$k2gte g, x$ktcxb t, x$ksuse s, v$session_wait w, v$session s2
    where  g.K2GTDXCB =t.ktcxbxba
    and   g.K2GTDSES=t.ktcxbses
    and  s.addr=g.K2GTDSES
    and  w.sid=s.indx
    and s2.sid = w.sid

    — for 10g and above

    SELECT /*+ ORDERED */
          SUBSTR (s.ksusemnm, 1, 10) || '-' || SUBSTR (s.ksusepid, 1, 10)
              "ORIGIN",
           SUBSTR (g.K2GTITID_ORA, 1, 35) "GTXID",
           SUBSTR (s.indx, 1, 4) || '.' || SUBSTR (s.ksuseser, 1, 5) "LSESSION",
           s2.username,
           SUBSTR (
              DECODE (
                 BITAND (ksuseidl, 11),
                 1, 'ACTIVE',
                 0, DECODE (BITAND (ksuseflg, 4096), 0, 'INACTIVE', 'CACHED'),
                 2, 'SNIPED',
                 3, 'SNIPED',
                 'KILLED'),
              1,
              10)
              "Status",
           SUBSTR (s2.event, 1, 10) "WAITING"
      FROM x$k2gte g,
           x$ktcxb t,
           x$ksuse s,
           v$session s2
     WHERE     g.K2GTDXCB = t.ktcxbxba
           AND g.K2GTDSES = t.ktcxbses
           AND s.addr = g.K2GTDSES
           AND s2.sid = s.indx;

    If you want to close a link, issue the following statement, where linkname refers to the name of the link:

    sql> commit or rollback;
    SQL> alter session close database link linkname;
    Session altered.

    references Jared ‘s article

  • 相关阅读:
    oracleDBA-D4
    oracleDBA-D3
    oracleDBA-D2
    大数据架构学习记录
    UBUNTU 安装最新版 nodejs
    datax 单条记录超过大小限制,当前限制为:67108864
    将anaconda中已存在的虚拟环境增加到jupyterlab
    jupyter 启动python3 内核 总是出现错误 ImportError: cannot import name 'create_prompt_application'
    CDH 本地hadoop支持读写 AWS S3a
    hadoop 集群集成jupyterhub 出现的问题
  • 原文地址:https://www.cnblogs.com/travel6868/p/5007594.html
Copyright © 2020-2023  润新知