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 4444
3607 Windows 10 php 5.6 Call to undefined function cubrid_connect() 에러 문의 8 file devlsy 2022.04.21 122
3606 자바 배치 쉘 수행시 큐브리드 이중화 설정 1 jeinhe 2022.04.18 79
3605 큐브리드 (java - 전자정부프레임워크 - 마이바티스) 연동 에러 1 file 백수인 2022.04.15 390
3604 cubrid 성능 개선 1 디어사이드 2022.04.15 132
3603 INITCAP함수 대체 1 suyeon 2022.04.13 81
3602 DB backup 시 문제가 발생합니다. 4 samsam 2022.04.13 125
3601 sqlgate에서 프로시저 실행시 에러 3 밍아 2022.04.07 270
3600 autoexecquery.conf 매시간 실행 스케쥴 문의 1 Roy 2022.04.06 55
3599 cubrid migration toolkit 데이터마이그레이션 시 데이터 깨짐현상 1 file 스타일보스 2022.04.05 79
3598 java 컴파일시 Class Not Fount 13 file 밍아 2022.04.05 243
3597 _db_attribute 수정 권한 1 mkchoi 2022.04.04 87
3596 HA 구성 중 슬레이브 재구축 문의 드립니다. (2) 2 kikiki767 2022.03.29 134
3595 Cubrid HA 오류 로그 문의드립니다. 1 큐브짱 2022.03.28 290
3594 컬럼 정보 수정 방법 3 jeinhe 2022.03.28 365
3593 데이터 load 시 schema 파일에서 문제가 발생합니다. 8 Atom 2022.03.27 296
» HA 구성 중 슬레이브 재구축 문의 드립니다. 5 file kikiki767 2022.03.25 204
3591 데이터 복구 1 file 연습만이살길 2022.03.25 258
3590 큐브리드 매니저에서 데이터 가져오기 문의 1 ozro 2022.03.25 91
3589 자바 함수 사용중에 jdbc 접속오류 발생 1 file go 2022.03.24 65
3588 안녕하세요 대소문자 구분 설정에 대한 문의 드립니다. 3 Atom 2022.03.23 379
Board Pagination Prev 1 ... 15 16 17 18 19 20 21 22 23 24 ... 200 Next
/ 200

Contact Cubrid

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