28
Version 변경일자 변경자(작성자) 주요내용 1 2018-03-08 박성현 초안작성 Author 박 성 현 Creation Date 2018-03-14 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved ZAMONG 소개 및 설치 가이드

기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

Version 변경일자 변경자(작성자) 주요내용

1 2018-03-08 박성현 초안작성

Author 박 성 현

Creation Date 2018-03-14

Last Updated

Version 1.0

Copyright(C) 2004 Goodus Inc.

All Rights Reserved

ZAMONG 소개 및 설치 가이드

Page 2: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 2 –

Contents

1. Zamong 소개 ............................................................................................................................................. 3

Key Features ...................................................................................................................................................... 3

Using direct memory access method................................................................................. 3 No load on oracle db and server at all ............................................................................... 3 Stats and Session details can be extracted in hang state ................................................. 3 You can analyze oracle instance and sessions at a certain point in the past ................... 4 Intuitive dashboard for real time monitoring, web-based user interface for analysis ..... 4

Other Features................................................................................................................................................... 5

It's Simple, DBA can build the system on his own ............................................................ 5 All character set supported ............................................................................................... 5 Just Free ............................................................................................................................ 5

Compared with other solutions ..................................................................................................................... 5

Query-based DB monitoring solutions .............................................................................. 5 Oracle Automatic Workload Repository (AWR)................................................................. 6 Platforms Supported ......................................................................................................... 6

2. 사용 가이드 ................................................................................................................................................ 7

2.1. URL 접속 .................................................................................................................. 7

2.2. Zamong_Dashboard.................................................................................................. 8

2.3. Zamong_Clues ........................................................................................................ 12

2.4. Zamong Architecture .............................................................................................. 16

2.5. Zamong Agent install ............................................................................................. 16

2.5.1. 자몽 Agent 설치 ...................................................................................................17

2.6. Zamong Server install ............................................................................................. 18

2.6.1. Mysql Install ..........................................................................................................18

2.6.2. Apache & PHP Install ............................................................................................22

2.6.3. Zamong Install.......................................................................................................25

2.7. 프로세스 기동 확인 ................................................................................................. 26

3. ETC ............................................................................................................................................................ 28

3.1. 파일 다운로드 ......................................................................................................... 28

Page 3: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 3 –

1. Zamong 소개

Key Features

Using direct memory access method

Oracle DB 에 액세스하지 않고 직접 메모리 액세스 방식을 사용하여 Oracle DB 내부 상태 (v$sysstat,

v$system_event) 및 엑티브 세션 세부 사항 (v$session, sql-text ..)을 수집합니다. Zamong 에이전트는 SQL 쿼리를

사용하지 않습니다. 메모리에서 매 초 통계 및 세션 세부 정보를 읽습니다.

No load on oracle db and server at all

DB 서버에 연결하지 않으며 SQL 쿼리를 사용하지 않습니다. Direct memory access 방식을 사용함으로써 DB 서버

에 부하없이 Oracle DB 내부 상태 및 엑티브 세션 세부 정보를 추출할 수 있습니다. Direct memory access 방식

은 초당 100 번 이상 수행 할 수 있을 정도로 빠르고 가볍습니다.

Stats and Session details can be extracted in hang state

Oracle DB 가 HANG 상태이거나 서버에 심각한 성능 저하가 발생하여 DB 에 연결된 각 세션에서 쿼리 결과를

받을 수 없는 경우에도 zamong 은 메모리 주소를 참조하기 때문에 DB 에 영향을 미치지 않고 세부 사항을 추출

할 수 있습니다

Page 4: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 4 –

You can analyze oracle instance and sessions at a certain point in the past

추출 된 데이터는 db (mariadb 또는 mysql)에 저장되며 ORACLE DB 내부 상태와 Active Session 상태는

언제든지 1 초 간격으로 분석 할 수 있습니다

Intuitive dashboard for real time monitoring, web-based user interface for analysis

실시간 모니터링을위한 대시 보드, 분석을위한 웹 기반 사용자 인터페이스가 제공되어 DB 상태를 직관적으로 식

별합니다.

Page 5: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 5 –

Other Features

It's Simple, DBA can build the system on his own

시스템에 mariadb (또는 mysql), apache http server + php 가 설치되어 있으면 매우 빠르게 모니터링 시스템을

구축 할 수 있습니다. zamong 설치파일을 다운로드하여 특정 디렉토리에 복사하십시오. 또한 기존 UI 에 관리 웹

