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 정보를 지워서 초기화하면 됩니다. (제가 알려드린 것은 서비스 정지후 재구성이라고 보시면 됩니다.)

  1. No Image notice by admin 2024/04/23 by admin
    Views 55 

    CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. SQLGate for CUBRID 영구 무료 라이선스 제공

  3. [Cubrid HA] restoreslave 사용할 경우 Master/Slave 경로를 반드시 동일하게 맞춰야하나요?

  4. Error Number: -17 Internal error: fetching deallocated pageid 16777216 of volume 오류

  5. nodejs와 cubrid 서버와 연동 (localhost 아닙니다)

  6. Cubrid HA 구성서버 중, Slave에서 restoreslave 동작시 오류 관련하여 문의드립니다.

  7. cubrid acl reload 에러

  8. php 7.4 접속 에러

  9. php cubrid_driver 설치 에러

  10. 당혹스럽습니다. 쿼리문으로 만들어진 테이블이 있는데 삭제도 안됩니다.

  11. Windows 10 php 5.6 Call to undefined function cubrid_connect() 에러 문의

  12. 자바 배치 쉘 수행시 큐브리드 이중화 설정

  13. 큐브리드 (java - 전자정부프레임워크 - 마이바티스) 연동 에러

  14. cubrid 성능 개선

  15. INITCAP함수 대체

  16. DB backup 시 문제가 발생합니다.

  17. sqlgate에서 프로시저 실행시 에러

  18. autoexecquery.conf 매시간 실행 스케쥴 문의

  19. cubrid migration toolkit 데이터마이그레이션 시 데이터 깨짐현상

  20. java 컴파일시 Class Not Fount

  21. _db_attribute 수정 권한

  22. HA 구성 중 슬레이브 재구축 문의 드립니다. (2)

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