DATOR


쿼리박스(QueryBox), DBA를 위한 무료 멀티 데이터베이스 성능 관리 도구 기본 카테고리


쿼리박스(QueryBox),
DBA를 위한 무료 멀티 데이터베이스 성능 관리 도구

최근에 발표된 QueryBox 3.0에는 세션 모니터와 락 모니터 등의 관리자 기능이 새롭게 추가되어있습니다. 그 동안 멀티 데이터베이스 쿼리 도구로서의 입지를 다지던, QueryBox의 관리자 기능 지원 세부 내용과 향후 계획이 무엇인지 살펴보기로 하겠습니다.




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

쿼리박스란?

QueryBox는 국내에서 데이터베이스 보안으로 유명한 ㈜피앤피시큐어에서 개발한 데이터베이스 성능 관리 및 쿼리 도구입니다.

01.QueryBox 개념도.png

QueryBox 개념도


지난 2016년 8월 29일, 개인 개발자(비영리 목적) 및 교육기관(교육용)을 대상으로 무료 배포를 시작한 쿼리박스는, 멀티 데이터베이스 관리 환경에 최적화된 도구로 데이터베이스 관리 도구 시장에서 중요 쿼리도구로 점차 자리 잡아 가고 있습니다.

QueryBox가 무료임에도, 사용하기 쉽고 완성도가 높으며 편리한 쿼리 도구라는 점에서 그 기능을 시장에서 인정받고 있지만, 출시 초기부터 언급되었던 데이터베이스 관리자 기능의 부재는 많은 사용자에게 아쉬움을 남겼었습니다.

그러나, QueryBox는 그 동안 많은 사용자의 꾸준한 피드백을 기반으로 관리자 기능을 개발ㆍ적용하여, 이번에 발표된 QueryBox 3.0 버전에서는 오라클 락 모니터를 추가함에 따라, 본격적으로 관리자 도구로의 변신을 시작했다는 생각이 듭니다.

그럼 지금부터, QueryBox 3.0(이하, 쿼리박스)에 추가된 관리자 기능에 대해서 알아보도록 하겠습니다.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

관리자 도구 기능


쿼리박스 V2.1.0.1092 이전 버전에서는, 주로 쿼리 도구의 기능에 충실하기 위하여 쿼리 편집기, PL/SQL 편집기, 테이블 데이터 편집기, 데이터 내보내기/가져오기, 스키마 비교 도구, 스크립트 생성 도구, 오브젝트 패널, 오브젝트 탐색기, 오브젝트 검색 도구 등을 지원 하였으나, 모니터링 도구 등은 지원하지 않았습니다.

그러나, 지난 V2.1.0.1092 버전에서부터 세션 모니터를 선보이기 시작하더니, 이번에 V3.0 으로의 버전업과 동시에 오라클 락 모니터를 추가함으로써 본격적으로 관리자 도구의 기능을 지원하기 시작했습니다.

그럼, 이번에 새롭게 추가된 락 모니터와 세션 모니터의 기능을 확인해 보면서 다른 상용 도구와의 다른 점과 편리한 기능이 무엇인지 알아보겠습니다.



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

오라클 세션 모니터


세션모니터란?

쿼리박스의 오라클 세션 모니터는 데이터베이스에 접속된 세션들의 정보를 여러 가지 옵션을 통해 조회할 수 있습니다. 또한, 특정 세션에 대한 커서, 통계, 프로세스, 이벤트 등과 같이 세션의 상세정보를 제공하며, 세션 Kill, SQL Trace 설정, 실행된 SQL 및 Runtime 실행 계획 확인 기능 등을 제공합니다.


02.세션 모니터 전체 화면.png

세션 모니터 전체 화면


세션 모니터 주요 기능 및 아이콘