페이지를 추가 할 수 있습니다. zamong 웹 기반 사용자 인터페이스의 전체 구조는 매우 간단하므로 DB 모니터

링 환경을 직접 구축하고, 이를 사용하지 않고 이점을 확인하는 데 사용할 수 있습니다. 그리고 약간의 웹 개발

기능이 있다면 zamong 웹 기반 사용자 인터페이스에서 자신 만의 웹 페이지를 추가 할 수 있습니다.

All character set supported

Zamong 프로그램은 Chrome 브라우저에서만 작동합니다. Zamong 프로그램은 엑티브 세션의 SQL 쿼리를 바이

너리로 저장하고 SQL 쿼리 문자열을 브라우저를 통해 봅니다. 따라서 문자 인코딩 - 디코딩은 크롬 브라우저에

서 수행되며 화면에 표시됩니다. Chrome 브라우저에 Chrome Set Character Encoding 확장자를 추가하면 언어 문

자 집합이 포함 된 SQL 문을 올바르게 볼 수 있습니다. (예 : 한국어, 중국어, 일본어 ...)

Just Free

이 제품의 라이센스는 무료입니다. 매년 초 제품키를 홈페이지에서 다운로드 하여 무료로 갱신하실 수 있습니다.

Compared with other solutions

Query-based DB monitoring solutions

쿼리 기반 DB 모니터링 솔루션은 예상치 못한 오류의 위험을 증가시킵니다. 쿼리를 수행하여 오라클 인스턴스

상태 정보와 액티브 세션 정보를 추출하는 방법은 하나의 쿼리를 수행하기 위해 DB 에서 내부적으로 많은 재귀

쿼리를 수행함으로써 수행됩니다. 이러한 재귀 쿼리는 공유 풀에서 래치 경합을 일으킬 수 있습니다.

서버의 쿼리 응답 시간, CPU 사용량, 엑티브 세션 수 등과 같이 이러한 지표가 정상적인 경우 쿼리 기반 DB

모니터링 솔루션이 좋은 아이디어 일 수 있습니다.

그러나 DB 응답 시간이 증가함에 따라 엑티브 세션 수가 증가하고 쿼리 기반 DB 모니터링 방법을 사용하면

공유 풀에서 래치 경합을 더 높일 수 있기 때문에 위험합니다.

Page 6: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 6 –

Oracle Automatic Workload Repository (AWR)

oracle db 가 정지 상태이고 db 서버 성능이 쿼리에 대한 응답을 신속하게 수신하지 못하면 시스템 관리자가

서버를 재부팅하거나 데이터베이스를 다시 시작하여 이러한 문제를 해결했습니다. 이 상황에서 AWR 데이터를

분석하여 실패의 원인에 대한 단서를 찾으면 해당 시점의 데이터가 저장되지 않는 경우가 많습니다.

먼저 DBA 는 AWR 기능을 사용할 때 Diagnostics Pack 라이센스를 구입했는지 확인해야합니다.

이것은 LMS 문제의 중요한 부분입니다.

Oracle Diagnostics Pack license includes the following features

DBMS_WORKLOAD_REPOSITORY package

DBMS_ADDM package

DBMS_ADVISOR package

V$ACTIVE_SESSION_HISTORY dynamic performance view

All views beginning with DBA_ADDM_

All data dictionary views beginning with the prefix DBA_HIST_

(Only Exception List)

DBA_HIST_SNAPSHOT

DBA_HIST_DATABASE_INSTANCE

DBA_HIST_SNAP_ERROR

DBA_HIST_SEG_STAT

DBA_HIST_SEG_STAT_OBJ

DBA_HIST_UNDOSTAT

Oracle AWR 기능을 사용하려면 구두 기업 라이센스와 별도로 oracle database diagnostics pack' 라이센스를

구매해야합니다. oracle database diagnostics pack은 'oracle database enterprise edition' 라이센스로만 구입할 수

있는 추가 라이센스 항목이며, DBA 는 AWR 기능을 사용할 때 진단 팩 라이센스를 구입했는지 확인해야 합니다.

이것은 미래에 발생할 수있는 비용이 많이 드는 문제를 피하는 방법입니다. 그리고 오라클 스텐다드 에디션

제품을 사용하는 경우 AWR 기능을 사용하지 않아야 합니다.

Platforms Supported

Page 7: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 7 –

2. 사용 가이드

2.1. URL 접속

자몽 모니터링은 크롬에서만 지원합니다.

URL 접속방법 -- http://자몽서버 IP 주소

