DB 이중화 maxscale 관련 질문 입니다.

DB 이중화 maxscale 관련 질문 입니다.

QA

DB 이중화 maxscale 관련 질문 입니다.

본문

안녕하세요.

 

이번에 그누보드로 작업된 사이트를 서버 이전하면서 

 

2대의 웹서버와 2대의 DB서버로의 이중화 작업을 해야 한다고 해서 문의드립니다. 

 

디비 이중화에는 maxscale을 사용한다고 하고 그에 대한 설치는 업체에서 별도로 진행하고 있습니다. 

 

제가 소스를 반영할때 

 

각각의 웹서버에서 DB서버를 연결할때 두개의 DB에 순차적으로 연결을 하고 

 

마스터 DB가 죽으면 바로 슬레이브 디비로 연결하게 해야한다고 하는데 

 

그누보드에서 DB연결 부분에서 어떻게 소스를 수정하면 되는지 몰라서 질문하게 되었습니다. 

 

관련 작업 경험있으신분들께 조언을 부탁드립니다. 

 

이 질문에 댓글 쓰기 :

답변 2

기본 그누보드에서 db정보는 data/db.config.php 파일입니다.

해당 파일의 db접속정보를

/common.php 파일에서 연결하게되는데,

그 접속을 시도 후 실패를 하면, db.config2.php 파일을 불러오게해서

다른 db에 붙을수있게 하면되지않나 싶습니다.

답변 감사합니다.
db.config파일을 별도로 만들어서 관리하는게 부담스러워서 같은 파일에 세컨트 상수를 지정하고
첫번째 디비가 연결할때 두번째 디비에 연결을 시도하는쪽으로 변경해보았습니다.
아래와 같은 형태로 수정이 되면 되는걸까요?..
아직 db셋팅이 되지 않아서 테스트는 못해보고 질문을 또 드리게 되네요..

//원본소스
$connect_db = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD) or die('MySQL Connect Error!!!');

//수정소스
$connect_db = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD);
if(!$connect_db){
        $connect_db = sql_connect(G5_MYSQL_HOST2, G5_MYSQL_USER2, G5_MYSQL_PASSWORD2) or die('MySQL Connect Error!!!');
}

maxscale에서 vip를 제공해주지 않나요? maxscale이 하는 역할이 ha-proxy같은거라 보통 vip로 관리하는데. 개별 서버로 접근하는거면 답변글에서 그누위즈님 적으신방법도 글쓴이님이 생각하신 방법도 괜챦은 방법이네요. maxscale+galera-cluster 구성에선 클라이언트는 걍 서버쪽 vip로 보내고 내부 클러스터 서버 설정에서 check(rr,lc,hash 등과 주기,AA나 AB구성 등등) 관련 설정을 건드려 최적화를 합니다.

또한 select나 insert 쿼리도 서버 단위로 또는 서브 그룹단위로 각각 나눠 실행하게 해줄수도 있습니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT