FORUM

조회 수 808 추천 수 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에 대한 답변도 해주시면 감사하겠습니다.

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

  2. 위의 플랜 조회 추가 질문입니다.

  3. Cubrid Manager Server 관련 OOM이 발생하는 버전 정보를 확인 요청드립니다.

  4. restordb

  5. 플랜조회 질문입니다.

  6. replication 질문입니다.

  7. cubrid heartbeat status -v 및 failover 질문입니다.

  8. statdump api 질문 드립니다,

  9. 파이선 드라이버 설치

  10. DB 용량 확인 쿼리 질문드립니다.

  11. Cubrid 사용 도중 한쪽 서버가 다운되어 그 이후 이중화 해제 후 한쪽만 가동중입니다.

  12. Dbeaver master, slave

  13. master-slave-replica 구성

  14. Replica 제거방법

  15. 질의 계획 정보 수집

  16. odbc 설치 시 오류입니다.

  17. 큐브리드 연결실패 시 횟수 제한

  18. No Image 30Jul
    by 11시38분
    2024/07/30 by 11시38분
    Views 742 

    실행계획 조회 질문

  19. 큐브리드 replication 모니터링

  20. 큐브리드 성능 관련 질문드립니다.

  21. dbspaceinfo api 질문

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 208 Next
/ 208

Contact Cubrid

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

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5