반응형

Warning: Using a password on the command line interface can be insecure.

출처 : http://xinet.kr/tc/341


확인 필 : http://myblog.opendocs.co.kr/archives/1591


이렇게 해도 난 뜨는것 같은데...ㅠㅠ

다시 해보기로....



Using a password on the command line interface can be insecure

 mysql 5.6 버전으로 올라가면서 패스우드 정보를 쉘 상태에서 입력하게 되면 위와 같이 에러 메세지가 발생된다 
(실제 에러 메세지가 아닌 경고 메세지이다 )

그럼 이 메세지를 나오지 않게 구성하려면 어떻게 해야 하나?

mysql 5.6 버전에 새로 생긴 mysql_config_editor 툴을 이용하여 로그인 파일을 저장해 놓고 해당 파일을 옵션으로 지정하여 사용

1. 파일 생성하기

[root@localhost ~]# /usr/local/mysql/bin/mysql_config_editor set --login-path=xinet --host=localhost --user=xinet --password
Enter password: (암호입력)

2. 암호화 파일 확인
 암호화 파일은 /root 폴더에 존재한다. 파일 이름은 .mylogin.cnf

이 파일은 암호화 되어 있어서 그냥은 볼수 없다 

그러면 등록된 user가 어느 유저인지 확인하는 명령어가 따로 있다

[root@localhost ~]# /usr/local/mysql/bin/mysql_config_editor print --all
[xinet]
user = xinet
password = *****
host = localhost


3. 접속하기

[root@localhost ~]# /usr/local/mysql/bin/mysql --login-path=/xinet -e "\s"
--------------
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.6.22, for Linux (x86_64) using  EditLine wrapper
Connection id:          1004
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.6.22-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 1 hour 38 min 28 sec
Threads: 125  Questions: 2906400  Slow queries: 0  Opens: 1532  Flush tables: 1  Open tables: 112  Queries per second avg: 491.943


이렇게 확인할수 있다 

4. 로그인 정보 특정 유저 삭제하기

[root@localhost ~]# /usr/local/mysql/bin/mysql_config_editor remove --login-path=xinet


이제 응용해서 만들어보면 되겠다. 


반응형
반응형

아는만큼 보인다고..

나는 서버만 구성완료 하고 정작 제대로 되는지를 알지 못해서

뻘짓을 하고 있었다.


Zabbix 모니터링 중 Last 20 issues 에서 Zabbix agent on Zabbix server is unreachable for 5 minutes 라는 문구가 떠 있는것을 확인 하였다.


하지만 난 단순히 Zabbix server is running 이라고 되어 있어서 운용이 되는 줄 알았다.


전혀 Agent 와 통신을 못하고 있었던 것이다.


만약 Zabbix 서버가 다른곳에 있었으며, 해당 서버와 현재 Agent 와 통신을 하는 것이었다면 오히려 운용이 되었을 수 있다.

하지만 그게 아니었기에 내 서버는 지금 모니터링이 안되고 있었던 것이다.


이 말이 무엇이냐하면...


우리가 Agent 를 설치한 후 vi /etc/zabbix/zabbix_agentd.conf 를 수정하게 된다.


여기서 Server 부분을 수정하게 된다.



나는 현재 127.0.0.1 로 자신을 바라보게 되어 있다.

(만약 Zabbix Server와 Agent가 다른곳에 되어 있다면..대부분 다 그렇겠지만...해당 Zabbix Server IP를 작성하게 된다)


이후, zabbix 웹페이지에서 추가 수정 시 맞춰서 작성해 줘야 한다.



이 부분은 어디까지나 내가 테스트한 환경에 의한 것이고,

수정이 필요한 부분이다.


이 부분을 해결하고 나면 어떠한 에러도 나지 않을 것이다.


반응형
반응형

Zabbix 설치 중에 yum으로 install 에서 에러가 발생하는 경우가 있다.


첫번째 실패 후 기존 테섭이 아닌 신규 서버에 설치를 해서 Zabbix 를 설치 하였다.


이 후, 3버전에 설치하기 위해서 기존 테섭에 설치를 진행을 시도 중 동일한 에러를 찾았고

이번에는 너무 쉽게 해결했다...(기존에는 3시간 넘게 찾다가 포기했는데...ㅠ 오늘은 10분만에 해결..ㅠ)


