Background Image

FORUM

조회 수 202 추천 수 0 댓글 5
?

단축키

Prev이전 문서

Next다음 문서

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


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
 Oracle Linux 7.9
CUBRID Ver.
 10.2.5.8886
CUBRID TOOL Ver.
 
응용 환경(API)
 


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

CUBRID HA — CUBRID 10.2.0 documentation 

 

귀사에서 제공하는 위 매뉴얼을 보고 슬레이브 재구축을 테스트해보고 있습니다.

(다른 시나리오는 정상적으로 테스트 완료했습니다.)

 

마스터-슬레이브-레플리카 환경은 매뉴얼과 동일하게 세팅했습니다.

 

 

_images/rebuild_slave_process.png

 

 

1) 첫 번째 문의사항

 

위 시나리오 중 5번 단계를 슬레이브 노드에서 수해아면 다음과 같은 에러가 발생합니다.

 

------------------------------------------------------------------------------------------------------

[cubrid@urp2 testdb_urp1]$ cubrid heartbeat start
@ cubrid heartbeat start
@ cubrid master start
++ cubrid master start: success
@ HA processes start
@ cubrid server start: testdb

This may take a long time depending on the amount of recovery works to do.

CUBRID 10.2

++ cubrid server start: success
@ copylogdb start
++ copylogdb start: success
@ applylogdb start
++ applylogdb start: success
++ HA processes start: fail
++ cubrid heartbeat start: fail

------------------------------------------------------------------------------------------------------

 

해당 에러가 발생했을 때의 로그 파일을 첨부합니다. (error log.zip)

 

 

2) 두 번째 문의사항

 

위 시나리오 중 1번 단계에서 cubrid hb repl stop 구문을 실행하면 다음과 같이 fail 메시지가 나옵니다.

 

------------------------------------------------------------------------------------------------------

[cubrid@urp1 ~]$ cubrid heartbeat repl stop testdb urp2
@ cubrid heartbeat replication
@ copylogdb stop
The server configured for HA is not listed in ha_node_list.
++ copylogdb stop: fail
@ applylogdb stop
The server configured for HA is not listed in ha_node_list.
++ applylogdb stop: fail
++ cubrid heartbeat replication: success

------------------------------------------------------------------------------------------------------

 

해당 명령어를 실행하면 copylogdb, applylogdb 프로세스가 중지되어야 하지 않나요?프로세스를 검색하면 다음과 같이 살아 있습니다.

 

------------------------------------------------------------------------------------------------------

[cubrid@urp1 ~]$ ps -ef | grep cub_
...

...
cubrid   21512     1  0 14:48 pts/1    00:00:02 cub_admin copylogdb -L /app/cubrid/CUBRID/databases/testdb_urp2 -m sync testdb@urp2
cubrid   21514     1  0 14:48 pts/1    00:00:05 cub_admin applylogdb -L /app/cubrid/CUBRID/databases/testdb_urp2 --max-mem-size=300 testdb@localhost

------------------------------------------------------------------------------------------------------

 

그래서 다음 두 개의 명령어로 중지 시켰는데 이렇게 중지 시켜도 맞을까요?

 

  - cubrid heartbeat copylogdb stop testdb urp2

  - cubrid heartbeat applylogdb stop testdb urp2

 

 

3) 세 번 째 문의사항

 

위 시나리오를 보면 슬레이브 노드에서 db_ha_apply_info 테이블의 레코드를 삭제하는 부분이 없습니다.

 

그러나 매뉴얼 상에서는 1번 단계에서 슬레이브 노드의 데이터베이스 볼륨을 삭제하고 db_ha_apply_info 정보를 삭제하는 부분이 있습니다.

 

데이터베이스 볼륨을 삭제했다는 것은 DB 자체가 지워진건데, 그럼 csql로 접속이 안될텐데 잘못된 부분이 아닐지요...

 

 

 

