서비스

[08] V$SERVICEMETRIC, V$SERVICEMETRIC_HISTORY 뷰를 이용한 서비스 성능관리 방안

똘똘님. 지난 포스팅에서 정리해주신 서비스 별 성능 통계를 제공해주는 다양한 뷰에 대해서 학습 중입니다. 다른 뷰들은 대부분 쉽게 이해가 되는데요. V$SERVICEMETRIC 뷰와 V$SERVICEMETRIC_HISTORY 뷰의 차이를 정확히 모르겠습니다. 그리고 CALLSPERSEC 칼럼의 수치가 실제 실행 횟수보다 크게 나오는 것 같습니다. 이에 대한 설명을 부탁드려도 될까요?

네. 공부할수록 궁금한 게 많아지는건 아주 당연하고도 좋은 현상입니다. 그럼 시작해볼까요?

(more…)

[07] 소스 수정없이 Connection Pool 별로 성능 현황 및 이력을 확인하는 방법

똘똘님 덕분에 톰캣 환경에서의 DBCP JDBC Connection Pool 구성은 쉽게 마무리했습니다. ([06] 톰캣 JDBC Connection Pool 설정 및 테스트용 JSP 코드 작성 참조) 새로운 미션은 커넥션 풀 별로 성능 현황을 모니터링하고 이력을 분석하는 것입니다. V$SESSION 뷰를 확인해보니 2개의 서비스 모두 PROGRAM 명은 ‘JDBC Thin Client’로 표시되고 SERVICE 명은 ‘SYS$USERS’로 표시되므로 구분이 되지 않습니다. DBMS_APPLICATION_INFO.SET_MODULE 패키지를 이용하면 “MODULE” 및 “ACTION” 설정이 가능하다고 알고 있습니다만, 소스 수정이 불가능한 상황입니다. 어떻게 하면 될까요?

오라클 서비스를 이용하면 아주 쉽게 이 문제를 풀 수 있습니다. 그럼 시작해볼까요?

(more…)

[05] FAN 콜아웃 (Callouts)을 이용한 서비스 자동 재배치 방법

서비스를 이용해서 워크로드를 관리해보니 로드 밸런싱과 Failover 부분은 아주 좋은 것 같습니다. 그런데 문제점이 하나 있습니다. 노드가 복구된 후에도 Failover된 서비스들이 원래 노드로 이동하지 않습니다. 현재는 수동으로 서비스 stop/start를 수행해서 재배치를 하고 있습니다만 자동으로 서비스 재배치가 가능할까요?

네! 가능합니다. FAN 콜아웃 (Callouts)을 이용하면 서비스 자동 재배치가 가능합니다. 그럼 한번 살펴볼까요?

(more…)

[04] RAC 환경에서 오라클 서비스를 이용한 효율적인 워크로드 관리 방안

리눅스 관련된 자료를 찾다가 “열씨미와 게을러의 리눅스 개발 노하우 탐험기”란 책의 일부 내용을 접하게 됐습니다. 각 주제의 도입부가 문답법으로 진행되는 방식인데, 아주 재미있게 읽었습니다. 저도 이번 포스팅부터는 “궁금이”와 “똘똘이” 캐릭터를 이용해서 묻고 답하기 형태를 접목시켜 보려고 합니다. 🙂

똘똘님! 제가 이번에 RAC 3 노드 구축 프로젝트에 참여하게 됐습니다. 🙂 이번 구축 프로젝트에서 가장 중요하게 생각하는 부분 중의 하나는 워크로드 관리라고 할 수 있습니다. 온라인 서비스는 RAC 1, 2번 노드를 이용해서 골고루 부하를 분산 시키고 싶고, RAC 3번 노드는 배치 서비스용으로 사용하고 싶습니다. 배치 서비스는 대부분 새벽 시간대에만 수행되므로 업무 시간 (9~6)에는 Idle한 편입니다. 따라서, 만일 RAC 1 또는 2번 노드에 장애가 발생할 경우에는 온라인 서비스를 RAC 3번 노드로 Failover하고 싶고, RAC 3번 노드의 장애가 발생할 경우에는 배치 서비스를 RAC 1 또는 2번 노드로 Failover 하고 싶습니다. 어떻게 하면 좋을까요?

궁금님! 말씀하신 부분은 “서비스”를 이용하면 됩니다. 자! 그럼 “서비스”에 대해서 세부적으로 알아보도록 하겠습니다.

(more…)