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
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 34
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3933 4.0 beta CUBRID HA관련 문제... 1 반짝이 2011.05.18 21610
3932 4.0 마이그레이션 중 스키마 로드 오류 9 reerror 2011.11.10 18171
3931 4.0 정식판은 언제쯤 나올까요? 2 유니콘 2011.06.28 7945
3930 4.0 최초 설치후 DB 구동 불가 증상 7 reerror 2011.11.10 11196
3929 4.0 패치2 는 언제쯤 나오나요? 3 유니콘 2011.09.28 6864
3928 500M가 넘는 데이터를 올릴려면 어떻게 해야 하죠? 1 pictions 2009.11.03 9014
3927 532번글 답변이 아직 없으셔서 다시 올립니다. 2 초보 2010.02.05 9628
3926 542번글 재질의 2 file 초보 2010.02.09 9780
3925 555번 한글테이블 글 올린 사람입니다 (화면캡쳐함) 1 유니콘 2010.02.23 11764
3924 64 bit 포팅이란? 6 초보대왕 2009.03.31 22003
3923 64BIT 설치시 오류 7 씩~~ 2008.12.26 41558
3922 64bit 9.1버전에서 컬럼 수정시 에러 발생 (에러코드 1046) 1 file 오션나인 2013.08.27 14632
3921 7,1 에서 2008 R2.0 또는 R3.0 으로 마이그레이션 문의 1 마이나스 2010.09.30 7221
3920 7.1 -> 2008로 업그레이드 하면 문제가 없을까요? 3 헬리 2009.10.07 9825
3919 8.2.1버전에서 SQuirreL SQL Client 접속 가능한가요? 1 Philip Park 2010.01.26 13350
» 8.2.2 HA 구성 중 네트워크 장애 복귀 시 role 전환 문제 3 freemir 2012.03.09 13431
3917 8.2.2 HA 구성 중 웹 서버의 커넥션이 많을 때 동작에 문제가 있습니다. 2 freemir 2012.10.13 11567
3916 8.2.2 HA 사용시 Master / Slave 간 정보 확인 문제 1 freemir 2013.04.01 9165
3915 8.2.2 를 8.4.3으로 변경 시 응용 수정 부분 문의 1 freemir 2012.12.07 5735
3914 8.2.2 버젼 PHP 트랜잭션관련 문의드립니다. 2 secret 반짝이 2014.06.11 7
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