먼저 사이트 공유

https://www.zabbix.com/forum/archive/index.php/t-41058.html



 yum install zabbix-server-mysql zabbix-web-mysql


여기서 첫번째 설치는 넘어간다.

하지만 두번째 zabbix-web-mysql 에서 에러가 생긴다.


...
---> Package net-snmp.x86_64 1:5.3.2.2-25.el5_11 set to be updated
--> Processing Dependency: libsensors.so.3()(64bit) for package: net-snmp
---> Package php-common.x86_64 0:5.1.6-45.el5_11 set to be updated
---> Package php-pdo.x86_64 0:5.1.6-45.el5_11 set to be updated
---> Package php53.x86_64 0:5.3.3-26.el5_11 set to be updated
--> Processing Dependency: php53-cli = 5.3.3-26.el5_11 for package: php53
--> Processing Dependency: php53-common = 5.3.3-26.el5_11 for package: php53
---> Package php53-bcmath.x86_64 0:5.3.3-26.el5_11 set to be updated
---> Package php53-gd.x86_64 0:5.3.3-26.el5_11 set to be updated
---> Package php53-mbstring.x86_64 0:5.3.3-26.el5_11 set to be updated
---> Package php53-xml.x86_64 0:5.3.3-26.el5_11 set to be updated
---> Package unixODBC.x86_64 0:2.2.11-10.el5 set to be updated
---> Package zabbix.x86_64 0:2.2.13-1.el5 set to be updated
--> Running transaction check
---> Package lm_sensors.x86_64 0:2.10.7-9.el5 set to be updated
---> Package php53-cli.x86_64 0:5.3.3-26.el5_11 set to be updated
---> Package php53-common.x86_64 0:5.3.3-26.el5_11 set to be updated
--> Processing Conflict: php53-common conflicts php-common
--> Finished Dependency Resolution
php53-common-5.3.3-26.el5_11.x86_64 from updates has depsolving problems
  --> php53-common conflicts with php-common
Error: php53-common conflicts with php-common
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
....


여러 뻘짓을 다했지만 아래와 같이 진행하면 끝!!


[root@devDB:/root]#  yum remove php php-common php-cli

Loaded plugins: fastestmirror

Setting up Remove Process

No Match for argument: php

Loading mirror speeds from cached hostfile

 * base: ftp.kaist.ac.kr

 * extras: ftp.kaist.ac.kr

 * updates: ftp.kaist.ac.kr

Package(s) php available, but not installed.

No Match for argument: php-common

Package(s) php-common available, but not installed.

No Match for argument: php-cli

Package(s) php-cli available, but not installed.

No Packages marked for removal

[root@devDB:/root]#

[root@devDB:/root]#

[root@devDB:/root]# yum install php53

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: ftp.kaist.ac.kr

 * extras: ftp.kaist.ac.kr

 * updates: ftp.kaist.ac.kr

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package php53.x86_64 0:5.3.3-26.el5_11 set to be updated

--> Processing Dependency: php53-cli = 5.3.3-26.el5_11 for package: php53

--> Processing Dependency: httpd-mmn = 20051115 for package: php53

--> Processing Dependency: php53-common = 5.3.3-26.el5_11 for package: php53

--> Processing Dependency: httpd for package: php53

--> Running transaction check

---> Package httpd.x86_64 0:2.2.3-91.el5.centos set to be updated

---> Package php53-cli.x86_64 0:5.3.3-26.el5_11 set to be updated

---> Package php53-common.x86_64 0:5.3.3-26.el5_11 set to be updated

--> Finished Dependency Resolution

....


지우고 다시 설치다....하지만 난 저것도 해봤는데 안되었을까....


어쨋든 해결했다.ㅠ


반응형
반응형

난 CentOS 6.6 에 설치를 진행 하였다.


또한 어쩌다가 보니 Zabbix 2.2 로 설치를 진행하였다.(의도한 것은 아니다;;;;;)


설치 페이지는 잘 나와 있으며 의외로 심플하다.


아래 사이트를 참고하면 정말 쉽게 설치 할 수 있을 것이다.

https://www.zabbix.com/documentation/2.2/manual/installation/install_from_packages