실시간 모니터링(Zamong Dashboard)과 추적(Zamong Clues) 기능 지원

사용 방법

1. DB Alias : 화면상으로 보여질 Database 이름. (오라클서버 Zamong.conf 에 등록한 db_alias 와 동일하게 입력)

2. Description : 추가 코맨트 설정

3. Add -> 하단 List 에 입력한 Database 리스트 추가

Page 8: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 8 –

2.2. Zamong_Dashboard

실시간 모니터링을 지원하는 화면으로써 13 개의 항목에 대한 실시간 성능 모니터링을 지원합니다.

Session Count

토글기능을 지원하며, Total Session 과 Active Session 추이를 보여줍니다.

CPU Util

시스템에서 사용하는 ‘SYS’, 일반 유저가 사용하는 ‘USER’, I/O 발생량을 나타내는 ‘IO’로 구성되어 있습니다.

Page 9: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 9 –

User Calls & Execute Count

User Calls 는 Oracle Call Interface 를 통해 오라클 외부로부터 들어오는 Call 을 말하며, Peek 시간대의 시스템 확

장성을 떨어뜨리는 가장 큰 요인입니다. 과도한 User Calls 발생 시, 맨 하단의 Session Monitoring 혹은 수집된

데이터로 해당 시점을 선택하여 문제 원인의 세션을 추적할 수 있습니다.

Execute Count 는 DML 실행한 횟수로써 CPU I/O, Latch 와 밀접한 관련이 있는 필수적인 모니터링 항목입니다.

갑작스런 Execute Count 의 증가는 CPU 의 부하를 줄 수 있으며, 모니터링 화면에서의 Logical Read, CPU Util 과

관련지어 분석할 수 있습니다.

Session Logical Read & Phycal Reads

Logical Read 는 버퍼캐시를 통해 읽은 모든 데이터 블록을 의미하며 CPU usage 관련 가장 유사한 모니터링 포

인트입니다.

Physical Reads 는 Disk I/O 를 수행한 블록 개수로써 종류로는 Conventional Path, Direct Path 가 있습니다.

보통 100 ~ 200 blocks/sec 속도로 읽기 때문에 지속적인 Physical Reads 는 시스템의 성능저하를 야기할 수 있으

며, 실시간 모니터링으로 Physical Reads 를 유발하는 문제의 SQL 을 추적할 수 있습니다.

Full Scan & Log File Sync

Full Scan 항목에서는 Full table scan 의 대표적 wait event 인 ‘DB File Scattered Read’, SGA 를 거치지 않고 바로

PGA 로 직접 읽어들이게 하는 ‘Direct Path Read’, 정렬작업시 발생하는 대표적 wait event 인 ‘Direct Path Read

Temp’ 를 보여줍니다. 이 항목은 I/O 와 밀접한 관련이 있습니다.

Log Flie Sync 는 일반적으로 User Commit 또는 Rollback시에 수행되는 LGWR 프로세스의 sync write 에 의해 발

생되며, 주로 과다한 Commit 또는 LGWR 프로세스의 I/O 처리속도의 문제로 인해 발생합니다.

이 또한 I/O 와 관련이 있는 모니터링 항목입니다.

Page 10: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 10 –

DB Wait Time (Active Session History)

v$active_session_history 를 통하여 I/O, DB Link, RAC, Latch, Enqueue, Undo, Redo, Hot Block 등 8 개로 Class화하

였으며, DB Wait Time 기반으로 모니터링 할 수 있습니다.

Active Session History By wait Type

v$active_session_history 를 통하여 I/O, DB Link, RAC, Latch, Enqueue, Undo, Redo, Hot Block, Other 등 9 개로

Class화하였으며, Wait Type 별 Session 추이를 모니터링 할 수 있습니다.

Active session history

v$active_session_history 의 wait_class 을 참조하여 Session 추이를 보여줍니다.

I/O : 유저 I/O 대기 (ex. db file sequential read)

Configuration : 데이터베이스 또는 인스턴스 부적절한 구성 (ex. shared pool size, 부족한 logfile size)

Application : application code 에 대한 대기 (ex. Row lock, 혹은 explicit lock)

Cluster : GC 관련 대기 (ex. gc cr block busy)

Commit : 커밋 후 대기 (ex. Log file sync)

Administrative : DBA 명령으로 인한 대기 (ex. index rebuild)

Page 11: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 11 –

Parse Count

Hard Parse Count 는 새로 파싱된 문장의 수를 의미하며, I/O cost 가 많이 드는 작업입니다.

만약, 과도하게 parse count 가 증가했다면, 맨 하단 Session 모니터링과 연계하거나, Clues 기능으로 과거 시간을

추적하여 어느 세션의 SQL 이 hard parsing 을 발생 시켰는지 확인할 수 있습니다. 대표적인 예로 Literal SQL 로

인한 Parse Count 증가가 있습니다.

Session monitoring 및 Session Detail 분기

Active Session 을 실시간으로 모니터링 할 수 있으며, 원하는 세션을 더블클릭하여 세션의 Stat 정보들과 SQL Full

text 를 볼 수 있습니다.

Page 12: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 12 –

2.3. Zamong_Clues Mysql 서버에 저장된 정보를 조회하여 원하는 시간대의 오라클 database 성능 정보를 추적할 수 있습니다.

오라클 DB 에 어떤 문제가 발생되었었다면 그 문제가 발생했던 시점(시분초)을 기준으로 시간을 초 단위로 이동

시키면서 분석할 수 있습니다. 특히 Active 세션의 Wait event 와 Sql, 그리고 V$session 에 나오는 대부분의 정보

가 1 초 단위로 저장되어 있기 때문에 오라클 성능이슈나 장애가 발생되었을 때, 사후에 그 원인을 가장 상세하

게 분석할 수 있는 툴입니다.

오라클의 AWR, ASH 는 모니터링 된 정보를 오라클 내부 DB 에 기록하지만 그 부하를 줄이기 위해 우선 메모리

(v$뷰에 )에 성능 정보를 가지고 있다가 주기적으로 디스크(DBA뷰)에 기록하는 방식입니다.

그래서 서버가 갑자기 재부팅되거나 혹은 DB 가 다운되거나 Restart 되었을 때, 그 원인을 분석하려고 AWR, ASH

를 조회해보면 데이터가 나오지 않아 장애분석하는데 어려울 때가 많습니다.

Zamong Clues 는 바로 사후 분석을 위한 툴입니다.

사용 방법

1. DB Alias, Date 선택, From, To 선택 후 파란색 버튼 클릭

DB Date 항목은 일반적일 때는 사용하지 않지만 아래 케이스에서는 DB Date 값이 필요합니다.

오라클 데이터베이스 서버의 time 과 Zamong 서버의 time 이 ntp 로 동기화 되어 있지 않다면, 날짜가 바뀌는

시점 전/후로 데이터가 차트에 보이지 않을 수 있습니다. 이때 Date 와 DB Date 를 사용합니다.

Date 는 Zamong 서버의 시간이며 와 DB Date 는 오라클 서버의 시간입니다.

예를 들어 오라클 서버에서 2018 년 3 월 15 일 23:59:01 초에 스캔된 정보가 바로 Zamong 서버에 전송돼서 기

록되는데, 그 시점의 Zamong 서버 시간이 다음날인 2018년 3월 16 일 00:00:01 초라라고 가정한다면

Page 13: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 13 –

Date 를 2018년 3월 15 일으로 선택해서 Zamong clues 를 조회해보면 23:59:00까지만 차트에 나타납니다.

이때 Date 를 2018 년 3 월 15 일으로 선택하고 DB Date 를 2018 년 3 월 16 일으로 선택해서 조회해보면 나머지

1 분 데이터를 차트에서 보실수 있습니다.

2. 분석을 원하는 시간 간격( From, To 항목)을 선택할 때, 그 시간 간격을 30 분 이하로 선택하면 차트의 X축이

초 단위로 변합니다. 초단위의 그래프로 변화 추이를 상세하게 볼 수 있습니다.

시간 간격을 30 분 이상으로 선택하면 차트의 X축이 분 단위로 변하고, 각 분에서 최대값이 차트로 그려집니다.

3. 차트에서 분석하고 싶은 범위를 마우스로 drag 하면 오른쪽 range 부분에 drag 로 선택된 시간 간격이

보이고, 이때 Zoom 버튼을 클릭하면 drag 한 부분이 확대되게 됩니다.

이렇게 하면서 시간 간격을 30 분 이하로 drag 하게 되면 X축이 초단위로 변하면서 상세분석이 가능해집니다.

[ Drag : 범위 선택 ]

[ 초 단위로 차트가 확대됨]

Page 14: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 14 –

4. 아래 그림처럼 차트의 라인을 클릭하면 그 시점이 선택되어집니다. 그리고 RUN 버튼을 클릭하면

