* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요
기존 test1(master), test2(slave) 운영중 test2가 master로 변경된 상황에서
변경된 master 서버에 접속하지 못하여 slave 상태인 test1이 localhost db에 접속하여 read/only로만 운영되었습니다.
방화벽 문제가 의심되어
테스트를 위하여 양 서버에 모두 방화벽을 설정하여 cubrid에서 사용하는 port를 허용하지 않았더니
동일한 증상이 보이는 것을 발견했습니다.
이에따라 조치를 취할 예정이나
다만 master/slave 간에 health check 방법이 궁금합니다.
cubrid_ha.conf에 설정된 59901 포트로 확인을 하는 것으로 알고있었으나
방화벽 오픈하지 않아도 master server가 내려가면 fail-over가 되더군요.
방화벽이 서로 막혀있어도 cubrid status hb 명령으로 확인하면 master/slave가 변경되는걸 확인 할 수 있습니다.
master/slave health check는 어떤방식으로 진행되는지 알고 싶습니다.
기본적으로 상대 노드가 5회정도 (약 15초) 응답이 없는 경우 네트워크 환경등으로 고려해서 자신 노드가 master가 되려고 노력합니다.
방화벽을 통한 차단을 포함해서 네트워크 단절인 경우 split brain 현상이 발생할 수 있습니다.
cubrid status hb으로 master/slave 정보를 파악할 수 있으면, 59901 포트가 방화벽에 오픈된 상태라고 보시면 됩니다.
master와 slave를 role chain와 현 상황에서 서비스를 하시려면 https://www.cubrid.com/qna/3826455 에 댓글을 참조해주세요.