또한 설치 전에 MySQL이 설치되어 있어야 하며, Script 를 제대로 보진 않았지만, MySQL 5버전 이상을 설치가 되어 있어야 한다.

테스트 서버는 3버전이 설치되어 있는데...문법에서 여러에러가 생기는 것을 확인하였다.


한번 3버전에 설치를 다시 진행해 볼 예정이다.


어쨋든 위의 사이트를 참고하는 것이 어떤 블로그를 보는것보다 쉬울것으로 예상된다.

반응형
반응형


Zabbix 에 대해 설치해 보았다.

마음 같아서는 개발 서버에(mysql 이 멀티로 엄청 올라가 있기에 테스트가 좋음...) 올리고 싶었지만 안올라가더군...


가장 찾기 힘들다고 생각하는 rpm 호환성에서...


그래서 설치가 제 1차 목적이기에 VM에 설치하여 보았다.


정말 yum으로 설치하니....너무 편했다....소스로 설치하고 싶지만...정보가 부족하기에...ㅠ


여기에 문제가 발생하였다.


Zabbix Server is running 에서 Value 값이 No라고 나온 것을 확인 가능하다


검색해 보니 conf 파일들에 대해서 127.0.0.1 로 변경하라고 해서 해 봤지만, 전혀 해결이 되지 않았다.


혹시 나처럼 문제가 있는 사람들은 conf 파일들을 수정하기 전에 먼저 방화벽 을 확인해 보기 바란다.


vi /etc/sysconfig/iptables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT


를 우리는 가장 많이 확인한다.


물론 여기에도 추가를 해 놔야 하지만..(난 이미 추가를 해 봤지만 안되었다.)


여기서 우리는 웹페이지를 제공받고 그 해당 웹페이지를 통해서 본다.


즉, 웹페이지 관련 방화벽도 확인해 봐야 한다!


vi /etc/sysconfig/ip6tables


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT


service ip6tables restart


를 한 후 확인하면 어느새 아래와 같이 Yes 가 된 것을 확인 할 수 있다.



이제 이것저것 확인해 봐야겠다.

반응형
반응형

이주일 넘게 야근에 주말 출근에 많이 바빴다.

파이썬 스크립트 대공사 / Php 스크립트 대공사...


하아....먼저 이 모든걸 6개월에 만든 DBA 분께 존경심과 함께 그 분이 신경 못쓰고

하드 코딩들을 많이 바꿨다.


이제는 거의(완벽하다고는 할수 없겠지..누군가 보면 욕할수도 있기에) 수정할 일 없도록 내가 전체적으로

다 변경했다....


대략적으로 DB에 기본적인 정보들을 저장할 수 있도록 테이블을 구성했다.

하지만 기본적으로 머리에 있었던 부분의 정리와, 앞으로 공유되어야 할 데이터들이 있어야 하기에 테이블을 하나 구성하더라도

많은 부분 정리가 필요하다.


공부하다 보면, 제1 ,2 정규화..반정규화 등등...정규화 과정이라고 거창하게 쓰고 최대한 내 입맛과 스크립트 입맛에 맞춰 구성...!!!


이후에 스크립트들에 대해서 수정을 진행한다.


물론 수정전에 수정되어야 하는 스크립트에 대한 분석들이 필요하겠지만...


필요한 데이터들을 내가 구성한 테이블에서 읽어들여 for문을 이용하여 list로 된 것들을 하나씩 호출하여

진행....이 것이 내가 수정한 것의 핵심이자 전체이다.


이렇게 파이썬 스크립트 10개 정도 수정..


이 후 Php로 만들어진 웹페이지도 이렇게 수정을 진행했다.


비록 간단한거지만 이렇게 안하면 하나의 신규 또는 수정이 진행되면 전체 다 수정을 해야되는 불상사가 발생하기 때문에

이렇게 내가 바꾼거다...


하지만 회사 사람들은 잘 모르겠지....씨밤바


누굴 위해서 한건 아니지만 적어도 이렇게 리뉴얼 한 거를 간단히 보는게 짜증이 난다...


에휴///얼릉 그동안 계획하고 못한 것들을 진행해야겠다. 

그래도 새로운 것을 배우면 즐겁긴 하다-ㅎㅎㅎㅎ

반응형

'Life' 카테고리의 다른 글

[20160927] 공부해야 될 내용  (0) 2016.09.27
지난 추석 인사  (0) 2016.09.20
필요 테스트 및 공부해야 될 내용  (0) 2016.07.04
누군가에게 제안하기 전에..  (0) 2016.07.01
블로그의 의미  (0) 2016.03.14
반응형

1. 모니터링 툴 사용

Cacti

https://www.percona.com/doc/percona-monitoring-plugins/1.0/cacti/mysql-templates.html


Cacti를 이용한 MariaDB/SkySQL/MySQL 모니터링 서버 구축

http://www.openseed.co.kr/14


모니터링 및 튜닝 포인트

http://www.mimul.com/pebble/default/2012/05/16/1337154545185.html


Zabbix

https://www.zabbix.com/documentation/2.2/manual/installation/install_from_packages


여러 템플릿 유명 Percona


https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html


한글문서(블로그)

잘 정리 되어있음

http://zabbix.dothome.co.kr/doku.php/manual


https://www.3rabbitz.com/f01c33e7d8367da2#3120fd12b877e962

http://www.joinc.co.kr/w/Site/QOS/Monitering_Tool/zabbix


http://www.programkr.com/blog/MkDMwEDMwYT3.html


http://oops-myblog.blogspot.kr/2015/04/zabbix.html


http://www.slideshare.net/ienvyou/zabbix-installation-configurationguide


정리되어 있지않지만 많은 정보

http://blog.naver.com/PostView.nhn?blogId=junix&logNo=80192164926




2. 빅데이터 관련하여 참고

Memcached

http://php.net/manual/kr/book.memcached.php

http://www.solanara.net/solanara/memcached

http://dev.mysql.com/doc/refman/5.7/en/ha-memcached.html

http://d2.naver.com/helloworld/151047


Redis


Redis 가 Memcached 보다 더 좋다는 비교글

http://blog.leekyoungil.com/?p=200


Redis Cluster 

http://cafe.naver.com/mysqlpg/1143


RedisConf 2016

https://www.youtube.com/playlist?list=PL83Wfqi-zYZHtHoGv3PcGQA3lvE9p1eRl


http://ojava.tistory.com/70


공부해야 될게 많구나-ㅋㅋ

반응형

'Life' 카테고리의 다른 글

지난 추석 인사  (0) 2016.09.20
요즘 근황 16.07.15  (0) 2016.07.15
누군가에게 제안하기 전에..  (0) 2016.07.01
블로그의 의미  (0) 2016.03.14
[16.01.12] 뭐가 더 옳은 걸까..  (0) 2016.01.12
반응형
MySQL Replication(복제)

MySQL Replication(복제)  개나 2 이상의 MySQL database server(slave) 하나의 MySQL database server(master) 부터 데이터를 복제해   있는 기능을 제공한다.

MySQL Replication 비동기 방식으로 처리된다 slave master로부터 데이터를 받아 복제하기 위해 항상 master 연결되어 있을 필요가 없다.

 

MySQL Replication Binary logging mechanism 사용하여 이뤄진다.

Master 서버는(MySQL 인스턴스) binary log 변경된 데이터 정보를 기록하며  log slave 읽어서 실행함으로써 복제가 된다.

 

Master에서 binary logging 활성화되면 Master 모든 데이터 구문이 bindary log 저장되며 slave bindary log 모든 내용을 복사해서 읽어온다.

따라서 slave log 파일내의 position 유지할 필요가 있다그래야 로그파일 전체를 처음

부터 읽지 않고 효과적으로 로그 파일을 운영할  있다.

여기서 position 로그파일내 위치를 의미하며 어느 부분부터 읽겠다는 것을 의미 한다.

 

Configuration 따라 다음과 같은 단위로 복제가 이뤄질  있다.

l  all database

l  selected database

l  selected tables within a database

 

 

 

Replication 구성  – Appendix A.


 

Replication Configuration

 

[ Master Configuration ]

