DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

Monitoring and Troubleshooting

DBMS 2
Sybase 가이드
DBA를 위한 가이드
Monitoring and Troubleshooting
작성자
admin
작성일
2021-02-19 13:59
조회
683

Monitoring and Troubleshooting

monitoring file

IQ message file, IQ server file등은 해당되는 파일 시스템의 크기까지 크기가 증가하기 때문에 dba는 정기적으로 조절해 줘야 합니다.

SYBASE IQ가 비정상적으로 종료되면 core, stktrc.iq 라는 파일이 생성되는데 이 파일들도 정기적으로 관리해 줘야 합니다.

$ASTMP로 설정된 디렉토리의 크기가 너무 작으면 SYBASE IQ가 비정상 종료되기 때문에 역시 관리해줘야 합니다. 최소 4GB 정도는 유지하여 주십시오.

catalog 영역인 .db의 크기가 갑자기 크게 증가한다면 누군가 그 영역에 object를 생성해 사용중인 것으로 간주해야 합니다.


monitoring user

sp_iqconnection 라는 stored procedure 를 통해 현재 SYBASE IQ에 연결중인 사용자 들을 모니터 할 수 있습니다.

monitoring user


monitoring loading message

데이터의 로딩은 3과정으로 이루어 지며 디폴트로 100,000 건에 한번씩 로정보를 IQ message file에 기록하며 notify 건수는 변경 가능합니다


  • phase 1 : 파일로부터 데이터를 읽어 LF, HNG, FP 인덱스를 기록합니다. 이 작업은 일차적으로 main buffer cache에서 일어나며 디스크에도 기록이 됩니다.
  • phase 2 : HG 인덱스를 위해 temp buffer cache에서 sort 작업을 실시합니다. 물론 HG 인덱스가 아닌 다른 인덱스는 phase 1을 계속 진행합니다.
  • phase 3 : HG 인덱스를 디스크에 기록합니다.
monitoring message log

테이블에 INSERT/UPDATE/DELETE/LOAD 작업이 발생하면 IQ message log file에 이와 관련된 notification 정보가 쓰여집니다.

monitoring message log


monitoring database-sp_iqcheckdb

데이터베이스의 모든 페이지를 디스크에서 메모리로 읽어 데이터베이스 할당정보의 일치성 오류(corrupt) 여부를 점검하며 복구도 가능합니다.

이 작업은 매우 많은 리소스와 시간을 소비하므로 실행하기 전에 충분히 숙지 하시고 사용하기 바랍니다.

실행 된 결과는 시스템에 저장되었다가 sp_iqdbstatistics가 실행되면 다시 보여집니다.

정확한 결과를 얻기 위해서는 checkpoint를 먼저 실행하고 실행하십시오.

기타 자세한 것은 매뉴얼을 참조하시기 바랍니다.


monitoring database-sp_iqstatus

main/temp IQ Blocks used
퍼센트 값이 높으면 그 만큼 많이 사용중에 있으므로 추가 할당을 고려해야 합니??려면 write 횟수를 줄여야 합니다. active 한 트랜잭션이 참조되지 않으면 이 영 역은 삭제되고 다른 영역으로 재할당 가능합니다.

active txn versions
active write 트랜잭션의 수와 데이터 양에 대한 정보를 보여줍니다.

active txn versions


monitoring buffer cache

SQL 명령어인 IQ Utilities를 통해 buffer cache의 성능을 모니터할 수 있으며 .db가 존재하는 디렉토리에 별도의 ASCII text 로그 파일이 생성됩니다.

생성되는 파일은 다음 규칙에 의해 이름이 결정됩니다.


  • main buffer cache : dbname.connection#-main-iqmon
  • temp buffer cache : dbname.connection#-temp-iqmon

IQ Utilities를 사용하려면 반드시 한 개의 컬럼을 가진 더미 테이블이 존재해야 합니다.

start syntax
IQ UTILITIES MAIN | PRIVATE INTO dummy-table-name
START MONITOR 'monitor-option,…..';

start 예)
CREATE TABLE monitor_table ( a CHAR(1) );
IQ UTILITIES MAIN INTO monitor_table
START MONITOR '-summary -interval 20';