그 선택된 시간에서 0 초~ 59초 사이의 Aactive 세션 수가 “ACTIVE SESSION DETAILS( 60 seconds )” 차트

영역에 표시됩니다. 아래 그림에서는 19시 05 분이 선택되었습니다.

그리고 “Active session detail “ 항목에는 그 시점(19시 05 분 0 초)의 Active 세션 리스트가 보여집니다.

선택된 시간 부분을 해제할 때는 그 선택된 부분을 더블클릭 합니다. (클릭은 선택, 더블클릭은 해제)

이렇게 세션 분석을 하기 위해 분석할 시간을 선택할 때는 Active session 차트나 Cpu Usage(%) 차트에서

차트가 튀는 부분을 찾아내어 그 부분을 drag 한 후, 점점 확대하면서 찾아들어가는 방법이 좋습니다.

5. 그리고 아래 그림처럼 “ACTIVE SESSION DETAILS( 60 seconds )” 차트를 보면서 가장 부하가 많았던 시점을

찾아냅니다. 아래 그림에서는 28 초 시점이 Active 세션이 많은 것을 확인할 수 있는데, 28 초를 클릭하면

그 시점의 Active 세션을 볼 수 있습니다. 이런 방식으로 시간을 앞/뒤로 이동시키면서 Active 세션의

움직임을 직접 확인하면서 원인을 분석해 나갈 수 있습니다.

6. Active 세션 리스트에서 상세정보를 보고싶은 row 를 클릭하면 세션 상세 정보를 볼수 있는 화면이

팝업됩니다. 선택한 Session 에 대하여 Module, SQL Full Text, Wait detail 등 모든 stat 에 대한 정보를

제공합니다.

Page 15: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 15 –

[ 현재까지 Zamong Clues 는 MAIN 탭까지 만들어진 상황이며, 카테고리별로 지표를 모아놓은 여러 탭의 내용

까지 개발이 끝난다면, 이 툴은 장애 분석에 상당한 도움이 될 것입니다 ]

Page 16: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 16 –

2.4. Zamong Architecture

2.5. Zamong Agent install 서버 환경(예)

자몽 서버 오라클 서버

OS, DB Version CentOS 7.2 / Mysql 5.5 RHEL 6.5 / Oracle 11204

Hostname mysql oracle

IP 172.40.40.199 172.40.40.191

자몽포트 17531 17531

DB 포트 3306 1521

설치항목 MySQL 5.5, PHP, httpd, 자몽서버 프로세스 자몽 Agent

설치파일 mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz

zamong_server_v03.tar.gz

zamong_web.tar.gz

linux_zamong_agent_1120400.tar

Page 17: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 17 –

방화벽 오픈 List

From To 포트

오라클 서버 자몽 서버 17531

사용자 PC 자몽 서버 80

2.5.1. 자몽 Agent 설치

설치파일 전송 및 압축 해제

$tar -xvf linux_zamong_agent_1120400.tar

$cd zamong/

zamong.conf zamong_as zamong_gs zamong_ms zamongctl zamonglic.dat

$pwd

/home/oracle/zamong

zamong.conf 파일 수정

home_dir /home/ora11204/zamong -- 자몽 경로

collector_ip 172.40.40.199 -- 자몽서버(MySQL) IP

collector_port 17531 -- 자몽서버와의 통신 포트

db_alias zamongdb -- 화면출력 DB 이름 (숫자부터 시작하면 안됨)

os_number 2 -- 오라클서버 종류 / AIX : 1, Lunux : 2

oracle_version_number 1120400 -- 오라클서버 버전 / ex) 11204 : 1120400

instance_name ORA11204 -- select Instance_name fron v$instance

db_name ORA11204 -- select name from v$database

OS 가 Linux 일 때 수정사항

OS 가 Linux 인 경우 memory_target 을 사용해서는 안 됩니다.

확인방법 : SQL> show parameter memory_target

memory_target=0 으로 설정되어 있어야 자몽서비스를 이용할 수 있습니다.

만약 Memory_target 이 설정되어 있다면, memory 용량을 고려하여 아래 예시와 같이 설정해주세요

ex) memory_target 이 4294967296 (4g)일 경우

SQL> alter system reset memory_target scope = spfile;

SQL> alter system set sga_target = 3g scope = spfile;

SQL> alter system set pga_aggregate_target = 1000m scope = spfile;

SQL> shutdown immediate ;

SQL> startup

Page 18: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 18 –

2.6. Zamong Server install

2.6.1. Mysql Install

유저생성 및 설치파일 전송

# userdel -r mysql

