Background Image

FORUM

조회 수 204 추천 수 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 4443
3987 cubrid count 속 2 kanin 2024.04.19 10
3986 cubrid 10.1 데이터 덮어쓰기 질문입니다. 1 ysk96 2024.04.18 17
3985 ACTION 명령어? 예약어? 1 투투투투기기 2024.04.17 16
3984 sql 구문 사용시 데이터 타입 decimal일 경우 1 투투투투기기 2024.04.11 26
3983 Regexp_count 4 SEO 2024.04.09 56
3982 큐브리드 메모리 오류 관련 질문 2 file 뚜벅뚜벅 2024.04.09 57
3981 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 36
3980 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 43
3979 mac m1 다운로드 오류 1 file 혜주냉면 2024.04.05 40
3978 list 함수로 만든 sequence type을 varchar로 변환 문의 1 플레이어블 2024.04.04 35
3977 DECODE, CASE WHEN 사용법 문의 2 핑크팬더 2024.04.03 53
3976 schema 파일 loaddb - 스키마 정보 중복오류 문의 4 daay 2024.03.21 88
3975 object to string 4 네오랜덤 2024.03.20 67
3974 mysql로 DB연동 문의 2 연동테스트용 2024.03.20 68
3973 특정DB만 접근 시간이 현저하게 오래 걸리는 문제 1 file 그로구 2024.03.20 58
3972 jdbc 연동시의 charset 강제 변경 방법 1 file gwak 2024.03.14 56
3971 도커로 HA환경 구성 테스트중 hb start.. 1 wodud0170 2024.03.12 62
3970 이중화 관련 문의드립니다. 1 adqwdqwd123412 2024.03.12 66
3969 큐브리드 마스터 복제 관련 문의 드립니다. 2 이지혜 2024.03.11 60
3968 큐브리드 다운로드 에러 1 file 나래아빠 2024.03.08 84
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