1.  Replication User 생성
slave
 master 접속하여 데이터를 복제하기 위한 MySQL 계정이 필요하다. root 사용해도 상관 없지만 slave Replication 설정을 하면(slave configureation 참조) 계정 정보가 암호화되지 않은 텍스트 형태로 slave 서버의 master.info(mysql\data) 파일에 기록이 되기 때문에 보안상 root 기타 계정을 사용하는 것을 권하지 않는다따라서 복제를 위한 계정을 하나 생성한다.
 계정은 단지 REPLICATION SLAVE Privilege 있으면 되므로 다음과 같이 계정을 생성한다.(REPLICATION SLAVE Privilege 있으면 된다는 의미는 INSERT/UPDATE 등과 같은 Privilege 필요 없다는 의미이다따라서 복제 계정은 mysql query실행을  없다.)

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass';

è  repl 계정이며 slavepass 계정의 비밀번호 이다.

è  %대신 IP주소를 넣으면  IP로부터 접속하는 slave 대해서만 접속을 허용하겠다는 의미(그냥 % 사용하자..!)

n  ) ….. ON *.* TO 'repl'@'1.1.1.2' IDENTIFIED BY 'slavepass';

 

2.  Configuration 설정(my.ini 또는 my.cfg)

[mysqld]

log-bin=mysql-bin

server-id=1

è  server-id 1~(2^32)-1내의 숫자중 아무것이나 설정해도 된다.

è  log-bin=mysql-bin는 바이너리 로그파일의 생성경로이며 log-bin만 기입시 기본 디렉토리에 생성된다.

3.  MySQL 데몬 재시작

 

4.  Master 정보 보기

mysql> FLSUSH TABLES WITH READ LOCCK;

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |       98   |                 |                     |

+------------------+----------+--------------+------------------+

è  File : 로그 파일을 의미한다.

è  Position : 로그 파일내 읽을 위치

è  Binlog_Do_DB : binary log 파일(변경된 이벤트 정보가 쌓이는 파일)

è  Binlog_Ignore_DB : 복제 제외 정보

n  Binlog_Do_DB Binlog_Ignore_DB Slave 시작하기 전까지는 나타나지 않는다.


 

[ Slave Configuration ]

1.  Configuration 설정

[mysqld]

server-id=2

replicate-do-db=’database name’


# master-host=xxx.xxx.xxx.xxx  --> 마스터의 IP

 master-user=xxxx  --> 리플리케이션용 ID

 master-password=xxxx  --> 패스워드

 master-port=3306  --> 접속할 포트번호 (일반적인 포트 3306)

è  slave server-id 정의한다 1~(2^32)-1내의 숫자중 아무것이나 설정해도 되나 Master와는 다르게 한다.

è  replicate-do-db: 복제할 데이터베이스를 의미한다.

n  2 이상의 데이터 베이스 복제를 원하면 replicate-do-db  추가한다.

 

2.  database dump

복제할 데이터베이스를 master로부터 dump하여 넣는다.

 

3.  CHANGE MASTER TO

Master 연결하기 위한 정보를 다음과 같이 설정한다.

mysql> CHANGE MASTER TO

MASTER_HOST='Master server host name or Master server IP',

MASTER_USER='replication user',

MASTER_PASSWORD='replication password',

MASTER_LOG_FILE='Log File name',

MASTER_LOG_POS=position;

è  MASTER_HOST: Master 서버의 정보를 입력한다.

è  MASTER_USER: replication 위해 생성한 계정 ID

è  MASTER_PASSWORD: replication 위해 생성한 계정 비밀번호

è  MASTER_LOG_FILE: SHOW MASTER STATUS에서 보이는 로그 파일 

è  MASTER_LOG_POS: SHOW MASTER STATUS에서 보이는 position

n  SHOW MASTER STATUS master에서 실행해야 한다.(master 설정 참고)

 

4.  MySQL 데몬 재시작

 

 Slave 실행이 되면(MySQL 데몬 시작 또는 slave start) master 접속하기 위한 정보를 master.info(mysql\data)에서 읽어 온다만일 master.info 아무런 정보가 없으면 my.ini 참고하여 master.info 연결정보를 기록한다.

여기서 주의할 점은 이미 master.info 정보가 있으면 my.ini 참조하지 않으므로 my.ini정보를 수정해도 master 연결시 반영되지 않는다.

그러나 CHANGE MASTER TO 이용하면 master.info 바로 변경한다.

따라서 master 연결정보는 my.ini 설정하는  보다는 CHANGE MASTER TO 이용하여 설정하는게 낫다.

 

다음과 같은 option CHANGE MASTER TO에서 사용된다.

