Oracle 추적 파일 사용 문제 상세 설명

4904 단어 Oracle뒤 를 밟다
1.추적 파일 이 무엇 입 니까?
추적 파일 에는 대량의 상세 한 진단 과 디 버 깅 정보 가 포함 되 어 있다.추적 파일 에 대한 해석 과 분석 을 통 해 우 리 는 문 제 를 포 지 셔 닝 하고 분석 하 며 문 제 를 해결 할 수 있다.추적 파일 이 발생 하 는 출처 를 보면 추적 파일 은 두 가지 로 나 눌 수 있다.하 나 는 데이터 베 이 스 를 운영 하 는 사람 이 의도 적 으로 생 성 한 것 이다.다른 종 류 는 이상 한 오류 가 발생 하여 데이터베이스 에서 자동 으로 생 성 된 것 이다.뒤의 유형 에 대해 서 는 Oracle 내부 의 기술 지원 인원 에 게 만 유용 하지만 우리 에 게 는 대부분 이해 하지 못 한다.앞의 유형 은 우리 가 자주 사용 하 는 것 으로 우리 가 응용 성능 을 분석 하고 조정 하 며 최적화 시 켜 문 제 를 처리 하고 해결 하도록 도와 준다.
그럼 추적 파일 은 어디서 찾 을 수 있 습 니까?조회 데이터 사전 v$diaginfo 추적 파일 의 저장 경 로 를 확인 할 수 있 습 니 다.다음 과 같 습 니 다.

select * from v$diag_info;

디 렉 터 리/u01/app/oracle/diag/rdbms/orcl/orcl/trace 에 들 어가 면 trc 를 접미사 로 하 는 추적 파일 을 볼 수 있 습 니 다.아래 그림 과 같 습 니 다.

