MySQL 멀티 마스터 구현

   조회 4989   추천 0    

MySQL 엔터프라이즈 사용중입니다.
고가용성을 위해 MHA를 이용하였습니다.
(DB는 쇼핑몰 DB입니다.)

잘 운영되고 있고, 별 문제가 없는데..
향후 트래픽이 더 많아진다면 문제가 될 수 있으니 대비하자고 합니다.

그러니까.. read는 MHA의 slave에서 읽으면 되니 부하 분산이 되기는 합니다만..
문제는 write죠. 여러 대의 마스터를 구현하자고 하는데.. (read 뿐만 아니라 write 까지요.)

이제 질문입니다.

1. (MHA를 걷어내도 됩니다.) MySQL의 멀티마스터(read, write 모두)를 구현하기 위한 방법이나 솔루션이 무엇일까요? 되기는 할까요?

2. (높은 확률로, 되긴 되어도 권장하지 않는다고 말씀하실듯 한데..) 멀티마스터(read, write 모두)를 권장하지 않는다고 어떻게 말하면 좋을까요? (비용적 문제, 데이터 정합성 문제 등)

대략의 개념만 짚어주시면, 그 다음은 제가 알아서 연구하고 알아보고 하겠습니다.

첫 시작을 어디에서 할 지 잘 모르겠어서 말이죠..

짧은글 일수록 신중하게.
언젠가는 2021-10
1. 멀티 마스터는 가능합니다. mysql이면 percona 솔루션이 가장 유명합니다.
서버당 천~5천만원/년 정도 나옵니다. 대신 전화하면 잘 지원해주고 원하면 덤프떠서 정확히 뭐가 문제인지도 알려줍니다 (이전에 stored procedure에 메모리 릭이 있었는데 그거까지 다 파악해서 주더군요) 데이터 정합성도 잘 됩니다. percona가 전용 백업솔루션까지 해주는데라서 믿을수 있습니다.

2. 다만 예상하신것처럼 별로 권장하지는 않습니다. 비용적, 데이터 정합성 문제도 있지만, 데이터베이스/테이블이 멀티마스터를 써야 할만큼 커지면 여러가지 문제가 따라서 생깁니다 (예를들면 데이터 파일, 인덱스가 너무 커지거나, 메모리를 너무 먹는다거나...). 따라서, 개별 데이터베이스/테이블을 적당한 사이즈로 관리할수 있는 파티셔닝/샤딩/ddd으로 접근하시는게 더 바람직합니다. 적당한 사이즈가 되면 멀티마스터 안쓰고도 쉽게 확장 가능합니다.
     
아마데우쓰 2021-10
답변 고맙습니다.
percona 솔루션을 알아봐야겠습니다.
percona 솔루션을 담당하는 국내 업체가 있습니까?
percona 홈페이지를 가 보니, 아시아는 '인도' 밖에는 연락처가 없네요.
혹시 추천할 만한, percona 솔루션을 담당하는 국내 업체가 있다면, 소개 부탁드립니다.
          
언젠가는 2021-10
아... 국내업체는 모르겠습니다. 전 미국쪽이랑 직접 계약했었습니다.
               
아마데우쓰 2021-10
답변 정말 고맙습니다~
얼마전 마리아DB에서 웨비나 메일이 날라와서 보고 넘긴게 있는데
MariaDB XPAND 라는 서비스가 있는것 같습니다. 관련 있는지 한번 보세요..
https://drive.google.com/file/d/1PSawHK-d_H20FVk76v30wV3mGimempt0/view
https://drive.google.com/file/d/1Hpv6WB3P3Fmt6JbdpxR52eLwXt1W_URV/view
https://mariadb.com/ko/products/enterprise/xpand/
     
아마데우쓰 2021-10
정보 고맙습니다.
한 번 살펴보겠습니다.
     
HA 용으로 괜찮은거 같았습니다. 갈레아 클러스터를 사용해서 만들어진 제품으로 알고 있습니다.
DAP박인호 2021-10
MySQL MMM 검색어로 검색하시면 많은 자료를 얻을 수 있습니다.
그런데 쇼핑몰 DB면 부하가 커져도 멀티마스터까지 고려할 정도는 되지 않을 것 같은데...
Index 설계 잘하고 주기적으로 쿼리 튜닝해주고
부하가 많은 BO 관리 쿼리만 따로 slave 가져가면 충분할 것으로 보입니다.
     
아마데우쓰 2021-10
저도 잘 관리하면 별 문제 없을것 같은데..
'향후 대처'에 대해서 이야기가 나와서 그런 것입니다..
ㅠ.ㅠ
술이 2021-10
트랜잭션과 관련없는 게시판 형태의 DB라면 상관없는데 데이터 정합성 요구되거나 그런거라면 멀티마스터 사용 못합니다.
DB서버 이중화는 클러스터를 권장하고 부하는 분산보다는 리소스를 여유있게 늘려주는게 1순위입니다.
MSSQL이라면 저런 고민할게 없는데 MySQL은 엔터프라이즈 용도로 사용하기에는 리스크가 많이 큽니다.

그리고 쇼핑몰이라고 하니까 쇼핑몰은 대부분의 아키텍쳐는 WAS단 앞단에 분산트랜잭션을 갖고 있고 DB는 최종 커밋되는 데이터만 가져가는 구조로 되어 있습니다. DB가 트랜잭션을 가져가버리는 구조라면 사용자 많아질때는 안봐도 뻗을거 같네요.
     
아마데우쓰 2021-10
저도 이 말씀에 동의합니다.
고맙습니다~
민사장 2021-10
구글에 이렇게 쳐보세요 mysql active-active


QnA
제목Page 1824/5709
2014-05   5152113   정은준1
2015-12   1686598   백메가
2018-11   4193   죠슈아
2019-01   4193   탁영길
2017-12   4193   송현우
2016-07   4193   눈팅돌이
2015-11   4193   먼나라이웃…
2014-02   4193   Won낙연
2018-02   4193   진혼
2018-07   4193   인연
2017-05   4194   전요셉
2016-10   4194   초코우유
2016-07   4194   AplPEC
2015-07   4194   Nicoffeine
2020-02   4194   장동건2014
2019-08   4194   구형활용가
2015-12   4194   김상민
2015-05   4194   refreshair
2016-08   4194   wdm42
2014-08   4194   이기적충동
2017-10   4194   아리시마
2016-01   4195   임종균