# useradd mysql -d /mysql

# passwd mysql

>>Mysql 설치파일 전송

필수디렉토리 생성 및 정리

- ROOT 유저

# export DBNM=MySQL

# mkdir -p /mysql/$DBNM

# mkdir -p /mysql/$DBNM/scripts

# mkdir -p /data/$DBNM/

# mkdir -p /data/$DBNM/datadir

# mkdir -p /data/$DBNM/tmpdir

# mkdir -p /data/$DBNM/logdir

# mkdir -p /data/$DBNM/logdir/oldlog

# mkdir -p /data/$DBNM/binlog

# mkdir -p /data/$DBNM/relaylog

# chown -R mysql:mysql /mysql

# chown -R mysql:mysql /data

설치파일 압축해제 및 심볼릭링크 생성

su - mysql

$ ls

MySQL mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz zamong_server_v03.tar.gz zamong_web.tar.gz

$ tar -xvf mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz -C /mysql/MySQL/

$ ln -s /mysql/MySQL/mysql-5.5.59-linux-glibc2.12-x86_64 /mysql/MySQL/instance

Page 19: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 19 –

my.cnf 편집

$ vi /data/MySQL/my.cnf

[mysqld]

port = 3306

socket = /tmp/mysql.sock

basedir = /mysql/MySQL/instance

datadir = /data/MySQL/datadir

tmpdir = /data/MySQL/tmpdir

key_buffer_size = 120M

join_buffer_size = 1M

max_allowed_packet = 32M

concurrent_insert = 2

skip-name-resolve

### Logging options ###

skip_log_bin

general_log = 0

slow_query_log = 1

long_query_time = 2

log_error = /data/MySQL/logdir/error.log

slow_query_log_file = /data/MySQL/logdir/slow.log

general_log_file = /data/MySQL/logdir/general.log

expire_logs_days = 15

bash_profile 수정

export DBNM=MySQL

echo '' >> ~/.bash_profile

echo export DBNM=$DBNM >> ~/.bash_profile

echo export PATH=/mysql/$DBNM/instance/bin:/mysql/$DBNM/xtrabackup/bin:/mysql/$DBNM/toolkit/bin:'$PATH'

>> ~/.bash_profile

echo alias cdmy="'cd /mysql/$DBNM/instance'" >> ~/.bash_profile

echo alias cdsp="'cd /mysql/$DBNM/scripts'" >> ~/.bash_profile

echo alias cddt="'cd /data/$DBNM/datadir'" >> ~/.bash_profile

echo alias cdlog="'cd /data/$DBNM/logdir'" >> ~/.bash_profile

echo alias showerr="'vi /data/$DBNM/logdir/error.log'" >> ~/.bash_profile

source ~/.bash_profile

Page 20: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 20 –

MySQL 데이터베이스 초기화

cdmy

./scripts/mysql_install_db --defaults-file=/data/$DBNM/my.cnf

데이터베이스 접속, 기동, 중지 스크립트 작성

cat > /mysql/$DBNM/scripts/conn.sh << EOF

#!/bin/sh

source ~mysql/.bash_profile

cd /mysql/$DBNM/instance

./bin/mysql -h localhost -u root -p

EOF

cat > /mysql/$DBNM/scripts/startup.sh << EOF

#!/bin/sh

source ~mysql/.bash_profile

cd /mysql/$DBNM/instance

./bin/mysqld_safe --defaults-file=/data/$DBNM/my.cnf &

EOF

cat > /mysql/$DBNM/scripts/shutdown.sh << EOF

#!/bin/sh

source ~mysql/.bash_profile

cd /mysql/$DBNM/instance

./bin/mysqladmin shutdown -u root -p

EOF

데이터베이스 기동

cdsp

sh startup.sh

사용자, 스키마, 권한 초기설정

cdmy

./bin/mysql -h localhost -u root << EOF

update mysql.user set password=password('mysql123');

create database zamong default character set ascii;

grant all privileges on zamong.* to 'mong'@'%' identified by 'aaaaa' ;

grant all privileges on zamong.* to 'mong'@'localhost' identified by 'aaaaa' ;

grant all privileges on zamong.* to 'mong'@'mysql' identified by 'aaaaa' ;

flush privileges;

Page 21: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 21 –

commit;

exit

EOF

자몽유저 접속확인

mysql -u mong -p

Enter password: aaaaa

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 13

Server version: 5.5.59-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Page 22: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 22 –

2.6.2. Apache & PHP Install

Apache Http Server 설치

