Background Image

FORUM

조회 수 341 추천 수 0 댓글 11
?

단축키

Prev이전 문서

Next다음 문서

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


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

OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력


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

 

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


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

master,slave,replica 1:1:1 구성일 때 마스터서버에서 cubrid hb status -v 입력시 다음과 같이 조회됩니다.

 

 HA-Process Info (master 11974, state master)
   Applylogdb db1@localhost:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12343, state registered)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_admin]
    - argv      [cub_admin applylogdb -L /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 --max-mem-size=500 db1@localhost ]
    - registered-time   08/22/24 14:17:13.354
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time     00/00/00 00:00:00.000
    - start-time        00/00/00 00:00:00.000
   Copylogdb db1@k8s-node1:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12341, state registered)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_admin]
    - argv      [cub_admin copylogdb -L /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 -m sync db1@k8s-node1 ]
    - registered-time   08/22/24 14:17:13.332
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time     00/00/00 00:00:00.000
    - start-time        00/00/00 00:00:00.000
   Server db1 (pid 12100, state registered_and_to_be_active)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_server]
    - argv      [cub_server db1 ]
    - registered-time   08/22/24 14:17:10.577
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time     00/00/00 00:00:00.000
    - start-time        00/00/00 00:00:00.000
 

 

1. start-time이 모두 0으로 조회되는데, start중이 아니라는 의미인걸까요? 그렇다면 어떻게 start 할 수 있는지도 알고 싶습니다.

 

