본문 바로가기
Mysql

mysql-cluster 설치

by ohrohi 2016. 8. 30.
반응형

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