답변 부탁 드리겠습니다..

 

 

  • ?
    오명환 2022.03.28 13:25
    (1) 첫번째 문의 사항의 답변
    - 올려주신 error log 중 applylogdb의 error를 보니 db_ha_apply_info를 초기화하지 못해 오류가 발생했습니다.
    구성시 db_ha_apply_info 내용을 삭제하셨나요 ?

    (2) 두번째 문의 사항의 답변
    - cubrid_ha.conf의 ha_node_list 부분이 제대로 설정되지 않아 오류가 발생한 것 같습니다. 확인해보세요.
    - cubrid heartbeat copylogdb/applylogdb stop으로 정지시켜도 됩니다. 또한 kill pid로 하셔도 됩니다.

    (3) 세번째 문의 사항의 답변
    - 그림을 보시면 (1)번에 slave DB를 삭제하고 (2)번에서 master의 백업 본으로 slave에 restoredb를 통해 DB를 재구성한 후 csql를 통해 db_ha_apply_info 데이타를 삭제하게 되어 있습니다. 즉, csql는 복구된 DB에 접속하는 것입니다.
  • ?
    kikiki767 2022.03.28 13:52 Files첨부 (1)

    (1) 첫 번째 문의에 대한 재문의

     

    해당 에러는 마스터 노드(urp1)의 DB 백업본을 이용하여 슬레이브 노드(urp2)에 복구한 후,
    db_ha_apply_info 테이블에 복제 정보를 추가한 상태입니다.

     

    즉, 아카이브 로그까지 슬레이브 노드에 다 복사한 후(실제로는 아카이브 파일이 생성 안된 상태여서 미수행) 슬레이브 노드에서 HA를 기동하려다 에러가 발생한 상황입니다.

     


    (2) 두 번째 문의에 대한 재문의

     

    선행 시나리오로 다음 링크를 수행한 상태입니다.

     

      - https://www.cubrid.org/manual/ko/10.2/ha.html#add-replica (서비스 운영 중 레플리카 추가)

     

    현재 모든 노드의 cubrid_ha.conf 내용은 다음과 같이 동일합니다.

     

    ------------------------------
    [common]
    ha_port_id=59901
    ha_node_list=cubrid@urp1:urp2
    ha_replica_list=cubrid@urp3
    ha_db_list=testdb
    ha_apply_max_mem_size=300
    ha_copy_sync_mode=sync:sync
    ha_copy_log_max_archives=1
    ------------------------------

     


    (3) 세 번째 문의에 대한 재문의

     

    그림에는 그렇게 되어 있지만 매뉴얼에는 2번 단계에 이런 내용이 있습니다.

     

    ----------------------------------------------------------------------
    nodeB의 db_ha_apply_info 정보를 모두 삭제하여 초기화한다.

    ----------------------------------------------------------------------

     

    첨부된 파일 확인 부탁드립니다.

  • ?
    오명환 2022.03.28 16:32
    (1) slave에서 master 백업 볼륨으로 복구 후 db_ha_apply_info 테이블에서 복제 정보를 반드시 초기화 (record 삭제) 하셔야 합니다.
    삭제 방법은 csql --sysadm -u dba 를 이용하셔서 delete from db_ha_apply_info. 구문을 수행하시면 됩니다. (3번 문의 관련 첨부하신 파일처럼 수행하면 됩니다.)

    (2) ha_node_list 설정값이 있는데, 오류가 발생한 부분에 대해서는 확인 후 댓글 남기겠습니다.
  • ?
    kikiki767 2022.03.28 17:33

    (1)

    매뉴얼 상에는 슬레이브 노드에서 DB 복구 후 db_ha_apply_info 테이블에
    마스터 노드의 복제 정보를 insert 하는 것으로 나와 있습니다.

    답변 주신대로 슬레이브 노드에서 DB 복구 후 db_ha_apply_info 테이블에 레코드가 없는 상태에서,
    (애초에 마스터 노드의 db_ha_apply_info 레코드를 지운 상태에서 백업 진행)

    활성 로그 및 보관 로그를 전부 슬레이브에 복사한 다음에 HA 기동이 정상적으로 되었습니다.


    그럼 애초에 매뉴얼상의 시나리오나 작업 절차가 잘못 작성된 것 아닌가요?
    굳이 마스터 노드에서 백업 시 생성된 로그 파일에서 HA 정보를 확인한 다음,
    스크립트 파일을 작성하고 슬레이브 노드 DB에 insert 하는 스탭이 필요 없는게 아닐지요...

  • ?
    오명환 2022.03.29 09:46
    (1) 지적하신대로 매뉴얼의 slave db에서 db_ha_apply_info 를 삭제하는 부분이 순서가 잘 못되었네요.
    master db의 백업을 가지고 slave에서 복구 후에 삭제하는 것이 맞습니다. 이 부분의 매뉴얼은 수정하도록 하겠습니다.
    매뉴얼 오류에 대해 보고해주셔서 감사합니다.

    (2) 현재 설명 그림의 재구성 방법은 master db의 서비스를 멈추지 않고 재구성하는 방법의 설명입니다.
    백업 후에도 insert/delete/update.가 발생할 수 있어, 백업시의 최종 로그 정보를 기억해두었다가 slave db 재구성시 db_ha_apply_info에 master 복제에 대한 정보를 기입하여 백업 시점이후의 변경된 정보부터 복제를 하기 위함입니다.
    서비스 정지후 재구성시에는 백업 이후에 변경분이 발생하지 않으므로 db_ha_apply_info의 master node 정보를 지워서 초기화하면 됩니다. (제가 알려드린 것은 서비스 정지후 재구성이라고 보시면 됩니다.)

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4263
3976 tomcat7 + cubrid 1 깽즈야 2012.07.27 90889
3975 원격접속이 안되네요????????? 2 Chris 2013.07.23 89527
3974 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다 1 바람바람 2013.05.29 84859
3973 CUBRID 7.3 + zeroboard XE 관리자 로그인 에러 1 윤희서 2009.01.17 83638
3972 cub_master: Cannot bind local address... aborting.... Address already in use 4 박상현 2008.11.28 83556
3971 큐브리드 다운로더 오류 발생 5 file 차오이 2008.11.22 78469
3970 zeroboard XE 설치시 'database connect fail' error 4 윤희서 2009.01.16 78159
3969 Image 데이터타입 사용방법 3 AD 2008.11.25 73843
3968 clob 문의 1 김해영 2012.11.29 73006
3967 linux server 환경에서 php 버전은 어떤걸로 선택해야하는지. 1 거기 2008.11.30 66357
3966 델파이에서는 어떻게 사용할수 있을까요? 2 이상원 2008.11.29 65556
3965 if exists 조건 처리문? 2 콩이아부지 2013.03.06 63604
3964 update 쿼리를 이용한 시리얼 수정에 관하여 1 인경수 2008.11.27 63444
3963 큐브리드 2008 설치시 윈도우 서비스에 등록되지 않습니다. 3 file 진이 2008.11.22 63163
3962 CUBRID 7.3 + zeroboard XE 관리자 로그인 에러 1 윤희서 2009.01.17 62119
3961 큐브리드 maven repository 관련 문의 3 StoneHouse 2013.04.30 61467
3960 메니저에서 접속 안되는 오류 2 유나인 2013.08.16 61065
3959 .NET DB 제어를 위한 방법. 2 우페 2008.11.23 60874
3958 JDK가 두개 설치된 경우 선택적으로 JDK를 설정 할 수 있는 방법은 없는지요 1 GoFly 2008.11.28 60605
3957 데이터 이관시 소유자 변경 가능한가요??? 1 델몬트 2013.08.08 60059
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 199 Next
/ 199

Contact Cubrid

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