stop syntax
IQ UTILITIES MAIN | PRIVATE INTO dummy-table-name
STOP MONITOR;

stop 예)
IQ UTILITIES MAIN INTO monitor_table
STOP MONITOR;

stop 예


using system utilities

Unix : 아래 기술된 툴들을 같이 사용하시면 많은 도움이 됩니다.


  • ps
  • vmstat
  • sar
  • top
  • stat

WinNT : 아래 기술된 툴들을 같이 사용하시면 많은 도움이 됩니다


  • Performance monitor
  • Task manager
troubleshooting

SYBASE IQ Server가 기동 되지 않을 때


  • 이미 기동 되어 있지 않은지 점검해 봅니다.
  • 트랜잭션 로그 파일의 내용과 데이터베이스가 일치하는지 점검해 봅니다.
  • 기동할 수 있다.
  • 필요한 환경변li>네트워크이 잘 동작하는지 점검해 봅니다.
  • 설정된 메모리가 사용 가능한 메모리 용량을 초과했는지 점검해 봅니다.

사용자가 데이터베이스를 적절히 액세스하지 못할 때


  • 이연결 가능한 적절한 사용자 ID와 비밀번호를 가지고 있는지 점검해 봅니다
  • 현재 서버의 상태가 dba use only 상태인지 점검해 봅니다.
  • ODBC 설정 혹은 연결 파라미터를 올바르게 했는지 점검해 봅니다.
  • 현재 데이터베이스가 restore 상태인지 점검해 봅니다.
  • 데이터베이스 object에 적절한 권한을 가지고 있는지 점검해 봅니다.

적재하는 동안 데이터베이스의 용량이 부족할 때


  • 적재작업은 추가 사용 용량이 가능할 때까지 suspend 상태로 있습니다.
  • versioning이예약어를 통해 충분한 크기의 디스크를 추가해 줍니다.

SYBASE IQ Server의 처리 속도가 느려지거나 hang 현상이 일어날 때


  • 개별 사용자에게만 발생하는 현상인지 사용자 모두에게 발생하는 현상인지 점검합니다.
  • 메모리가 부족하여 paging 이 과도하게 발생하고 그 결과로 thrashing 현상이 발생하는지 점검합니다
  • buffer cache의 크기가 너무 크거나, 너무 작게 설정되었는지 점검합니다
  • 특정한 질의가 수행될 때만 발생한다면 해당되는 테이블의 인덱스 corrupt 여부를 점검해 봅니다.
  • 플랫폼별 설치 가이드나 혹은??라 미터가 올바르게 설치 혹은 변경 되었는지 점검해 봅니다.
reporting problem to technical support

다음과 같은 정보를 취합해서 담당 엔지니어나 Help Desk에 연락해 주세요


  • 싸이트명
  • 플맷폼 명, OS, 버전
  • sp_iqstatus 결과
  • IQ Message log (dbname.iqmsg)
  • IQ Server log (servername.###.srvlog, servername.###.stderr)
  • OS error log
  • Server config file (dbname.cfg)
  • stktrc-YYYYMMDDHHNNSS_#.iq
  • dbname.db
  • query plan
  • z log file
  • 재현 가능한 시나리오
  • 참고 : 12.5 이상에서는 $ASDIR/bin/getiqinfo.sh를 실행하시면 됩니다.
참고 : stack trace 생성하기

12.6 부터 IQ 서버에 hang과 같은 현상의 원인파악을 위해 임의로 stack trace를 발생시킬 수 있는 기능을 제공하고 있습니다.

$ASDIR/logfiles 디렉토리에 DumpAllThreads라는 파일을 생성하면 IQ 서버가 이를 감지하고 IQ 서버가 기동된 디렉토리에 stktrc-YYYYMMDDHHNNSS_#.iq라는 디버그 파일을 생성합니다. 단, DumpAllThreads 파일이름의 대소문자에 주의

디버그 파일을 생성하고 DumpAllThreads라는 파일은 IQ 서버가 자동으로 삭제하지만 만일의 경우에 대비하여 존재여부를 확인해 주시기 바랍니다.

stktrc-YYYYMMDDHHNNSS_#.iq 파일은 SYBASE 고객센타로 보내주시기 바랍니다.