강의노트

[DB] DB 성능관리와 튜닝 4일차

GS_Park 2016. 2. 4. 22:02

동기들의 배려로 불짬뽕 곱배기를 정말 맛있게 콧물 질질 흘리면서 먹고(완뽕은 못했네요) 올라와서 강의를 듣습니다. 오늘도 열심히 듣고싶지만 회사일의 여파가 가시지를 않는 상황입니다. 흠.... 하소연은 그만하고 힘내서 수강을 시작합니다.

 

오늘은 어제에 이어 ADDM권장사항에 대한 이론내용부터 수강을 시작합니다.

예전의 열악한 IT기업환경.... 군대문화와 비슷한 일들이 많았다는 이야기도 전설처럼 이야기 해 주셨습니다.

https://192.168.0.200:1158/em/ -> EM에 들어가서 sys/oracle SYSDBA로 접속을 하시면 오늘도 EM을 활용하실 수 있습니다.

 

 

보고서 실행을 하는데 EM이 죽어서 결국은 스크립트로 확인을 해 보겠습니다.


스크립트도 보기 힘들어 VM ware에서 확인하였습니다. Putty에서 vi편집기로 열어도 HTML형식이기 때문에 보기 몹시 불편했습니다.

 

 

 

 

 

CMD창에서 DB정보 보는법?

[oracle@ocpdba ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              18G   12G  5.8G  67% /
none                 1014M  529M  486M  53% /dev/shm

이후에는 내일 수업을 나오지 못하는 사람들을 위해 빨리 빨리 넘어가면서 이론 수업 위주로 진행을 하셨습니다.

 

=====================================   2   =========================================

강사님께서 피곤해하는 수강생을 위해 재미있는 이야기를 해주셨습니다.

"국수와 국시?  그 둘의 차이를 아세요?"

국수는 밀가루로... 국시는 밀가리로 만드는거라는...... 으,...춥다....

국수는 아주머니가 파시고 국시는 아지매가 파는것이라네요.....

국수는 봉지에 국시는 봉다리에 담아 준다고 합니다....... ( 겨울이 다시 오려나봐요.. )

표준어와 사투리의 차이에 관한 농담인것 같지만 더 옮기는것은 얘의가 아닌거 같아서 이만 하겠습니다.  위의 것 외에도 엄청난 콤보들이 계속 이어지는

아이와 얼라 학교와 핵교, 선생님과 선상님 등........ 허허허허허허허헣

결국 국수와 국시의 차이는 사투리였다는....

 

간단한 이론설명을 조금 하시고 그 후에는 또 Oracle문서에 대해서 설명을 해 주셨습니다.

Database 2 Day + Performance Tuning Guide

http://docs.oracle.com/cd/E11882_01/server.112/e10822/toc.htm

Oracle의 문서는 ORACLE에서 제공하는 중요한 문서라고 강조를 재차 하셨습니다.

우리나라의 문제점의 시작이라는 영어에 대한 거부감... 영어권 국가는 훨씬 더 빠르게 읽을 수 있어서 또한 있는줄도 모르는 경우도 많아서 영어권 국가에 피해 훨씬 적응이 느리고 습득이 느릴 수 밖에 없다고 하셨습니다.

전에는 이런 문서들이 많지 않았고 번역을 하여 책으로 만들어서 제품의 안내책자를 주는 경우가 많았는데 요즘 그런것들이 줄어들면서 점점 더 문서를 보지 않게되는 문제들이 생겼다고 하셨습니다.

문서를 보기는 보되 빠르게 읽는것을 강조하셨습니다. 속독을 하고 눈에띄는 부분에 대해 정독을 하는 방법을 권하셨습니다. 도움이 되는 서적도 많지만 Oracle의 문서가 가장 정확한 부분이 있을 수 있으므로 Oracle의 문서의 중요성을 3차로 강조하셨습니다.

그 후로는 My oracle support site에 대해 소개해주셨습니다. Oracle과 support계약이 체결된 회사에만 제공이 된다고 합니다.....

SQL> show sga

Total System Global Area      849530880 bytes
Fixed Size                            1339824 bytes
Variable Size                     461377104 bytes
Database Buffers                381681664 bytes
Redo Buffers                        5132288 bytes

SYSDBA계정으로 위의 문장을 실행하면 위의 결과를 얻을 수 있습니다.

 

====================================    3    ========================================

커서의 공유여부(115page)부터 이론수업을 이어가셨습니다.

내일(금)업무가 끝나면 본격적으로 설 연휴가 시작되기 때문에 강사님께서도 선덕선덕하신 것 같습니다.

Shared pool의 크기를 조정하는 가장 좋은 방법은 자동 공유 메모리 관리를 활용하는 것입니다.

 EM의 서버 tab으로 이동하셔서 데이터 베이스 구성의 첫번째 항목인 메모리 권고자를 누르면 아래의 화면을 확인하실 수 있습니다.

 

휠을 내려 아래로 내려보면 자동으로 관리가 되어 변경되는 것을 확인할 수 있습니다.

 

위의 화면은 EM 이전에 보던 page에서 메모리 권고사항 버튼을 클릭 한 화면입니다.

SQL> show parameter memory_target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
memory_target                        big integer 812M

 

 

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 284M
SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 812M
sga_target                           big integer 528M
SQL>

아래 화면에서 볼 수 있듯이 메모리 자동관리를 사용하지 않음으로 설정을 하고 그 다음에 SGA의 권고사항을 살펴보겠습니다. 

 

SGA는 지금 크기가 부족한 것을 위의 권고사항을 보고 확인할 수 있습니다.

수동으로 관리를 하면 크기를 적정하게 직접 설정을 해 주어야 하고 그 적정한 값을 찾는것 또한 관리자가 스스로 해야한다는 것입니다.

물론 권고자(Advisor)의 정보를 확인하여 할 수 있지만 가능하면 자동 공유 메모리 관리를 사용하는 것이 좋습니다.

 

위의 화면은 리포트를 분석해 왜 buffer gets가 많은지 분석하고 SQL문장을 확인한 결과 SQL튜닝이 필요하다는 결론을 얻을 수 있었습니다.

 

 

또한 강사님께서 강의를 정리하시면서 자신만의 환경을 구축하여 실습 및 분석을 하는것이 DB를 관리하고 정보분석 튜닝등에 많은 도움이 될 수 있다고 하셨습니다.

script -> ** Private pool에 대한 설명을 하셨습니다. -> 이것은 Buffer cache에 쓰지않아 Buffer cache에 성능을 올릴 수 있고 Private pool또한 성능이 뛰어납니다.