스냅샷이 저장된 TPR 테이블을 직접 조회하여 원하는 정보를 추출할 수도 있지 만 티베로가 구현해둔 표준화된 성능 보고서 자료를 손쉽게 생성할 수 있다. 원하 는 기간은 SNAP_ID 혹은 시작/종료 시간으로 설정이 가능하며 추출방식은 TXT와 HTML을 지원한다
# SNAP_ID 검색 기준 REPORT 추출 DBMS_TPR.REPORT_TEXT_ID(beginid, endid, instanceno, filename) DBMS_TPR.REPORT_HTML_ID(beginid, endid, instanceno, filename) # 시작/종료 시간 검색 기준 REPORT 추출 DBMS_TPR.REPORT_TEXT(begintime, endtime, instanceno, filename) DBMS_TPR.REPORT_HTML(begintime, endtime, instanceno, filename)
참고 1) HTML 추출 방식은 최근 추가된 기능이나 테스트 결과 아직 안정화가 되지 않은 것으로 확인된다. TXT 방식으로 추출하여 확인할 것을 권고한다.
참고 2) 시작/종료 시간 REPORT 추출 방식은 SNAPSHOT 구간이 정확히 구분되지 않아 부정확한 자료가 추출될 수 있 으므로 SNAP_ID로 검색하여 추출할 것을 권고한다.
참고 3) TAC의 경우 각 노드별 SNAP_ID가 순차적으로 상이하게 생성된다. 따라서 인스턴스 정의 없이 BEGIN_ID ~ END_ID를 정의하면 모든 노드를 합한 분석결과를 추출할 수 있으나 순차적인 SNAP_ID가 동일한 시간대가 아닐 수 있으 므로 각 인스턴스별로 원하는 시간대를 파악하여 별도로 추출하는 것을 추천한다.
참고 4) TAC 1번 노드에서 TPR 리포트 생성 시 SNAP_ID 및 인스턴스를 0번의 것으로 설정하였다면 1번 서버에서 추출된 리포트라도 0번 노드의 분석결과임을 주의한다.
이제 분석 리포트 생성 방법을 상세히 살펴보자.
SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME FROM _TPR_SNAPSHOT WHERE INSTANCE_NUMBER = '0' ORDER BY SNAP_ID DESC; ---------- ---------------------- ----------------------- SNAP_ID BEGEIN_INTERVAL_TIME END_INTERVAL_TIME ---------- ---------------------- ----------------------- 92 2016/04/08 17:08:33 2016/04/08 17:09:40 91 2016/04/08 16:00:27 2016/04/08 17:00:27 90 2016/04/08 15:00:27 2016/04/08 16:00:27
SQL> exec DBMS_TPR.REPORT_HTML_ID(92, 92, instance_no=>'0'); PSM completed.
exec dbms_tpr.report_text('2016-04-08 15:30:00', '2016-04-08 16:40:00'); PSM completed.
DBMS_TPR.REPORT_TEXT_ID(90, 91, instance_no=>'0',FILE_NAME=>'TPR_TEST.txt');
파일은 "$TB_HOME/instance/$TB_SID/tpr_report.mthr_pid.current_time"에 생성이 된다
@tibero:/tibero/tibero6/instance/tiberoinstance # ls -al tpr_report.tiberoinstance.20160408_173440.html tpr_report.tiberoinstance.20160408_174307.txt TPR_TEST.txt
1. 시스템 구성 : TAC 2노드(INSTANCE0, INSTANCE1)
2. 목표 : 10월 24일 월요일 8시 ~ 20시, INSTANCE 각각, TEXT TYPE, SNAP_ID 기준
3. 시간 검색
SELECT SNAP_ID, INSTANCE_NUMBER, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME FROM _TPR_SNAPSHOT WHERE TO_CHAR(BEGIN_INTERVAL_TIME,'YYYYMMDDHH24MMSS') BETWEEN '201610240800' AND '201610242000' AND INSTANCE_NUMBER = '0' ORDER BY SNAP_ID DESC; ------- --------------- ------------------- ---------------- SNAP_ID INSTANCE_NUMBER BEGIN_INTERVAL_TIME END_INTERVAL_TIME ------- --------------- ------------------- ---------------- 4419 0 2016-10-24 19:48:58 2016-10-24 20:18:58 4418 0 2016-10-24 19:18:58 2016-10-24 19:48:58 ... 4377 0 2016-10-24 08:48:58 2016-10-24 09:18:58 4376 0 2016-10-24 08:18:58 2016-10-24 08:48:58 SELECT SNAP_ID, INSTANCE_NUMBER, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME FROM _TPR_SNAPSHOT WHERE TO_CHAR(BEGIN_INTERVAL_TIME,'YYYYMMDDHH24MMSS') BETWEEN '201610240800' AND '201610242000' AND INSTANCE_NUMBER = '1' ORDER BY SNAP_ID DESC; ------- --------------- ------------------- ---------------- SNAP_ID INSTANCE_NUMBER BEGIN_INTERVAL_TIME END_INTERVAL_TIME ------- --------------- ------------------- ---------------- 4439 0 2016-10-24 19:49:41 2016-10-24 20:19:41 4438 0 2016-10-24 19:19:41 2016-10-24 19:49:41 ... 4397 0 2016-10-24 08:49:41 2016-10-24 09:19:41 4396 0 2016-10-24 08:19:41 2016-10-24 08:49:41
4. TPR 추출 COMMAND(instance 0, 1 모두 instance 1이 운영 중인 서버에서 추출)
EXEC DBMS_TPR.REPORT_TEXT_ID(4376, 4419, instance_no=>'0',FILE_NAME=> '20161024_TPR_REPORT_INSTANCE0.txt'); EXEC DBMS_TPR.REPORT_TEXT_ID(4396, 4439, instance_no=>'1',FILE_NAME=> '20161024_TPR_REPORT_INSTANCE1.txt');
5. 추출결과 (각각 약 40분씩 소요됨)
-rw-r--r-- 1 tibero dba 3475641 Oct 25 13:17 20161024_TPR_REPORT_INSTANCE0.txt -rw-r--r-- 1 tibero dba 1309425 Oct 25 13:55 20161024_TPR_REPORT_INSTANCE1.txt
- 강좌 URL : http://www.gurubee.net/lecture/4144
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.