- 설치 패키지 : httpd-tools, httpd 설치

rpm 이 없는 경우 yum 으로 설치

# yum install httpd

PHP 설치

- 설치 패키지 : libzip-0.10.1-8.el7.x86_64.rpm (없는경우 온라인에서 다운), php-common-5.4.16, php-cli-5.4.16,

php-pdo-5.4.16, php-mysql-5.4.16-36

[root@mysql mysql]# rpm -Uvh libzip-0.10.1-8.el7.x86_64.rpm

경고: libzip-0.10.1-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Updating / installing...

1:libzip-0.10.1-8.el7 ################################# [100%]

[root@mysql Packages]# pwd

/run/media/root/CentOS 7 x86_64/Packages

[root@mysql Packages]# rpm -Uvh php-common-5.4.16-36.el7_1.x86_64.rpm

경고: php-common-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Updating / installing...

1:php-common-5.4.16-36.el7_1 ################################# [100%]

[root@mysql Packages]# rpm -Uvh php-cli-5.4.16-36.el7_1.x86_64.rpm

경고: php-cli-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Page 23: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 23 –

Updating / installing...

1:php-cli-5.4.16-36.el7_1 ################################# [100%]

[root@mysql Packages]# rpm -Uvh php-pdo-5.4.16-36.el7_1.x86_64.rpm

경고: php-pdo-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Updating / installing...

1:php-pdo-5.4.16-36.el7_1 ################################# [100%]

[root@mysql Packages]# rpm -Uvh php-5.4.16-36.el7_1.x86_64.rpm

경고: php-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Updating / installing...

1:php-5.4.16-36.el7_1 ################################# [100%]

[root@mysql Packages]# rpm -Uvh php-mysql-5.4.16-36.el7_1.x86_64.rpm

경고: php-mysql-5.4.16-36.el7_1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

준비 중... ################################# [100%]

Updating / installing...

1:php-mysql-5.4.16-36.el7_1 ################################# [100%]

php.ini 수정

/etc/php.ini

allow_url_fopen = Off

display_errors = Off

magic_quotes_gpc = Off

file_uploads = Off

log_errors = On

error_log = php_errors.log

date.timezone = Asia/Seoul

/etc/hosts 설정

172.40.40.199 mysql

/etc/selinux/config 수정

# vi /etc/selinux/config

SELINUX=disabled

(재기동 필수)

Page 24: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 24 –

/etc/httpd/conf/httpd.conf 수정

(remove "#" and add IP )

#ServerName www.example.com:80

---> ServerName 172.40.40.199:80

