<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      oracle查詢某個sql語句客戶端ip地址

      1. 背景

      業務出現異常后,或者某個sql導致系統卡頓。需要問題后需要溯源,需要獲取這個sql是在哪個客戶端的IP發起的。

      2. cs架構

      客戶端直接連接數據庫,可以很方便查詢,采用通過sql_id找到客戶端、進程或者port等,默認的模式是沒有ip地址記錄

      select machine,program,port from GV$SESSION where sql_id= 
      或者
      select machine,program,port from GV$ACTIVE_SESSION_HISTORY where sql_id=
      
      select machine,program,port from dba_hist_ACTIVE_SESS_HISTORY where sql_id=
      
      再通過數據庫監聽查詢或者應用服務器

      2.1. 案例說明

      select machine,program,port from GV$SESSION where sql_id=

      或者 GV$ACTIVE_SESSION_HISTORY 的表獲取到

      通過獲取machine、program、port這幾個字段。

      再通過數據庫監聽日志只獲取

      cat listener.log|grep 51880|grep Thin

      注意:發現監控日志中記錄的計算機的主機名和session中記錄的可能不一致

      3. BS架構

      bs架構和cs架構的不同點,bs采用多層架構,是應用服務連接數據庫的,獲取到的ip也是應用服務器的ip地址。

      以java應用服務器為例,需要查詢到客戶端的ip發起端。

      有個技巧:java服務的應用名稱都是叫JDBC Thin Client,這樣一臺服務器中有多個java服務是無法區別的,可以手工區別名稱來定義不同的java服務,如java應用的配置文件中,針對鏈接池配置,這樣你的應用名稱就變成了oracle-monitor

            data-source-properties:
              "[v$session.program]": oracle-monitor

      有以下幾種方式

      1. 通過nginx,客戶端連接nginx,nginx轉發到應用服務器中。再配置時間和請求的交易來定位,需要記錄應用服務器的日志,日志格式類似
      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent $request_time $upstream_response_time "$http_referer" '
                            '$connection $upstream_addr "$http_x_forwarded_for" "$http_cookie" ';

      $remote_addr:這個就是客戶端的ip

      1. 沒有nginx,應用容器采用tomcat,可以查看tomcat的請求日志

      1. 還有應用端記錄登錄日志來獲取

      4. 數據庫登錄觸發器

      登錄的時候,可以再session記錄ip地址,這樣就不需要到監控日志中去查詢具體的ip地址

      CREATE OR REPLACE TRIGGER on_logon_trigger
      AFTER LOGON ON DATABASE
      BEGIN
          DBMS_APPLICATION_INFO.SET_CLIENT_INFO(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));
      END;

      SELECT * FROM gv$session WHERE client_info 這個字段中就會體現ip地址

      5. 總結

      追溯源頭的ip地址

      1. 通過慢的sql_id來獲取客戶端、應用、port,來定位ip地址。BS架構中應用服務名可以在鏈接池中設置不同的應用名。可以新增一個登錄的觸發器,記錄一下ip更加方便
      2. BS架構需要定位客戶端,需要通過請求和時間等,再通過nginx或者tomcat訪問日志來定位
      posted @ 2024-12-13 15:03  gull  Views(625)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 久久久久成人片免费观看蜜芽| 日韩精品一二区在线观看| 成人福利国产午夜AV免费不卡在线 | 日本中文字幕有码在线视频| 国产亚洲精品自在久久vr| 亚洲精品中文字幕二区| 亚洲精品综合一区二区在线| 国产精品美女一区二三区| 日韩精品成人区中文字幕| 久久综合97丁香色香蕉| 精品无码三级在线观看视频| 国产真实乱对白精彩久久| 欧美交a欧美精品喷水| 国内自拍偷拍一区二区三区| 久久国产精品成人影院| 白嫩人妻精品一二三四区| 中文字幕无码视频手机免费看 | 亚洲综合精品一区二区三区| 午夜福利yw在线观看2020| 兴海县| 国产精品天天看天天狠| 性姿势真人免费视频放| 日本一区不卡高清更新二区 | 干中文字幕| 亚洲三区在线观看无套内射| 亚洲精品国产第一区二区| 亚洲国产美女精品久久久| 蒙城县| 九九热视频在线观看精品| 欧洲免费一区二区三区视频| 国产成人AV性色在线影院| 亚洲中文字幕日产无码成人片| 麻豆国产成人AV在线播放| 天啦噜国产精品亚洲精品| 亚洲第一视频区| 都匀市| 亚洲一本二区偷拍精品| 久久综合色一综合色88| 日本一道一区二区视频| 潜山县| av色蜜桃一区二区三区|