Background Image

FORUM

조회 수 13431 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요.


8.2.2로 데이터베이스 2대로 HA 구성하여 운영 중 문의 사항이 있습니다.


DB1 - Master role

DB2 - Slave role


로 운영 중 네트워크 문제로 DB1의 접속이 이뤄지지 않을 시 DB1 이 unknown이 되어 DB2가 Master 로 role 이 변경되어

문제없이 운영되고 있습니다.


문제는 네트워크 장애 사항이 해결되어 DB1이 다시 연결될 때 발생되고 있습니다.


DB1의 일시적인 네트워크 장애가 해결되어 다시 연결될 때

서버 및 데이터베이스 구동이 계속 이뤄지고 있다가 다시 연결되어


DB1 - Master role (Priority 1)

DB2 - Master role (Priority 2)


위와 같은 상태로 다시 연결이 되었습니다.


이때, DB1이 Master role로 동작하고 DB2가 Slave로 전환되지 않고 서비스가 종료되고 있습니다.


해당 상황일 경우 DB2가 Slave로 자동 전환되는 것이 아닌지 궁금합니다.


감사합니다.

  • ?
    샤롱스판 2012.03.09 23:51

    1) 큐브리드는 마스터가 복구된 상태에서 현재 마스터(원래는 슬레이브)가 slave로 자동 전환되지 않습니다.

    2) 현재 상황은 네트워크의 순단으로 인해 마스터가 2개가 되버리는 split brain 상태입니다. 즉, DB1<--> DB2 간 통신이 이루어지지 않아서 DB1 마스터가 멀쩡한 상태(role change X)에서 DB2가 마스터로 role change가 되고, 응용은 DB2에 붙어서 트랜잭션 처리(*)를 하고요. 다시 네트웤 복구되어 응용이 정상적으로 마스터 DB1으로 붙게 되면서, DB2가 종료된 것입니다.

    3) 지금은 운영자분께서 판단을 해주셔야 합니다 DB2에 붙어서 발생한 트랜잭션(*)을 무시해도 되는지, 그렇다면 그냥 종료된 슬레이브 DB2를 구동(cubrid heartbeat start)하시면 되고.. 이러면 트랜잭션(*)량만큼 불일치가 존재하는 상태에서 DB1의 복제로그들이 DB2에 받아지게 됩니다. 그 사이에 어떤 SQL들이 DB2에서 실행되었는지 확인하려면 브로커 로그를 확인하시면 되겠습니다. 무시할 수 없는 복제 불일치 상태라면 DB1에서 유실했던 트랜잭션(*)을 수동으로 넣으신 후 DB2 슬레이브를 처음부터 복제 재구축하는 방법이 있습니다.  

    4) 차라리 마스터가 확 죽었다면 이런 현상이 발생하지 않는데, 네트워크 순단에 의한 경우 이렇게 복잡한 상황이 발생할 수 있습니다. 이를 방지하기 위해 R2.2 최신패치 및 R4.0, R4.1 최신버전에는 cubrid_ha.conf파일에 ha_ping_hosts 파라미터를 지원하였습니다. 이는 동일 네트워크에 있는 제3의호스트를 지정하여, 정말 네트워크로 인해 통신이 끊긴 것인지 한번 더 확인을 하고  마스터 DB1을 Slave로 role change하도록 하여 split brain 을 방지하도록 동작합니다. ( http://www.cubrid.org/manual/ko/8.4.4/ha.html#cubrid-ha-conf 참고)

    현재 사용중이신 버전에서 이를 지원하는지 확인하여 주시기 바랍니다. 만약 구버전이라면 버전 업데이트도 고려해주시고요.  

     

    최대한 쉽게 설명하려고 했는데 도움이 되시면 좋겠습니다.

  • ?
    freemir 2012.03.10 00:34

    항상 친절한 답변 고맙습니다.

    설명해주신 내용을 통해 의문점이 해결되었습니다.


    현재 8.2.2.10007 을 사용 중입니다. (2.2 최신버전)

    말씀하신 cubrid_ha.conf 파일이 없어서 현재 cubrid.conf 에 

    ha_mode

    ha_port_id

    ha_node_list

    를 작성하여 사용 중입니다.


    ha_ping_hosts 를 추가해서 확인해보겠습니다.


    추가적으로

    매뉴얼의 failover와 failback 부분에서는 ha_ping_ports 로 기술되어있고

    cubrid_ha.conf 부분에서는 ha_ping_hosts 로 기술되어 있습니다.

    ha_ping_hosts가 맞는 것이겠지요?


    그리고 ha_ping_hosts 부분에 hostname이 아닌 ip도 사용이 가능한지 궁금합니다.

    감사합니다.

  • ?
    샤롱스판 2012.03.10 02:18

    네. R2.2에서는 cubrid.conf에 ha_ping_hosts를 추가하시면 되겠습니다. 설정값으로 IP주소도 허용합니다.

    매뉴얼에서 ~port~로 되어 있는 것은 오타입니다.

    오타수정은 물론, 다음 버전 매뉴얼에서는 freemir 님처럼 자체 구축/운영하시는 분들께서 막히시는 부분이 없도록 HA관련 예제와 운영 가이드를 보완할 예정입니다. 제품 발전에 도움 주셔서 감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4443
3987 회원가입이 3명이상 안돼요.. 1 딩이 2010.07.08 7846
3986 회사 서버에 접속을 할려면 설정이 다른가요? 2 후니 2009.07.14 10577
3985 홈경로 databases.txt 질문드립니다 1 큐브리드드 2023.07.17 92
3984 홀따옴표 처리 문의 1 초보 2010.04.15 14679
3983 혼합형 데이터 정렬방법 1 큐키 2021.06.11 85
3982 혼합형 데이터 정렬 방법 1 큐키 2021.06.14 264
3981 혹시 큐브리드매니저 자동완성 끄는 기능 있나요 2 안지민 2012.09.05 6035
3980 혹시 큐브리드 매니져 기본글꼴을 고정폭으로 해주실 생각은 없으신가요... 1 안지민 2012.12.20 5767
3979 혹시 PHP5.3.0 버전에서 모듈 설치되신분 계신가요??? 4 senseplus 2009.07.13 9394
3978 혹시 MMDB 지원하나요? 1 tekkal 2009.01.31 17480
3977 호스트 추가시 발생되는 오류에 대해 문의 합니다. 1 거북이사촌 2015.01.06 5259
3976 호스트 추가 질문입니다. 7 몽유객 2010.12.21 13808
3975 호스트 추가 1 karay2k 2011.12.17 17928
3974 호스트 연결이 안됩니다. 3 file 미드소나 2013.01.01 7752
3973 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13916
3972 호스트 연결이 무한 로딩도네요 1 file 큐브리드사용자 2022.10.20 118
3971 호스트 연결이 되지 않습니다. 3 file Juooon 2013.07.24 9235
3970 호스트 연결 에러 3 secret PJEPJE 2016.01.28 10
3969 형변환 오류 문의 1 삽질중 2009.12.30 12969
3968 현재 큐브리드 7.1 을 사용하고 있는데요 1 헬리 2009.10.01 8770
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales