Oracle 추적 파일 사용 문제 상세 설명
추적 파일 에는 대량의 상세 한 진단 과 디 버 깅 정보 가 포함 되 어 있다.추적 파일 에 대한 해석 과 분석 을 통 해 우 리 는 문 제 를 포 지 셔 닝 하고 분석 하 며 문 제 를 해결 할 수 있다.추적 파일 이 발생 하 는 출처 를 보면 추적 파일 은 두 가지 로 나 눌 수 있다.하 나 는 데이터 베 이 스 를 운영 하 는 사람 이 의도 적 으로 생 성 한 것 이다.다른 종 류 는 이상 한 오류 가 발생 하여 데이터베이스 에서 자동 으로 생 성 된 것 이다.뒤의 유형 에 대해 서 는 Oracle 내부 의 기술 지원 인원 에 게 만 유용 하지만 우리 에 게 는 대부분 이해 하지 못 한다.앞의 유형 은 우리 가 자주 사용 하 는 것 으로 우리 가 응용 성능 을 분석 하고 조정 하 며 최적화 시 켜 문 제 를 처리 하고 해결 하도록 도와 준다.
그럼 추적 파일 은 어디서 찾 을 수 있 습 니까?조회 데이터 사전 v$diaginfo 추적 파일 의 저장 경 로 를 확인 할 수 있 습 니 다.다음 과 같 습 니 다.
select * from v$diag_info;
디 렉 터 리/u01/app/oracle/diag/rdbms/orcl/orcl/trace 에 들 어가 면 trc 를 접미사 로 하 는 추적 파일 을 볼 수 있 습 니 다.아래 그림 과 같 습 니 다.
2.추적 파일 의 이름 규칙
추적 파일 의 이름 은 보통 다음 과 같은 몇 부분 으로 구성 되 어 있 습 니 다.
서버 프로 세 스 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 추적 파일 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Oracle 생성 향후 3일간의 전체 시점 (단계 상세)수요: X 좌표축 시간은 모두 정시 시간으로 앞으로 3일 동안의 예측을 보여준다(x 축은 앞으로 3일 동안의 정시 시간을 보여준다), 3시간마다 한 눈금, 가로 좌표는 모두 24개의 눈금을 보여준다 1단계: 현재 시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.