세션 모니터의 주요 기능은 다음과 같습니다.
- 데이터베이스에 접속된 모든 세션 목록 조회
- 커서, 세션, 통계, 프로세스, 이벤트, 트랜잭션 등의 상세 정보 보기
- 실행된 SQL 및 Runtime 실행 계획 확인 기능
- 세션 Kill 기능 및 SQL Trace 설정 기능
- 세션 정보 필터 기능 (Program, Module, Machine, DB User, Client User, Terminal, Background Session, Inactive Session)
- 세션 항목 그룹화 기능

표.jpg


세션 모니터 시작하기
세션 모니터를 시작하기 위해서는 메인 메뉴 > 도구에서 “세션 모니터” 메뉴를 클릭하거나 메인 툴바에서 아이콘(아이콘1.png )을 클릭하면 다음과 같이 세션 모니터가 실행됩니다.


03.세션 모니터 시작하기.png

세션 모니터 시작하기


세션 모니터 화면구성
세션 모니터 화면 상단은 세션 목록을 보여주며, 화면 하단은 세션 목록에서 사용자가 선택한 세션의 상세 정보를 보여줍니다. 백그라운드 세션과 사용자 세션은 배경색에 차이를 두어 쉽게 구분 할 수 있도록 되어 있습니다.


04.세션 모니터 화면 구성.png

세션 모니터 화면 구성


세션 Kill 수행하기
세션 목록에서 종료하고자 하는 세션을 선택합니다. 세션 목록의 팝업 메뉴에서 “세션 삭제”를 클릭하거나 세션 모니터 툴바에서 세션 Kill 아이콘(아이콘2.png )을 클릭합니다. 선택된 세션 Kill 수행 시, 메시지 박스를 통해 세션의 SID, Serial# 정보를 확인할 수 있습니다.


05.세션 Kill 수행하기.png

세션 Kill 수행하기


SQL Trace 설정하기
세션 목록에서 SQL Trace를 설정 할 세션을 선택합니다. 세션 목록의 팝업 메뉴에서 “트레이스 시작” 메뉴를 선택하거나 툴바에서 SQL Trace 시작 아이콘(아이콘3.png )을 클릭합니다. SQL Trace는 세션 Level 1, 4, 8, 12중 하나를 선택할 수 있습니다. 세션에 SQL Trace가 이미 설정되어 있는 경우, 세션 목록의 Trace 컬럼에 Level 아이콘(아이콘4.png , 아이콘5.png , 아이콘6.png , 아이콘7.png )이 표시됩니다.



06.SQL Trace 설정하기.png

SQL Trace 설정하기


SQL Trace를 종료하기 위해서는, 세션 목록에서 세션을 선택한 후, 세션 목록의 팝업 메뉴에서 “트레이스 중지” 메뉴를 클릭하거나 툴바에서 SQL Trace 종료 아이콘(아이콘8.png )을 클릭합니다.


델타 모드
세션 모니터는 기본적으로 Logical Reads의 누적값을 보여줍니다. 델타 모드는 Logical Reads의 증가 값을 확인할 때 사용하는 기능입니다. 델타 모드가 설정된 상태에서 새로 고침을 하는 경우, 이전 화면에서 증가된 Logical Reads 값을 확인할 수 있습니다.


07.델타 모드 설정.png

델타 모드 설정


그룹화 기능
세션 목록을 특정 항목으로 그룹화할 때 사용하는 기능입니다. 그룹 기준 컬럼을 선택하면 세션 목록이 Tree 형태로 그룹화되어 표시됩니다. 제공되는 그룹 기준은 Program, Status, Type, Machine, Module, Terminal, DB User, Client User, Server입니다.


08.그룹화 기능.png

그룹화 기능


필터
세션 목록에 필터를 적용하여 특정 값을 가진 목록만 표시하는 기능입니다. “필터” 컬럼 (Program, Module, Machine, DB User, Client User, Terminal)을 선택하고, “Like” 입력박스에 문자열을 입력 후 엔터 키를 누르거나 필터 아이콘을 클릭하면 필터링 된 결과만 화면에 표시됩니다. 또한, “Background 세션 제외”와 “비활성화 세션 제외”도 설정할 수 있습니다.