2.추적 파일 의 이름 규칙
추적 파일 의 이름 은 보통 다음 과 같은 몇 부분 으로 구성 되 어 있 습 니 다.
  • ORACLE_SID
  • 고정 문자
    서버 프로 세 스 ID 번호
    파일 접미사 이름.trc4.567917.각 부분 간 에 아래 에 선 을 그 어 연결 합 니 다예:orclmmon_12210.trc,그 중에서"orcl"은 이 환경 에서 데이터베이스 의 SID 입 니 다."12210"이 추적 파일 세 션 을 만 들 기 위해 사용 하 는 서버 프로 세 스 ID 번호 입 니 다.어떻게 나의 ORACLESID 와 세 션 에 사용 되 는 서버 프로 세 스 ID 는?
    3.추적 파일 을 어떻게 확인 합 니까?
    프 리 젠 테 이 션 의 편 의 를 위해 일반 사용자 scott 에 dba 역할 을 부여 합 니 다.
    1.관리 로그 인 을 사용 하고 scott 에 게 dba 의 역할 을 부여 합 니 다.
    
    [oracle@oracle12c ~]$ sqlplus / as sysdba
    
    SQL> grant dba to scott;
    
    Grant succeeded.
    
    SQL> 
    
    2.Oracle SID 를 확정 하 는 것 은 다음 과 같다.여기 SID 는 바로:orcl
    
    SQL> select instance_name from V$instance;
    
    INSTANCE_NAME
    ----------------
    orcl
    
    SQL> 
    3.scott 사용자 로 전환 하고 세 션 ID 확인
    
    SQL> conn scott/tiger
    Connected.
    SQL> select sid from v$mystat where rownum=1;
    
           SID
    ----------
    	70
    
    SQL> 
    4.세 션 ID 에 따라 세 션 의 주소 정 보 를 확인 합 니 다.
    
    SQL> select paddr from v$session where sid=70;
    
    PADDR
    ----------------
    000000006DAB6588
    
    SQL> 
    5.세 션 의 주소 정보 에 따라 운영 체제 의 프로 세 스 번 호 를 확인 합 니 다.
    
    SQL> select spid from v$process where addr='000000006DAB6588';
    
    SPID
    ------------------------
    54685
    
    SQL> 
    디 렉 터 리/u01/app/oracle/diag/rdbms/orcl/orcl/torcl/trace 에 들 어가 면 54685 가 포 함 된 추적 파일 이 존재 하지 않 습 니 다.추적 파일 을 사용 하려 면 세 션 을 수 동 으로 열 어야 하기 때 문 입 니 다.
    6.세 션 추적 시작
    
    SQL> alter session set sql_trace=true;
    
    Session altered.
    
    SQL> 
    7.간단 한 SQL 문 구 를 실행 하고/u01/app/oracle/diag/rdbms/orcl/orcl/trace 디 렉 터 리 를 검사 하면 생 성 된 추적 파일 을 볼 수 있 습 니 다.
    
    [oracle@oracle12c trace]$ pwd
    /u01/app/oracle/diag/rdbms/orcl/orcl/trace
    [oracle@oracle12c trace]$ ls *54685.trc
    orcl_ora_54685.trc
    [oracle@oracle12c trace]$ 
    4.추적 파일 로 SQL 진단
    추적 에 따 르 면 SQL 문 구 를 진단 하 는 데 매우 유용 하 다.다음은 간단 한 예 시 를 통 해 설명 한다.
    1.아래 SQL 문 구 를 실행 합 니 다.
    
    select * from scott.emp where deptno=10;
    
    select * from scott.emp where deptno=20;
    
    select * from scott.emp where deptno=30;
    이 세 개의 SQL 은 각각 10,20,30 호 부서 의 직원 을 조회 한다.관찰 을 통 해 이 세 개의 SQL 은 where 의 조건 을 제외 한 매개 변수 값 이 다 르 고 다른 부분 은 모두 같다 는 것 을 발견 했다.이러한 SQL 문 구 를'중 복 된 SQL'이 라 고 한다.데이터베이스 에 중복 SQL 이 대량으로 존재 하면 실행 할 때마다 SQL 의 해석 을 하고 실행 계획 을 생 성 합 니 다.데이터베이스 성능 에 영향 을 줍 니 다.
    다음은 추적 파일 을 통 해 위의 결론 을 검증 하 겠 습 니 다.
    2.앞에서 세 션 의 추적 을 열 었 기 때문에 추적 이 필요 하지 않 으 면 수 동 으로 닫 아야 합 니 다.
    
    SQL> alter session set sql_trace=false;
    
    Session altered.
    
    SQL> 
    3.tkprof 도 구 를 사용 하여 추적 파일 을 포맷 합 니 다.
    
    [oracle@oracle12c trace]$ tkprof orcl_ora_54685.trc /home/oracle/a.txt sys=no sort=fchela
    
    TKPROF: Release 12.2.0.1.0 - Development on Mon Jun 28 10:37:48 2021
    
    Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
    [oracle@oracle12c trace]$ 
    4.생 성 된 a.txt 파일 을 보면 다음 과 같 습 니 다.
    
    SQL ID: 1mvxd868z75nf Plan Hash: 3956160932
    select *
    from scott.emp where deptno=30
    
    SQL ID: 2nbac4n9hnzth Plan Hash: 3956160932
    select *
    from scott.emp where deptno=20
    
    SQL ID: 062r5atccuyv4 Plan Hash: 3956160932
    select *
    from scott.emp where deptno=10
    세 개의 SQL 에 대응 하 는 SQL ID 가 다 르 지만 생 성 된 Plan Hash 는 같다 고 볼 수 있 습 니 다.이 세 SQL 의 실행 계획 이 같다 는 뜻 이다.그렇다면 이 세 개의 SQL 을 바 꾸 기 위해 바 인 딩 변 수 를 사용 할 수 있 습 니 다.이 세 개의 SQL 문 구 를 실행 할 때 매번 실행 계획 을 만 들 지 않 아 도 됩 니 다.첫 번 째 생 성 된 실행 계획 을 재 활용 하면 된다.성능 을 향상 시킨다.
    이상 은 Oracle 의 추적 파일 을 사용 하 는 상세 한 내용 입 니 다.Oracle 추적 파일 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기