master-host

master-user

master-password

master-port

master-connect-retry

master-ssl

master-ssl-ca

master-ssl-capath

master-ssl-cert

master-ssl-cipher

master-ssl-key

 

 

 

[양방향 동기화 처리]

Master서버에서 Slave 구현하고자 한다면 다음과 같은 방법으로 처리

1. 현재 Slave서버에 replication 계정 생성

2. 현재 Slave my.ini 변경

log-bin=mysql-bin 추가

3. 현재 SLAVE 서버 데몬 재시작

4. 현재 Master my.ini 변경

replicate-do-db=’database name’추가

4. 현재 Master에서 CHANGE MASTER TO 실행

5. 현재 Master 서버 데몬 재시작

 

 


 

Replication Monitoring

//ON Master

mysql> SHOW PROCESSLIST\G

*************************** 1. row ***************************

Id: 11

User: repl

Host: 192.168.1.22:3556

db: NULL

Command: Binlog Dump

Time: 21960

State: Has sent all binlog to slave; waiting for binlog to be updated

Info: NULL

Slave 192.168.1.22 repl계정으로 thread11 연결되어 있음을 보여준다.

 

 

//On Slave

mysql> show processlist\G

*************************** 1. row ***************************

     Id: 1

   User: system user

   Host:

     db: NULL

Command: Connect

   Time: 23049

  State: Waiting for master to send event

   Info: NULL

*************************** 2. row ***************************

     Id: 2

   User: system user

   Host:

     db: NULL

Command: Connect

   Time: 4294967289

  State: Has read all relay log; waiting for the slave I/O thread to update it

   Info: NULL

Id 1: Master 서버와 통신하기 위한 I/O Thread

Id 2: update 내용을 처리하기 위한 SQL Thread

 2개의 Thread 오류가 발생하면 안된다.

 

 

mysql> show slave status\G;

*************************** 1. row ***************************

             Slave_IO_State: Waiting for master to send event

                Master_Host: 192.168.1.14

                Master_User: repl

                Master_Port: 3306

              Connect_Retry: 60

            Master_Log_File: mysql-bin.000004

        Read_Master_Log_Pos: 9187563

             Relay_Log_File: shin-relay-bin.000013

              Relay_Log_Pos: 9187700

      Relay_Master_Log_File: mysql-bin.000004

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

            Replicate_Do_DB: ipm3

        Replicate_Ignore_DB:

         Replicate_Do_Table:

     Replicate_Ignore_Table:

    Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

                 Last_Errno: 0

                 Last_Error:

               Skip_Counter: 0

        Exec_Master_Log_Pos: 9187563

            Relay_Log_Space: 9187700

            Until_Condition: None

             Until_Log_File:

              Until_Log_Pos: 0

         Master_SSL_Allowed: No

         Master_SSL_CA_File:

         Master_SSL_CA_Path:

            Master_SSL_Cert:

          Master_SSL_Cipher:

             Master_SSL_Key:

      Seconds_Behind_Master: 0

Slave_IO_State: 현재 Slave 상태를 나타낸다.(Appendix B 참고)

Slave_IO_Running: I/O Thread 상태

Slave_SQL_Running: SQL Thread 상태

Last Error: 최근에 발생한 오류정상인 경우  값은 없다.

Seconds_BeHind_Master:  값이 크면 클수록 Master로부터 복제할  없는 데이터가 많음을 나타낸다.

 

 

mysql> stop slave

mysql> start slave

MySQL 데몬(서비스)  시작하면 slave 자동으로 시작된다.(my.ini 옵션 skip-slave-start 있으면 자동 시작 안한다.)



[기타 알아두어야 할 내용]

1. 안정성을 위해서 두대의 DB서버의 버전을 동일하게 맞추어 주는것이 좋다.

2. 버전이 다른경우 높은 버전은 Slave 만 가능하다.

3. 서버는 Master 를 먼저 시작한 후 Slave를 시작시킨다.

4. Master의 status 에 지정된 File 이외의 로그파일은 삭제해도 무방하다.

5. Master의 status의 Position과 Slave status의 Read_Master_Log_Pos는 동일해야 한다.

6. 서버환경, 계정이 바뀐후에는 데이터 디렉토리안의 master.info를 변경하거나 제거한 후 재시작을 해야한다.