09.필터 설정.png

필터 설정


세션 상세정보 화면 변경
세션 상세정보는 기본적으로 화면 하단에 표시됩니다. 화면 위치 변경 아이콘( 아이콘9.png )을 클릭하면 세션 상세보기 화면을 화면 오른쪽에 표시할 수 있습니다.


10.세션 상세정보 표시 위치 변경.png

세션 상세정보 표시 위치 변경


세션 상세정보
세션 목록에서 선택한 세션의 상세정보는 화면의 하단에 표시됩니다. 상세정보로는 “현재 SQL”, “모든 커서”, “세션 통계”, “세션 정보”, “프로세스 정보”, “세션 I/O”, “대기”, “이벤트”, “액세스”, “트랜잭션”, “장시간 수행되는 문장”, “활성화 세션 기록”을 제공합니다.


11.세션 상세정보 보기.png

세션 상세정보 보기

Runtime 실행 계획
세션 상세정보 화면의 “현재 SQL” 탭과 “모든 커서” 탭에서는 선택된 세션의 “실행된 쿼리” 및 “Runtime 실행 계획”을 확인할 수 있습니다.


12.모든 커서 탭에서의 Runtime 실행 계획 보기.png

모든 커서 탭에서의 Runtime 실행 계획 보기


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

오라클 락 모니터


락 모니터란?

쿼리박스의 오라클 락 모니터는 락, 래치 정보의 조회를 통해 데이터베이스의 장애 상황을 추적하고 문제를 해결할 수 있도록 도와주는 모니터링 도구입니다. 데이터베이스에 접속된 세션들의 정보를 여러 가지 옵션을 통해 조회할 수 있습니다. 세션 모니터와 같이, 세션에 대한 상세 정보뿐만 아니라 블록된 락, 블로킹 락, 락 정보 등의 상세 정보를 제공합니다.


13.락 모니터 전체 화면.png

락 모니터 전체 화면


락 모니터 화면구성
락 모니터 화면 상단은 락 목록을 보여주며, 화면 하단은 락 목록에서 사용자가 선택한 세션의 상세 정보를 보여줍니다.

락 목록은 “락 목록”, “락 트리”, “래치 트리” 탭으로 구분되어 있습니다. 락 목록 탭은 접속된 데이터베이스에서 발생한 모든 락의 목록을 표시합니다. 락 트리 탭은 블로킹 락과 블록된 락의 관계를 트리 구조로 보여줍니다. 래치 트리 탭은 래치 목록을 트리 구조로 보여줍니다. 락 목록에서 Status 컬럼의 ( ) 아이콘은 락 모니터에 접속한 자기 세션을 의미합니다.


14.락 모니터 화면 구성.png

락 모니터 화면 구성


락 모니터에서 지원하는 툴바 기능이나 상세정보는 대부분 세션 모니터와 비슷하므로, 여기서는 락 모니터를 활용하는 방법에 대해서 확인해 보도록 하겠습니다.


락 세션 모니터링
“락 목록” 탭을 보면, 락에 대한 정보와 락을 발생시킨 세션 정보를 확인할 수 있습니다. 또한, 락 상세정보 화면을 통하여 락이 발생할 당시의 SQL 문장을 확인할 수 있습니다.


15.락 모니터를 통한 문제 처리 흐름도.png

락 모니터를 통한 문제 처리 흐름도


화면의 락 목록에서 CTIME 컬럼을 보면 오랫동안 락을 잡고 있는 세션을 확인할 수 있습니다. LMODE 가 exclusive (X) 또는 row-x (SX) 이면서, CTIME이 긴 경우에는 현재 다른 세션을 막고 있지 않더라도 향후 문제가 될 수 있으므로 LOCK 상황을 잘 살펴봐야 합니다


