CentOS 6.5에 Maria DB 10.1.9 설치 및 Galera Cluster 구성
*cent os 장비 초기설정시 필수 참고
1. Cent OS 설치 및 최초 구성
- /etc/resolv.conf 수정(yum안될경우)
nameserver 8.8.8.8
nameserver 8.8.4.4
- yum 업그레이드
#yum -y upgrade
- Group과 User 추가, 만료 해제
#useradd -U mysql
#chage -E -1 -I 0 -m 0 -M 99999 mysql
2. 필요 패키지 설치
yum install perl-Time-HiRes
yum install perl-DBI
yum install nc
yum install nmap
- MariaDB 설치
1) #vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.1.9/centos6-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
2) #yum update
3) #yum -y install MariaDB-client MariaDB-server MariaDB-devel
- 삭제시 : # yum remove mysql mysql-server
4) xtrabackup 설치(galera 복제 방식 및 백업시 사용)
#yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
#yum install percona-xtrabackup-22
5) dependency 설치
#yum install wget (없으면 설치)
#wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/socat-1.7.2.4-1.el6.rf.x86_64.rpm
#yum install socat*
#yum install openssh-clients (파일복사)
6) 설정파일 셋팅(huge, 4G이상)
// 환경파일 백업
# cp /etc/my.cnf /etc/my.cnf.org
// 환경파일 대체 --- X
# cp /usr/share/mysql/my-innodb-heavy-4G.cnf /etc/my.cnf
- 추가 설정 및 튜닝(대용량)
default-character-set = utf8
max_connections = 1000
max_connect_errors = 1000
max_heap_table_size = 1024M
read_buffer_size =20M
read_rnd_buffer_size = 64M
thread_concurrency =16
query_cache_size = 256M
default-storage-engine = InnoDB
tmp_table_size = 256M
innodb_buffer_pool_size = 10G
innodb_log_file_size = 1G
max_allowed_packet = 64M
3. MariaDB Galera 설정
1) 서비스 등록(부팅시 시작) 및 서비스 시작
- #chkconfig --add mysql
- #chkconfig --levels 235 mysql on
- #service mysql start
- #/etc/init.d/mysql start (service mysql start 동일)
2) root 패스워드 생성 (모든 노드)
- #/usr/bin/mysqladmin -u root password 'password'
3) 계정 생성(모든 노드)
- #grant all privileges on *.* to 'root'@'%.%.%.%' identified by 'password';
- * 만약에 grant 권한이 부여가 안될경우 >> GRANT USAGE ON *.* TO 'root'@'%.%.%.%' WITH GRANT OPTION;
4) mysql 종료
- #/etc/init.d/mysql stop
4. MariaDB Galera 기동
- 최초 기동시에만 옵션(붉은색) 입력, Donor Node 1번이 아닐때 실행될경우 데이터 삭제 위험
- DB시작후 내용 확인
- *초기화 > SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address;
- mysql> show status where Variable_name like '%wsrep%';
wsrep_cluster_conf_id 1
wsrep_cluster_size 1
wsrep_ready ON
wsrep_incoming_addresses 192.168.0.1:3306
2) 기동순서 2번 Node
- 그냥 시작
- service mysql start
wsrep_cluster_conf_id 2
wsrep_cluster_size 2
wsrep_ready ON
wsrep_incoming_addresses 192.168.0.1:3306, 192.168.0.2:3306
3) 모든 Node 기동 후 재확인(wsrep_incoming_addresses가 마지막 노드와 동일하게 표시되야함)
-------------------------------------------------------------------------------------------------------------
마스터 노드 셧다운으로 싱크가 깨졌을때
------
시작하려고하고있는 노드와 기동 된 노드 사이에 불일치가 발생하고있는 것으로 알려졌다.
이미 시작된 노드가 정의에서 시작하고있는 노드의 데이터는 관계없이 다음을 실행하면 시작있다.
로그 파일과 데이터의 상태를 제거
------
[특정 노드의 전체 데이터 수동 동기화]
* node2 가 Cluster에서 분리된 이후에 Update되어 데이터가 node1, node3 에 비해 지나치게 상이한 경우의 조치(초기화)
* 아래 과정대로 하면 node1, node3로부터 전체 데이터에 대해 동기화(mysqldump, xtrabackup, rsync 등 방법도 있음)
root@ubuntu14-pv2:~# rm -rf /var/lib/mysql/*
root@ubuntu14-pv2:~# rm -rf /var/log/mysql/*
root@ubuntu14-pv2:~# mysql_install_db
------------------시작이 안될때(권한문제)
chown mysql.mysql /var/lib/mysql
chmod 0775 /var/lib/mysql
root@ubuntu14-pv2:~# service mysql start --wsrep_cluster_address='gcomm://'
root@ubuntu14-pv2:~# mysql_secure_installation
root@ubuntu14-pv2:~# mysql -uroot -pmaria
MariaDB [(none)]> grant all on *.* to 'root'@'%' identified by 'maria';
MariaDB [(none)]> grant usage on *.* to sst_user@'%' identified by 'maria';
MariaDB [(none)]> grant all privileges on *.* to sst_user@'%';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
root@ubuntu14-pv2:~# service mysql stop
root@ubuntu14-pv2:~# vi /etc/mysql/conf.d/mariadb.cnf
...
# Galera Node Option
wsrep_node_name='galera2'
wsrep_node_address='10.0.10.2'
wsrep_cluster_address = 'gcomm://10.0.10.1,10.0.10.2,10.0.10.3' <== Uncomment
# wsrep_cluster_address = 'gcomm://' <== Comment out
wsrep_sst_receive_address=10.0.10.2:4569
...
root@ubuntu14-pv1:~# service mysql start
* Stopping MariaDB database server mysqld [ OK ]
* Starting MariaDB database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
출처: http://bryan.wiki/246 [Barracuda MemoLog]
'Lecture > Maria DB' 카테고리의 다른 글
[xtrabackup] 백업 및 복원 (0) | 2016.05.25 |
---|---|
샤딩/파티셔닝 (0) | 2016.05.19 |
[replication] master - slave 싱크 깨질때 대처 (0) | 2015.10.22 |