우리 회사 데이터베이스를 티베로로 변경하기
성능 모니터링(로그) 파일 0 0 80,190

by 티베로 티베로 파일 [2018.10.11]


데이터베이스를 포함한 대부분의 시스템들은 사용자가 해당 시스템의 운영 상황을 여러 관점에서 파악이 가능하도록 다양한 모니터링 정보들을 파일 형태로 실시간 저장한다.

티베로의 경우 제공하는 모니터링 파일들을 매개변수 파일에 XXXX_XXXX_DEST 형태로 저장하므로 다음과 같이 V$PARAMETERS를 조회하여 모니터링 파일들의 종류를 확인할 수 있다.

SELECT * FROM V$PARAMETERS WHERE NAME LIKE '%DEST'; 

tibero6 FS04 기준 16개가 검색이 되는데 대부분은 특정 장애 상황 발생 시 제조사 엔지니어와 원활한 소통을 위해 종류 및 경로 정도만 알고 있으면 되지만 다음에 소개하는 2개의 파일은 데이터베이스 관리자가 안정적으로 데이터베이스를 운영하기 위해 반드시 필요하므로 파일에 저장되는 내용을 미리 숙지하고 필요시 정보를 확인하여 적절한 분석을 해야 한다.

가. 트레이스 로그(TRACE LOG)

트레이스 로그는 티베로 데이터베이스 운영 중 발생하는 주요 사건/사고(리두로그 스위치, 체크포인트, 데이터베이스 종료 및 시작, DDL 명령 수행, 세션 KILL, LOCK, DEADLOCK, 각종 에러 등)를 기록하는 파일로써 TRACE_LOG_DEST의 설정된 경로에 저장된다.

데이터베이스 관리자는 해당 정보를 활용하여 다음 사항들을 확인할 수 있다.

1. 데이터베이스의 현재 상태 확인 : 데이터베이스가 바쁘게 운영되고 있는 중에 트레이스 로그를 확인했을 때 에러 로그가 없다면 최소한 데이터베이스 엔진의 동작 상태는 정상이라고 판단할 수 있다.

2. 재기동과 같은 특정 업무 수행 시 정상 수행 여부 확인 : 재기동과 같은 주요 업무 수행 시 별도의 창에 tracelog를 실시간 확인하면 해당 업무의 수행 과정 및 정상 완료 여부 확인이 가능하다.

3. 장애 시 데이터베이스에 발생한 주요 사항 확인 : 장애 상황 발생 시 해당시점 전후로 저장된 기록을 통해 장애원인 분석이 가능하다.

따라서 필요 시 빠르게 접근할 수 있도록 OS에 ALIAS를 tracef='tail -f /log/tibero/tibero/tracelog/trace.log'와 같이 설정하는 것을 권장하며, ERROR, SHUTDOWN과 같은 문자열이 저장될 경우 SMS를 연동하여 관리자에게 해당 내용을 알리도록 하면 안정적인 데이터베이스 운영에 큰 도움이 된다.

또한 트레이스 로그에 기록되는 에러 정보는 tberr 명령어를 통해 확인이 가능하므로 사용 방법을 숙지하도록 한다.

트레이스 로그 에러 확인
06/13 15:57:27.433674 [FRM] 790(790) tbsvr_er:066 THROW. 
ec=ERROR_EXP_CAST(-11021)[Error occurred during type casting.] 
(csr_id:13) [dt_common.c:47:dtm_cast_error

tberr을 통한 에러 내용 상세 확인
@tibero:/log/tibero/tibero/tracelog # tberr 11021
/*
 * err: -11021
 * name: ERROR_EXP_CAST
 * desc: Error occurred during type casting.
 * cause: An attempt was made to convert the data type to an invalid data type.
 * action: Check the specified data type.;
 */

참고 1) DBMS 로그(DBMS LOG)는 트레이스 로그와 유사하나 에러 정보 보다는 DDL, 체크 포인트 등 내부에서 수행되는 업무에 대한 정보를 주로 기록한다.

참고 2) 트레이스 덤프(TRACE DUMP)는 alter system dump 명령어를 통해 사용자가 수동으로 dump를 수행할 때 기록 되는 파일이며 TRACE_DUMP_DEST에 정의된 경로에 저장된다.

나. 리스너 로그(LSNR LOG)

리스너 로그는 사용자로부터의 접속 요청을 적절한 티베로 프로세스에 중계하는 티베로 리스너가 담당 업무를 수행하며 관련 내용을 기록하는 로그 파일이며 LSNR_LOG_DEST의 정의된 경로에 생성한다.

해당 로그에 별다른 에러 메세지가 없고 tbsql을 통한 접속이 원활하다면 리스너 상태가 정상이라고 판단할 수 있다.

티베로 데이터베이스는 인스턴스 기동 시 리스너 프로세스를 함께 기동하므로 리스너와 관련된 데이터베이스 관리자의 직접적인 운영 포인트는 존재하지 않는다.

다만 데이터베이스 접근 시 접속이 원활하지 못하다는 사용자들의 민원이 종종 발생하므로 사용자 접속 환경이 문제인지 데이터베이스 문제인지를 판별하기 위해 트레이스 로그와 함께 리스너 로그를 확인할 필요가 있다(사실 사용자가 접속 정보를 잘못 기입하거나 방화벽, 데이터베이스 접속 통제장비 등의 보안 시스템으로 부터 적절한 권한을 획득하지 못해 접속이 불가능한 경우가 대부분이다).

note 티베로 데이터베이스는 엔진이 설치된 서버가 보유하고 있는 모든 인터페이스로 접속을 허용하므로 보안상 문제가 될 가능성이 존재한다. 따라서 해당 서버의 보안 설정이나 네트워크 스위치의 보안 설정 등을 활용하여 접속이 불필요한 인터페이스는 차단해야 한다(소속 회사보다 상위 버전의 티베로 데이터베이스에서는 이러한 보안 설정을 제어할 수 있도록 기능 개선 될것으로 예상된다).

리스너 프로세스 확인
@tibero:/tibero # ps -ef | grep listener

tibero 12977086 17039430 0 10:25:42 -0:00 /tibero/tibero6/bin/
tblistener -n 10 -t NORMAL -SVR_SID tiberotestdb

-모든 인터페이스 LISTEN 상태 확인

# 매개변수 파일의 LISTENER_PORT에 정의된 포트번호를 입력
@tibero:/tibero # netstat -an | grep 11111 

Proto Recv-Q Send-Q Local Address Foreign Address  (state)
----- ------ ------ ------------- ---------------- -------
tcp4       0      0 *.11111        *.*             LISTEN

  • - 해당 강좌는 도서 " [우리 회사 데이터베이스를 티베로로 변경하기]"의 내용을 옮겼습니다.
  • - 해당 도서는 기간계 DBMS(DATABASE MANAGEMENT SYSTEM)를 티베로로 전환하는 실제 프로젝트를 수행한 실무자가 DBMS 전환 과정과 실제 적용 사례, 문제 해결 과정 등을 자세하게 설명하고 있습니다.

- 강좌 URL : http://www.gurubee.net/lecture/4165

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입