1). cmake 설치
# yum -y install gcc*
# cd /usr/local/src
wget 소스다운로드 경로
# tar xzvf cmake-2.8.5.tar.gz
# cd cmake-2.8.5
# ./bootstrap
# make && make install
2). JDK 설치
mysql-cluster는 jdk를 사용하기 때문에 해당 패키지를 다운받아 설치해준다 (oracle 홈페이지에서 다운받을 수 있다.)
# wget 패키지 다운로드 경로
설치전에 기존버전 삭제 후 설치해준다.
# yum -y remove java
# rpm -ivh jdk-8u77-linux-x64.rpm
설치된 JDK 버전을 확인해봅니다.
# java -version
3 ) MySQL Cluster 설치
MySQL을 구동하고 관리할 계정을 생성합니다.
# groupadd -g 400 mysql
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql
문서 작성일 (2016.3.29) 기준 가장 최신버전인 MySQL Cluster 7.4.10을 다운로드 받아 설치합니다.
# wget http://download.softagency.net/MySQL/Downloads/MySQL-Cluster-7.4/mysql-
cluster-gpl-7.4.10.tar.gz
# tar xvzf mysql-cluster-gpl-7.4.10.tar.gz
# cd mysql-cluster-gpl-7.4.10
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306
# make && make install
4 ) DB 생성 및 기본보안 설정
# cp -arp scripts/mysql_install_db /usr/local/mysql
# cd /usr/local/mysql
# rm -rf data
# perl ./mysql_install_db --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
# chown -R mysql:mysql /usr/local/mysql
# chown -R mysql.mysql /usr/local/mysql/data
(MGM 서버에서는 config.ini 파일 생성)
# cp share/mcc/tst/example_config.ini /etc/config.ini
(DATA & SQL 서버에서는 my.cnf 파일 생성)
# cp support-files/my-default.cnf /etc/my.cnf
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chown root.root /etc/init.d/mysqld
# chkconfig --add mysqld
# chmod 711 /usr/local/mysql
# chmod 700 /usr/local/mysql/data
# chmod 751 /usr/local/mysql/bin
# chmod 750 /usr/local/mysql/bin/*
# chmod 755 /usr/local/mysql/bin/mysql
# chmod 755 /usr/local/mysql/bin/mysqldump
3. 설정
MGM 서버와 DATA & SQL 서버의 설정 방식이 다릅니다.
주의해서 해당 서버에 맞게 설정하시기 바랍니다.
1) MGM 서버
# vi /etc/config.ini
[NDBD DEFAULT]
NoOfReplicas: 2 // Cluster 내 저장된 테이블에 대한 복사본 수
DataDir: /usr/local/mysql/data
FileSystemPath: /usr/local/mysql/data
DataMemory: 600M // 데이터를 저장할 물리적 메모리 용량
IndexMemory: 100M // 인덱스를 저장할 물리적 메모리 용량
BackupMemory: 64M
[MGM DEFAULT]
PortNumber: 1186
DataDir: /usr/local/mysql/data
[NDB_MGMD]
NodeId: 1 // NodeId 는 NDBD, API 를 포함하여 유일한 번호로 설정해주어야 함
HostName: 192.168.56.11 // MGM 서버 IP
ArbitrationRank: 1
[NDBD] // DATA 서버(NODE) 섹션
NodeId: 2
HostName: 192.168.56.12 // DATA 서버 IP
[NDBD]
NodeId: 3
HostName: 192.168.56.13 // DATA 서버 IP
[API] // SQL 서버(NODE) 섹션
NodeId: 12
HostName: 192.168.56.12 // SQL 서버 IP
[API]
NodeId: 13
HostName: 192.168.56.13 // SQL 서버 IP
2 ) DATA & SQL 서버
# vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.56.11 // MGM 서버 IP
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
socket=/tmp/mysql.sock
[mysql_cluster]
ndb-connectstring=192.168.56.11 // MGM 서버 IP
[mysql]
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
4. 구동
구동 방법 또한 MGM 서버와 DATA & SQL 서버가 다릅니다.
주의해서 해당 서버에 맞게 구동하시기 바랍니다.
전체적인 데몬 구동 순서는 'MGM 서버 > DATA 서버 > SQL 서버(MySQL)' 입니다.
1) MGM 서버
# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --initial
참고로 중지 방법은 아래와 같습니다.
# /usr/local/mysql/bin/ndb_mgm -e shutdown
2 ) DATA & SQL 서버
DATA 데몬 (NetworkDatabase) 구동
# /usr/local/mysql/bin/ndbd -c 192.168.56.11:1186
2016-03-29 16:21:33 [ndbd] INFO
2016-03-29 16:21:33 [ndbd] INFO
-- Angel connected to '192.168.56.11:1186'
-- Angel allocated nodeid: 12
SQL 데몬 구동
# /etc/init.d/mysqld start
5. 확인
구동이 잘 되고 있는지는 MGM 서버에서 명령어를 통해 확인이 가능합니다.
# /usr/local/mysql/bin/ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.56.12 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0, *)
id=3 @192.168.56.13 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.56.11 (mysql-5.6.28 ndb-7.4.10)
[mysqld(API)] 2 node(s)
id=11 @192.168.56.12 (mysql-5.6.28 ndb-7.4.10)
id=12 @192.168.56.13 (mysql-5.6.28 ndb-7.4.10)
이제 클러스터링 동작 여부를 확인하기 위해 DATA & SQL 서버에 접속하여 아래와 같이 DB 및 table
생성을 해봅니다.
# mysql -p
mysql> create database cloudv;
mysql> use cloudv;
mysql> create table example (id int) engine=ndb;
테이블을 직접 생성하지 않은 또다른 DATA & SQL 서버에서 테이블 생성 여부를 확인하면 됩니다.
* 주의 사항
cluster 사용시 단 한가지 주의할 점은 테이블이 반드시 ndb 타입이어야 클러스터링이 됩니다.
(MyISAM, InnoDB 는 동기화되지 않음)
'Mysql' 카테고리의 다른 글
mysql 설치 후 실행시 libmysqlclient.so가 없다고 할때 (0) | 2016.08.30 |
---|---|
mysql 비밀번호 설정 (0) | 2016.08.30 |
mysql 동시 접속자수 설정 (0) | 2016.08.30 |
mysql 외부접속 설정 방법 (0) | 2016.08.30 |
DB 백업 및 복구 (0) | 2016.08.30 |