2. 현재 failover를 테스트 중인데, cubrid hb stop 및 start 를 통해 테스트 중입니다. DB서버를 내리는 해당 경우 제외하고, replication이 깨지거나 문제가 발생할 수 있는 테스트 케이스를 알고 싶습니다.

 

  • ?
    큐브리드_김주현 2024.08.22 16:32
    큐브리드를 이용해 주셔서 감사합니다.

    1. -v의 경우 좀 더 상세한 내용을 위해 사용 됨으로 $>cubrid hb status 로만 확인 하셔도 무방합니다.
    1-1) 구동 방법은 master -> slave -> replica순으로 해야 하고, 정지 시, 그 역순인 replica -> slave -> master순서로 해주시길 바랍니다.
    1-2) 구동 명령어 : 각각의 node(master/slave/replia)에서 $>cubrid hb start 로 구동하시면 cubrid_ha.conf에 등록된 DB가 서비스 됩니다.
    1-3) 정지 명령어 : 각각의 node(master/slave/replica) 에서 $>cubrid hb stop으로 정지하시면 되겠습니다.
  • ?
    초보자 2024.08.22 16:45
    네. 1번을 여쭤본 이유는 cubrid hb start를 했음에도 start-time이 0으로 나와서입니다.
    과정은 다음과 같았습니다.

    [cubrid@k8s-master ~]$ cubrid hb start
    @ cubrid heartbeat start
    @ HA processes start
    ++ cubrid server 'db1' is running.
    @ copylogdb start
    ++ copylogdb start: success
    @ applylogdb start
    ++ applylogdb start: success
    ++ HA processes start: success
    ++ cubrid heartbeat start: success
    [cubrid@k8s-master ~]$ cubrid hb status
    @ cubrid heartbeat status

    HA-Node Info (current k8s-master, state master)
    Node k8s-node2 (priority 32767, state replica)
    Node k8s-node1 (priority 2, state slave)
    Node k8s-master (priority 1, state master)


    HA-Process Info (master 11974, state master)
    Applylogdb db1@localhost:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12343, state registered)
    Copylogdb db1@k8s-node1:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12341, state registered)
    Server db1 (pid 12100, state registered_and_to_be_active)

    [cubrid@k8s-master ~]$ cubrid hb status -v
    @ cubrid heartbeat status

    HA-Node Info (current k8s-master, state master)
    Node k8s-node2 (priority 32767, state replica)
    - score 32767
    - missed heartbeat 0
    Node k8s-node1 (priority 2, state slave)
    - score 2
    - missed heartbeat 0
    Node k8s-master (priority 1, state master)
    - score -32767
    - missed heartbeat 0


    HA-Process Info (master 11974, state master)
    Applylogdb db1@localhost:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12343, state registered)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_admin]
    - argv [cub_admin applylogdb -L /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 --max-mem-size=500 db1@localhost ]
    - registered-time 08/22/24 14:17:13.354
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time 00/00/00 00:00:00.000
    - start-time 00/00/00 00:00:00.000
    Copylogdb db1@k8s-node1:/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 (pid 12341, state registered)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_admin]
    - argv [cub_admin copylogdb -L /home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/databases/db1_k8s-node1 -m sync db1@k8s-node1 ]
    - registered-time 08/22/24 14:17:13.332
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time 00/00/00 00:00:00.000
    - start-time 00/00/00 00:00:00.000
    Server db1 (pid 12100, state registered_and_to_be_active)
    - exec-path [/home/cubrid/CUBRID-11.3.1.1142-bee7aa8-Linux.x86_64/bin/cub_server]
    - argv [cub_server db1 ]
    - registered-time 08/22/24 14:17:10.577
    - deregistered-time 00/00/00 00:00:00.000
    - shutdown-time 00/00/00 00:00:00.000
    - start-time 00/00/00 00:00:00.000
  • ?
    큐브리드_김주현 2024.08.22 16:33
    . 노드는 CUBRID HA를 구성하는 논리적인 단위로, 노드는 상태에 따라 마스터 노드(master node), 슬레이브 노드(slave node), 레플리카 노드(replica node) 등으로 나뉩니다. (상세 내용은 https://www.cubrid.org/manual/ko/11.3/ha.html#id1 참조)

    CUBRID HA 환경은 일반적으로 주 서버(master node)에서 발생한 변경 사항을 복제 서버(Slave/Replica node)에 실시간으로 동기화하여 데이터를 유지하는 시스템입니다. 그러나 여러 가지 요인으로 인해 이 복제 과정에서 문제가 발생할 수 있습니다.

    1) 네트워크 오류
    - 네트워크 지연이나 연결 끊김으로 인해 주 서버에서 복제 서버로 전송되는 데이터가 손실되거나 지연될 수 있습니다. 이로 인해 복제 서버의 데이터가 주 서버와 일치하지 않게 될 수 있습니다. 또한 네트워크 패킷이 손실되면 복제 데이터의 일관성이 깨질 수 있습니다.

    2) SQL오류
    - CUBRID HA 의 경우 제약사항이 존재 함으로 이를 유지 하지 않은 경우 불일치가 발생할 수 있습니다.(https://www.cubrid.org/manual/ko/11.3/ha.html#id37)
    - 불일치한 쿼리 실행 : master node에서 실행된 특정 쿼리가 복제 서버에서 실패하거나 잘못 실행되면 데이터 불일치가 발생할 수 있습니다. 예를 들어, master node에서는 존재하는 데이터가 복제 서버에는 존재하지 않는 경우, 동일한 UPDATE 또는 DELETE 쿼리가 실패할 수 있습니다.
    - Java 저장 프로시저(java stored procedure) : 스토어드 프로시저나 트리거가 master node에서 실행된 후 동일한 결과를 복제 서버에서 재현하지 못할 경우 데이터가 일관되지 않을 수 있습니다.
  • ?
    큐브리드_김주현 2024.08.22 16:33
    3) DB설정오류
    - 설정오류 : 잘 못 된 설정으로 구동 된 경우 복제가 중단되거나 불일치가 발생할 수 있습니다.
    - 잘못된 테이블 구조 : master node와 복제 node의 테이블 구조가 동일하지 않은 경우, 특히 컬럼 순서나 데이터 타입이 다를 경우, 복제 과정에서 데이터 오류가 발생할 수 있습니다.

    4) 디스크I/O오류
    - 복제 서버의 디스크에 문제가 발생하면, 로그 파일이 손상되거나 데이터가 올바르게 기록되지 않을 수 있습니다.
    - 디스크 I/O 병목 현상이 발생하면 복제 데이터의 적용이 지연되거나 손실될 수 있습니다.
  • ?
    큐브리드_김주현 2024.08.22 16:35
    5) 버그
    - 엔진 버그 : release시 많은 시간으로 QA를 진행하지만, 저희도 찾지 못한 버그가 발생될 수 있고, 이로인하여 불일치가 발생 할 수도 있습니다.
    - 버전 호환성 :master node와 복제 node가 다른 버전이 사용하는 경우, 버전 간 비호환성으로 인해 복제가 실패할 수 있습니다.

    6) 로그 손상
    - master node의 로그가 손상되거나, 복제된 로그가 손상된 경우 불일치가 발생될 수 있습니다.

    7) 인위적인 데이터 조작
    - 복제 서버에서 직접 데이터를 변경하면 복제 시스템이 비동기화되어 깨질 수 있습니다.
  • ?
    큐브리드_김주현 2024.08.22 16:35
    8) 자원고갈
    - 메모리 부족 : 복제 서버에서 메모리 부족으로 인해 복제 작업이 실패하거나 중단될 수 있습니다.
    - CPU 사용량 과다 : 복제 서버의 CPU가 과부하 상태에 있을 경우, 복제 작업이 느려지거나 중단될 수 있습니다.
    - Disk 용량 부족 : 정상적인 로그작성이 안 되어 불일치가 발생될 수 있습니다.

    이와 같은 문제가 발생하면 복제 서버의 상태를 정밀하게 점검하고, master node와의 데이터 일관성을 복원하기 위한 조치를 취해야 합니다.

    이를 위하여 모니터링 할 수 있는 applyinfo tool를 제공(https://www.cubrid.org/manual/ko/11.3/ha.html#applyinfo 참조) 하고 있으며
    작성자 분의 서버에 맞도록 변경 후 모니터링 해 주셔야 합니다.

    감사합니다.
  • ?
    초보자 2024.08.22 16:50
    현재 cubrid hb status 조회를 통해 state 상태로 replication 상태를 모니터링 하는 중입니다. hb 를 stop시키지 않고도 state가 master,slave,replica 외에 unknown 등 다른 상태로 변경될 수 있는 케이스를 알고 싶습니다.
  • ?
    큐브리드_김주현 2024.08.22 16:57
    master,slave,replica 에서 복사/복제를 위해 서로를 인지하고 있어야 합니다.
    "아 재는 slave구나, 애는 replica구나"라고
    그런데 unknown이라면 DB구성이 잘 못 되었거나, 초기 구성 시나 구동 시 서로를 인지하지 못하는 경우 발생합니다.

    설정을 재 확인해 보시고, 네트워크 상 master,slave,replica 끼리 port(기본값 59901)가 오픈되어 있는지 확인해 보세요
    감사합니다.
  • ?
    초보자 2024.08.22 17:04
    아 네 질문을 잘못 드린 듯 합니다. 정상적으로 replication 동작중에 cubrid hb stop 시 unknown 상태가 되는 것을 확인하였는데요. cubrid hb stop 처럼 db를 down시키지 않고 정상적으로 replication 동작 중 unknown 상태로 변경될 수 있는 케이스에 대해 알고 싶습니다.
  • ?
    큐브리드_김주현 2024.08.22 17:16
    정상 동작중이엿고, db down이 발생되지 않은 상태라면
    네트워크 등의 이슈로, 등록되어 있는 서로의 node를 찾지 못하는 경우 발생할 것 같습니다.

    heartbeat이라 하여 (https://www.cubrid.org/manual/ko/11.3/ha.html#heartbeat) 다른 node의 상태를 확인하기 위한 메시지 를 보냈는데 응답이 없는 경우 발생할 수 있겠습니다.
    감사합니다.
  • ?
    초보자 2024.08.22 17:25
    네 항상 친절한 답변 감사합니다. 위의 start-time에 대한 답변도 해주시면 감사하겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 7 admin 2024.04.23 6592
4090 큐브리드 매니저 계정 생성 질문입니다. 4 초보자 2024.09.11 293
4089 큐브리드 유틸리티 혹은 rest api 실행 시 로그 파일 질문입니다. 1 초보자 2024.09.10 288
4088 getbrokersinfo api 결과 값 문의 2 ijuru 2024.09.09 321
4087 큐브리드 마이그레이션 인덱스 문의 드립니다. 3 sjwz초보쓰 2024.09.09 257
4086 kill transaction 문의드립니다 2 잘했어요 2024.09.05 278
4085 atomikos 관련 문의 드립니다. xlxm 2024.09.04 280
4084 구축한 db에 backup db 정보를 입력하고 싶습니다. 2 박성호_0403 2024.09.03 299
4083 큐브리드 getQueryplan() 추가 질문입니다. 2 초보자 2024.09.03 257
4082 rest api token 만료 기준 문의드립니다 3 잘했어요 2024.09.03 288
4081 MERGE INTO조건문 질문드립니다. 6 대청 2024.09.03 289
4080 큐브리드 recompile 힌트 질문입니다. 4 초보자 2024.09.02 305
4079 큐브리드 매니저 서버 OOM 관리 방법 문의드립니다. 2 newkr 2024.08.28 298
4078 위의 플랜 조회 추가 질문입니다. 4 초보자 2024.08.28 298
4077 Cubrid Manager Server 관련 OOM이 발생하는 버전 정보를 확인 요청드립니다. 4 newkr 2024.08.27 306
4076 restordb 1 박성호_0403 2024.08.27 308
4075 플랜조회 질문입니다. 4 초보자 2024.08.27 399
4074 replication 질문입니다. 1 초보자 2024.08.23 290
» cubrid heartbeat status -v 및 failover 질문입니다. 11 초보자 2024.08.22 341
4072 statdump api 질문 드립니다, 1 ijuru 2024.08.22 301
4071 파이선 드라이버 설치 3 코드보이 2024.08.21 303
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 207 Next
/ 207

Contact Cubrid

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