7. Master의 Replication로그나 Slave의 relay-bin로그는 vi로는 읽을수 없으며 아래와 같은 방법으로 변환후에 읽을 수 있다.


# mysqlbinlog KRDAC1FLD001-relay-bin.000002 > log.sql

8. Insert 이후 Slave 동기화 도중 데이터 조회가 이루어 져야 하는 상황에는 해당 경우만 Master DB에서 보게 하거나 process 종료 후 sleep 타임을 잠시주어 해결하면 된다



1. 구성도



MySQL 리플리케이션은 이중화의 역할 보다는 부하 분산의 역할을 한다고 볼 수 있다. 이 구성은 데이터베이스의 데이터를 갱신(입력/수정/삭제 등) 및 조회(검색 등)하는 비율에 따라 도입 유무를 판단 할 수 있다. 물론, MySQL 리플리케이션 도입에 가장 이상적인 서비스는 대형 포털 사이트와 같은 조회형 서비스에 적합하다.


2. 슬레이브 서버 별로 데이터 분산



MySQL 리플리케이션에서 슬레이브 서버마다 데이터를 동일하게 가져갈 수 있지만 이처럼 각각의 데이타를 가지고 있을 수 있다. 이와 같이 데이터를 나눠 주는 이유는 부하 분산의 차원이다.


3. 이중마스터 서버



MySQL 리플리케이션에 이중 마스터 서버 구성으로 하는 이유는 슬레이브 서버로 인한 마스터의 서버의 부하를 분산하는 차원이다. 여기서 마스터2 서버는 각 슬레이브에 대해서 마스터 서버의 역할을 수행하긴 하나 마스터1 서버에 대해서는 슬레이블 서버의 역할을 하고 있다.


4. 장애 대처



MySQL 정상적인 서비스가 진행 중이다. 평시에는 슬레이브 서버 중 하나를 백업용으로 활용하는 것도 좋다.


5. 장애복구



MySQL 리플리케이션 서비스 중에 마스터 서버에 장애가 발생하였다면, 슬레이브 서버 중 하나를 마스터 서버로 전환을 하여 서비스를 정상적으로 복구 할 수 있다. 추후 장애가난 마스터 서버가 정상화 되면 슬레이브 서버 중 하나로 역할을 수행하게 만든다.



출처 : http://hanaduri.egloos.com/2389708



반응형
반응형

어쩌면 당연한 말일 수 도 있지만..


어느 누군가에게(여기서는 직장 상사) 좋은 성능을 낼 수 있는 방안 등을 제안하기 전에,


해당 부분을 미리 진행한 후 그것을 토대로 성능 비교 등의 문서와 함께


제안을 하는 것이다.



그 동안 나는 주로 제안하기 전에 제안서? 문서 등을 만든 후 여기에는 여러 공식 자료 또는 테스트 결과서들 (내가 테스트한 자료가 아닌)

등을 첨부하여 제공하였다....


하지만 이런 부분이 잘못됬다는 것은 아니지만,

그래도!!!먼저 현재 우리 시스템에 대해 테스트한 결과를 제공한다며...


그것이 더 효율적이다 라는 것이다....


습관이 중요한 듯 하다.

습관으로 만들자...

반응형

'Life' 카테고리의 다른 글

요즘 근황 16.07.15  (0) 2016.07.15
필요 테스트 및 공부해야 될 내용  (0) 2016.07.04
블로그의 의미  (0) 2016.03.14
[16.01.12] 뭐가 더 옳은 걸까..  (0) 2016.01.12
2016 병신년 늦은 새해 인사  (0) 2016.01.06
반응형

우연히 NGinX 에 대해 잠시 접할 기회가 생겼다.


물론 이제는 조금씩 블로그에 포워딩이 될 듯 하고 나 또한 이번 기회에 견문을 넓힐 수 있는 기회가 되었으면 좋겠다.

(이정해 과장님 감사요..!!)


아래는 나무위키에서 소개하는 내용이다.



