Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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 소개 및 설치 가이드
- 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
- 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 에 영향을 미치지 않고 세부 사항을 추출
할 수 있습니다
- 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 상태를 직관적으로 식
별합니다.
- 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 모니터링 방법을 사용하면
공유 풀에서 래치 경합을 더 높일 수 있기 때문에 위험합니다.
- 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
- 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 리스트 추가
- 8 –
2.2. Zamong_Dashboard
실시간 모니터링을 지원하는 화면으로써 13 개의 항목에 대한 실시간 성능 모니터링을 지원합니다.
Session Count
토글기능을 지원하며, Total Session 과 Active Session 추이를 보여줍니다.
CPU Util
시스템에서 사용하는 ‘SYS’, 일반 유저가 사용하는 ‘USER’, I/O 발생량을 나타내는 ‘IO’로 구성되어 있습니다.
- 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 와 관련이 있는 모니터링 항목입니다.
- 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)
- 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 를 볼 수 있습니다.
- 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 초라라고 가정한다면
- 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 : 범위 선택 ]
[ 초 단위로 차트가 확대됨]
- 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 에 대한 정보를
제공합니다.
- 15 –
[ 현재까지 Zamong Clues 는 MAIN 탭까지 만들어진 상황이며, 카테고리별로 지표를 모아놓은 여러 탭의 내용
까지 개발이 끝난다면, 이 툴은 장애 분석에 상당한 도움이 될 것입니다 ]
- 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
- 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
- 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
- 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
- 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;
- 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>
- 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%]
- 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
(재기동 필수)
- 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 개의 방화벽 포트 오픈 확인
- 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
- 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
* 하나의 프로세스 출력되면 정상
- 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 개의 프로세스 출력되어야 정상
- 28 –
3. ETC
3.1. 파일 다운로드
MySQL
MySQL 공식 홈페이지 : https://dev.mysql.com/downloads/mysql/5.5.html?os=src
자몽 다운로드
자몽 공식 홈페이지 : http://www.zamongsoft.com/download.php