(Don't set 'AddDefaultCharset' parameter, add "#" )

AddDefaultCharset UTF-8

----> #AddDefaultCharset

DocumentRoot "/var/www/html/zamong "

User apache

Group apache

Zamong 디렉토리 추가

mkdir -p /var/www/html/zamong

Start HTTP daemon

apachectl start

ps -ef | grep httpd

root 16935 1 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 16945 16935 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 16946 16935 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 16947 16935 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 16948 16935 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 16949 16935 0 14:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

root 16953 7436 0 14:07 pts/0 00:00:00 grep --color=auto httpd

방화벽 해제

# firewall-cmd --permanent --zone=public --add-port=80/tcp -- Apache 포트

# firewall-cmd --permanent --zone=public --add-port=3306/tcp -- MySQL 포트

# firewall-cmd --permanent --zone=public --add-port=17531/tcp -- 자몽 Server 포트

# firewall-cmd --reload -- 방화벽 오픈 적용

# firewall-cmd --list-ports --오픈된 방화벽 확인

3306/tcp 80/tcp 17531/tcp

* 3 개의 방화벽 포트 오픈 확인

Page 25: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 25 –

Check test web page ( php + MySQL )

# vi /var/www/html/zamong/test.php

<?php

define('__HOST__', '172.40.40.199');

define('__DATABASE__', 'zamong') ;

define('__PORT__', 3306 );

define('__USER__', 'mong');

define('__PASSWORD__', 'aaaaa');

$conn = mysqli_connect(__HOST__, __USER__, __PASSWORD__ ,__DATABASE__ , __PORT__ );

if ( !$conn )

{ echo "db connection fail: ERROR " . mysqli_connect_error() ;

exit ;

}

else

{

echo "db connection success" ;

exit ;

}

?>

접속 URL : http://172.40.40.199/test.php

db connection success 출력 확인

*selinux 적용 후 서버 재기동을 했다면, MySQL, httpd 다시 기동해야 합니다.

2.6.3. Zamong Install

zamong_server_v03.tar.gz 파일 전송, 압축 해제, zamongservet.conf 수정

[MySQL 계정]

$ tar -xvf zamong_server_v03.tar.gz

home_dir /mysql/zsvr -- 자몽 홈 경로

zamong_listen_port 17531 -- MySQL 포트넘버

db_server_ip 172.40.40.199 -- MySQL IP

db_connect_user mong -- MySQL

string_for_connection aaaaa -- MySQL 비밀번호

db_connection_port 3306 -- MySQL Port

database_name zamong -- MySQL db name

table_check_interval 180 -- 테이블 체크 빈도(sec) / default = 180

Page 26: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 26 –

zamong_web.tar.gz 파일전송, 압축해제, config.php, connectdb.php 수정

[Root 계정]

tar -xvf zamong_web.tar.gz -C /var/www/html -- /var/www/html 경로 압축해제

vi /var/www/html/zamong/config.php

<?php

define('__HOST__', '127.0.0.1'); -- 자몽서버 IP

define('__DATABASE__', 'zamong') ; -- 자몽서버 이름

define('__PORT__', 3306 ); -- Mysql 포트

define('__USER__', 'mong'); -- 자몽 유저

define('__PASSWORD__', 'aaaaa'); -- 자몽 유저 패스워드

define('__SOCKET__', '/tmp/mysql.sock' ); -- MySQL 소켓경로 -- 주석해제

?>

vi /var/www/html/zamong/connectdb.php

// $conn = mysqli_connect(__HOST__, __USER__, __PASSWORD__ ,__DATABASE__ , __PORT__ ); -- 주석처리

$conn = mysqli_connect(__HOST__, __USER__, __PASSWORD__ ,__DATABASE__ , 0 , __SOCKET__ ); -- 주석해제

2.7. 프로세스 기동 확인 프로세스 기동 확인

자몽서버 Mysql 기동 확인.

[mysql@mysql zsvr]$ ps -ef |grep mysql

mysql 1981 1 0 14:18 pts/0 00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/data/MySQL/my.cnf

mysql 2268 1981 0 14:18 pts/0 00:00:03 /mysql/MySQL/instance/bin/mysqld --defaults-

file=/data/MySQL/my.cnf --basedir=/mysql/MySQL/instance --datadir=/data/MySQL/datadir --plugin-

dir=/mysql/MySQL/instance/lib/plugin --log-error=/data/MySQL/logdir/error.log --pid-file=mysql.pid --

socket=/tmp/mysql.sock --port=3306

* mysql 기동중지 스크립트 위치 : /mysql/MySQL/scripts

자몽서버 프로세스 기동 확인

[mysql@mysql zsvr]$ ./zamongsvrctl start

Starting zamong_svr process. Please refer to the zamong_server.log file for detail

USER PID PROCESS

mysql 7158 zamong_svr

* 하나의 프로세스 출력되면 정상

Page 27: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 27 –

자몽서버 httpd 서비스 기동 확인

[mysql@mysql zsvr]$ ps -ef |grep httpd

root 1812 1 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1863 1812 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1864 1812 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1865 1812 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1866 1812 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1867 1812 0 14:17 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 1916 1812 0 14:18 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 2286 1812 0 14:18 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 2287 1812 0 14:18 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

apache 2288 1812 0 14:18 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND

오라클서버 자몽 Agent 기동 확인

[ora11204@ORA11204 zamong]$./zamongctl start

Parameter home_dir is '/home/ora11204/zamong'

Starting zamong_gs process. Please refer to the zamong_gs.log file for detail

Wait ..

Starting zamong_as process. Please refer to the zamong_as.log file for detail

Wait for checking

zamong_gs: process (pid) 7268 for ORA11204

zamong_as: process (pid) 7272 for ORA11204

zamong_ms: starting

USER PID COMMAND

ora11204 7272 zamong_as

ora11204 7268 zamong_gs

ora11204 7372 zamong_ms

* 3 개의 프로세스 출력되어야 정상

Page 28: 기술노트[72회-부록] 자몽 소개 및 설치 가이드 - Goodus · 2018-08-10 · - 4 – You can analyze oracle instance and sessions at a certain point in the past 추출

- 28 –

3. ETC

3.1. 파일 다운로드

MySQL

MySQL 공식 홈페이지 : https://dev.mysql.com/downloads/mysql/5.5.html?os=src

자몽 다운로드

자몽 공식 홈페이지 : http://www.zamongsoft.com/download.php