2002년부터 러시아의 프로그래머 이고르 시쇼브(Игорь Сысоев)가 Apache(아파치)를 코딩하다 Apache의 C10K 문제[1]를 보고 이를 극복하면서 네이티브 Win32환경에도 돌아갈 무설치 웹 서버 프로그램에 대한 개발을 시작하여 2004년 스푸트니크 1호 발사일에 발표한 오픈소스 서버 프로그램. 현재 이고르 시쇼브와 그가 설립한 회사인 Nginx Inc.가 이 프로젝트를 운영중에 있다. 목표는 가벼우면서도 강력한 프로그램이라고... HTTP와 리버스 프록시, IMAP/POP3등의 서버를 구동가능하다. 


읽을때는 엔진엑스라고 읽는다. 역사가 그렇게까진 오래되진 않아서 점유율 면에서 Apache에게 많이 밀린다. 하지만 신규서비스를 중심으로 점유율에 가속이 붙는 중이며, 이미 Apache가 여러가지면에 한계를 많이 보였으므로 특별히 큰 사유가 없다면 nginx로 갈아타는 추세다. 다만 확장 모듈이 Apache에 비해 적다는 것이 흠인데, 어차피 Apache의 이 많은 확장 모듈을 제대로 쓰는 사람은 드물다. 오히려 쓰지도 않으면서 괜히 덕지덕지 리소스만 낭비하는 모듈이 대부분이다. 따라서 호환성 확인 후 별다른 문제가 없다면 Nginx로 갈아타는 것이 현추세. 이미 필수적인 모듈은 Nginx에도 존재하고 그중 몇개는 Apache보다 50배 이상 빠르다(...) 마이크로소프트에게는 GUI관리가 쉬운 IIS에 밀리지만, 이쪽은 취향과 돈의 문제라서 1:1 비교가 힘들다.


구조적으로는 Apache에서 사용하는 스레드/프로세스 기반 구조 대신 비동기 이벤트 기반 구조를 가진다. 이로 인해서 서버 부하시 성능 예측이 쉽다. 덤으로 이로 인하여 10000개의 동시 접속을 하면 그 10000개에 드는 메모리 점유는 2.5MB다(....) 사용하는 리눅스 웹서버의 경우 LAMP(Linux + Apache + MySQL + PHP or Python or Perl)대신 LEMP를 쓴다. Nginx는 여러 서드파티 기능들(SSL, GeoIP등)을 모듈로 덧 붙이는 방식을 쓰고 있으며, 그래서 모듈을 쓰지 않을 경우 제외해 놓을 수 있다, 단, 소스 컴파일시 모듈을 추가하지 않으면, 그 이후에 추가가 안되지만...


Nginx는 현재 HTTP/2.0을 발빠르게 지원하려고 하고 있다. 아마 HTTP/2.0 보급화를 계기로 콩라인 획득(2등 위치)을 목표로 하는 듯하다. 그동안 콩라인은 IIS. 


Nginx를 사용하면서 conf 설정[2]을 바꿀때는 재시작 할필요 없이 reload를 하면 된다. 즉, 프로세스를 재시작 할 필요가 없다는 점이 있다.


넷크래프트의 2013년 1월 웹서버 조사에서, 조사한 사이트중 점유율 3위를 차지[3]하였으며, 아마존닷컴 웹 서비스(AWS)에서는 44%이상의 점유율로 1위, 활동적인 웹 서버중 3위[4]를 차지했으며, 이 속도라면 잘 나가는 사이트쪽에선 콩라인 획득 가능할듯 보여진다.

출처 : https://namu.wiki/w/Nginx#fn-6



다음은 NGinX 에 대한 설명해주는 곳이다.

앞으로 여기서 참고하면서 설치 및 간단한 예제를 만들어 볼 예정이다.


https://opentutorials.org/module/384/3462


그리고 여기는 간단하게 Apach와 NGINX 에서 php 사용 벤치 마크한 소개글이다

http://www.theorganicagency.com/blog/apache-vs-nginx-performance-comparison/


출처 : http://www.theorganicagency.com/blog/apache-vs-nginx-performance-comparison/


더 많은 정보는 아래에서 확인해 보면 좋을 듯 싶다.


http://openwiki.kr/tech/nginx


http://dkatlf900.tistory.com/32


http://blog.grotesq.com/post/414

반응형

'NGINX' 카테고리의 다른 글

[NGINX] php 연동 (Access denied.) & mysql 연동  (0) 2016.08.12
[NGinx] 설치 간단 정리  (0) 2016.08.05

+ Recent posts