16.블로킹 락 화면.png

블로킹 락 화면


위 화면의 락 목록에서, 선택한 세션(SID:760)의 상세정보를 보면 해당 락으로 인해 2개의 세션이 블록된 상태인 것을 확인할 수 있습니다. “락 트리” 탭에서 문제가 있는 락을 다시 확인하도록 하겠습니다.

“락 트리” 탭에서는 블로킹 락과 블록된 락의 관계 및 상태를 좀 더 쉽게 확인할 수 있습니다. 블록킹 락은 굵은 글자와 함께 ( ) 표시가 있으며, 블록된 락은 블록킹 락 바로 아래에 연결되어 있습니다.


17.락 트리 화면.png

락 트리 화면


위의 화면에서, 어떤 이유로 락을 잡고 있는지 현재 실행된 SQL 문장을 확인합니다. 블로킹 락의 상세정보에서 “현재 SQL” 탭을 선택합니다.


18.블로킹 락에서 실행된 SQL 문장 화면.png

블로킹 락에서 실행된 SQL 문장 화면


블록킹 락에 의해 막혀있는 블록된 락의 SQL 문장도 확인합니다.


19.블록된 락에서 실행된 SQL 문장 화면.png

블록된 락에서 실행된 SQL 문장 화면


위의 그림을 보면, 블로킹 락과 블록된 락에서 실행된 DML 문장이 같은 것을 확인할 수 있으며, 첫 번째 세션의 트랜잭션이 종료되지 않아 블록된 세션이 발생하였음을 확인할 수 있습니다. 문제가 되는 세션이 확인되었으면, Kill Session을 이용하여 문제를 해결할 수 있습니다.

이와 같이 쿼리박스의 락 모니터를 이용하면 블로킹 락과 블록된 락의 확인뿐만 아니라, 락의 원인 또한 쉽게 확인하고 해결할 수 있습니다.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

마무리


지금까지 쿼리박스에 추가된 관리자 도구인 세션 모니터와 락 모니터 기능을 알아보았습니다.

필자가 사용하면서 느낀 점은, 기존의 상용 데이터베이스 관리자 도구보다 인터페이스가 무척 직관적이고 편리하다는 것이었습니다. 그리고, 다른 도구들에 비해 반응 속도 또한 빠르기 때문에 기존 상용 도구 사용 시 답답함을 느꼈던 분들에게는 아주 좋은 대안이 될 것으로 생각됩니다.

하지만, 쿼리박스가 데이터베이스 관리 기능을 모두 지원하는 것이 아니기 때문에 아직은 아쉬운 부분이 남아 있습니다. 이를 반영하듯, 개발사에서도 SQL 모니터 (Top N SQL), 스페이스 관리자, 데이터베이스 모니터, 보안 관리자(계정 및 권한 관리)와 같은 관리자 도구 추가 계획을 세웠다고 하니 많이 기대하셔도 좋을 것 같습니다.

그 동안 쿼리박스의 쿼리 도구 사용을 통해서 느꼈던 편리함을 관리자 도구에서도 충분히 만끽 할 수 있을 것 같습니다. 앞으로도 쿼리 박스가 더욱 더 발전해서 좋은 툴로 거듭 나기를 기대해 봅니다.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

쿼리박스 다운로드 및 설치


쿼리박스는 네이버 소프트웨어 또는 공식 홈페이지에서 다운로드 할 수 있습니다. 쿼리박스는 Windows 32bit, 64bit 와 Mac OS X 를 모두 지원하므로, 각자의 OS 에 맞는 버전을 다운 받으면 됩니다. (* Mac OS X 버전은 쿼리박스 공식 홈페이지에서만 다운로드 받을 수 있습니다.)

TAG

Leave Comments


profile데이터 산업 시장 동향 

Recent Comment

Recent Trackback