It may not be safe to bootstrap the cluster from this node. It was not the last one to leave th..

mariadb 테스트 중에 위와 같은 오류가 나서 찾아봤다. 


3대에 galera 설정해서 클러스터 구성하여 사용 중이었다. 


centos7 mariadb 10 사용 중.


다른 서버들은 모두 정상 가동 중이었고, 한 대만 문제가 발생한 상태.


netstat -na | grep 3306으로 포트를 확인하니 죽어있고 


systemctl start mariadb로 재가동이 안되어


systemctl status mariadb.service로 확인하니 위와 같은 에러가 발생한 상태.


설치된 폴더 (/var/lib/mysql)로 가서 


galera.cache, grastate.dat 파일을 삭제 후 재시작하니 정상 가동됨. 


두 파일은 시스템이 갑자기 문제가 생기면서 mariadb 프로세스가 죽으면서 미처 삭제 못한 temp 파일 인 듯.



mariadb와 galera를 사용하여 클러스터 구성하는데 두 번째 node부터 실행이 안되서 찾아보니 포트가 다 안열린 것!


http://galeracluster.com/documentation-webpages/firewallsettings.html


3306 : mysql client connections 을 위한 포트

4567 : UDP와 TCP 둘 다 사용하는 Galera Cluster  복제 트래픽, 다중 복제를 위한 포트

4568 : Incremental State Transfer(변경된 상태 전송) 를 위한 포트

4444 : State Snapshot Transfer(전체 상태 전송) 를 위한 포트



Donor (제공자) : 원래 데이터를 가진 기준 노드

Joiner (가입자) : Donor로부터 데이터를 제공받는 노드


Donor에 Joiner가 최조로 접속하면 SST를 통해 전체 복제가 진행된다. 이후 IST를 통해 변경된 데이터들이 전송된다.


기존적으로 rsync를 사용하는데 속도는 빠르지만 Donor의 blocking 시간이 길어 병목이 발생할 수 있다. 

그 외 mysqldump(이름의 뉘앙스처럼.. 엄청 느림!!)와 xtrabackup(속도가 빠르지는 않지만 Donor의 blocking 시간을 줄여준다.)이 있다.



(원문) https://mariadb.com/products/mariadb-maxscale


MariaDB MaxScale을 활용한 유연한 확장성, 고 가용성 그리고 좋은 가변성 DB 서비스


MariaDB MaxScale은 오픈소스이며, DB 중심의 Proxy로 이 제품은 MariaDB Ent/Ent-Cluster, MariaDB 5.5, MariDB 10 그리고 Oracle MySQL에서 작동한다. 이 제품은 유연한 증설과 사용자 추가 기능이 가능하도록 설계된 장착형(Pluggable)으로 설계되어 있다. 가볍고, 빠른 속도 networking core로 처리량을 극대화할 수 있게 제작되었다.MariaDB MaxScale은 클라이언트 제품과 DB 클러스터간의 연결이 가능하고, statement-based 부하분산이 가능하다. 이 제품은 DBA들과 개발자, 그리고 정보 설계자들의 의견을 쉽게 적용할 수 있도록 조직의 DB 하부구조에 대해서 규모를 조절할 수 있도록 되어 있다.


규모조정 (Scalability)

이 제품은 제품의 코드를 변경하지 않으면서도 당신의 DB 하부구조의 규모 조정을 도와준다. MaxScale은 MariaDB Galera Cluster, MariaDB Master-Slave Replication,  그리고 Oracle MySQL Server Replication 위해 연결 기반구조와 성명 기반의 부하분산을 제공한다. 


고가용성(High Availability)

이 제품은 당신에게 계획적이든 계획적이지 않은 연결 중단 동안  downtime이 발생하지 않도록 한다.


개발자 친화적(Developer Friendly)

당신이 MaxScale을 배포할 때도(?), 당신이 제품 재생산 혹은 코드의 변화없이 같은 연결을 통해  당신의 제품이 지속적으로 작동할 수 있도록 해준다.


성능좋은 변환 서비스(Powerful transformative services)

MaxScale의 장착형 설계는 당신의 제품에 변형을 하지 않고도 고유한 DB 서비스의 생성이 가능하다. 이 제품의 확장가능한 설계는 MariaDB Ent유저들에게는 잘 알려진 커뮤니티 맴버들에 의해 만들어진 새로운 플러그인을 활용할 수 있다. 


이 제품의 1.0 버전에 포함된 플러그인 서비스들은 아래와 같은 제품이 있다.


* Continuity during migration : 오래된 제품을 지원하는 쿼리를 변경하면서, 서비스 중단 없이 비동기적으로 제품을 이관할 수 있다.

* Security : 문제가 될만한 쿼리를 차단한다.

* Monitor Query Performance : 병목현상이 발생하는 쿼리를 기록하고 정의한다.

* Cross technology processing : DB, 저장엔진 혹은 제품에 쿼리를 복재한다. 잘 알려진 NoSQL DB나 InnoDB와 같은  트랜젝션 저장 엔진에 데이타를 보낸다.


우리의 유저들을 포함한 이미 개발된 고유의 서비스들에 대한 예


* High Performance Binlog Relay : 통신부하와 복구문제를 해결하기 위한 간단한 전달 서버로 MaxSacle을 통해 master에서 slave로 Binlog를 복제한다. 

* Hint based routing : 복제 혹은 사간 제한에 기반하는 경로를 결정에 영향을 줄 내용들을 SQL내용에 담아 전달한다.   

* Route to sharded databases : 분산 개요(sharding schema)를 위한  제품 단계의 정보 없이 분산할 수 있는 경로 처리

* Hardened Active-Active multi-master replication : 다중 master  구조로 deadlock 상태가 발생하지 않도록 최적화한 Galera 다중 마스터 연결.

* Geo-Replication : MaxScale을 이용한 지리적으로 분산된 데이타 센터들에 복제하는 다중화 고 가용성 클러스터




(원 출처)http://www.skysql.com/blogs/max-mether/mysql-56-vs-mariadb-100


지원하는 기능들에 대해서 잘 정리되어 있어 공유해둠.



10.0.2가 릴리즈되면 지금 쓰는 mysql5.6을 대체할 예정이었는데 좀 더 고민 중.


mariaDB에 innoDB의 memcached plugin이 아직 존재하지 않는 듯.


빨리 지원되어야 할텐데... 

+ Recent posts