ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MariaDB 복제 구성 별 복제 상태 확인 방법 (Replication, Galera)
    DBMS(MariaDB, PostgreSQL) 2026. 6. 9. 10:48

     

    안녕하세요 (주)제스트정보기술 입니다!

     

    오늘은 MariaDB의 복제상태 확인 방법에 대해서

    알아보도록 하겠습니다.

     

    이전 시간에 작성한 'MaxScale 기본 사용법'의 명령어로도

    빠르게 상태를 확인할 수 있지만,

    DB서버에 직접 붙어 CLI 환경에서 주로 작업을 하는 경우에는

    DB내부 쿼리나 프로세스 상태 등으로 직접 확인하는 것이 더 빠르고 간단한 방법이 될 수 있습니다.

     

     

    # 1. Replication 구성 상태 확인

     

    ## Slave(Replica) 노드에서 복제 상태 확인

    (참고 : 최신버전으로 가면서 용어를 Slave 노드에서

    Replica 노드로 바꿔나가는 추세지만,

    현재 글에서는 익숙한 기존 명칭 Slave를 기준으로 설명하겠습니다.)

     

    Replication 구성은 복제를 수행하는(=데이터를 가져와서 반영하는)

    주체가 슬레이브 서버이기 때문에

    마스터의 정보를 확인하여 복제를 설정한 이후에는

    슬레이브에서 마스터를 "복제해오고 있는" 상태가 중점입니다.

     

    마스터에서도 `SHOW SLAVE HOSTS;` 명령을 통해

    나를 바라보는 슬레이브가 누군지, 몇개인지 정도의 간략한 정보는 확인 가능하지만,

    1. 현재 복제가 어디까지 진행되었고

    2. 에러가 발생한 경우 에러메세지는 무엇인지

    3. 지연은 어느정도인지

    등의 디테일한 복제 상태를 확인하려면

    슬레이브 서버에서 확인하는 것이 좋습니다.

     

    대표사진 삭제

    AI 활용 설정

    사진 설명을 입력하세요.

    위는 정상적으로 복제 수행중인 슬레이브 서버에서

    `SHOW SLAVE STATUS \G` 명령어를 수행한 결과입니다.

     

    항목이 많지만 상태 확인 시 가장 먼저 확인하는 것은

    아래 4가지 항목입니다.

     

    1. Slave_IO_Running
     = 마스터와의 통신 상태를 나타냅니다.
       복제 설정 시에 입력했던 정보와 마스터의 정보가 달라서 접속이 불가하거나, 
       마스터와 네트워크가 단절되는 경우 항목의 값이 NO로 표시되고 복제가 중단됩니다.
    
    2. Slave_SQL_Running
     = 가져온 데이터를 정상적으로 반영하고 있는지를 나타냅니다.
       마스터에서 정상적으로 데이터를 가져왔더라도, 
       슬레이브 DB에 해당 쿼리를 적용하는 과정에서 충돌이 발생하면
       (ex: 중복 키 에러, 데이터 정합성 문제 등) 
       항목의 값이 NO로 표시되며 복제가 멈추게 됩니다.
       
    3. Last_Errno
     = 복제 중 발생한 에러코드를 나타냅니다.
       정상적인 상태에서는 0으로 나오고 아래 Last_Error 항목이 비어있지만
       에러가 발생하면 에러코드와 메세지를 표시합니다. 
    
    4. Seconds_Behind_Master
     = 마스터와 슬레이브 간 데이터 동기화 지연 시간을 표시합니다.
       실시간으로 동기화가 진행되고 있다면 0초로 표시되며,
       값이 계속 커지고 있다면 복제 상태를 따라가지 못하고 지연 상태가 지속되고 있음을 의미합니다.
     

    이 외에도 `Read_Master_Log_Pos`와 `Exec_Master_Log_Pos`를

    비교하여

    마스터에서 읽어온 데이터를 얼마나 반영했는지 확인하는 등

    많은 정보를 확인 가능한 기본명령어 입니다.

     

    ## SHOW SLAVE HOSTS;

    대표사진 삭제

    AI 활용 설정

    사진 설명을 입력하세요.

    앞에서 언급했던 `SHOW SLAVE HOSTS;`의 예시입니다.

    슬레이브로 붙은 서버 수 만큼 표시되며,

    IP / Port / 각 서버의 id 를 확인 가능합니다.

     

     

     

    # 2. Galera Cluster 구성 상태 확인

    마스터-슬레이브 단방향 복제인 Replication 구성과 다르게

    다중 마스터 구조인 Galera는 마스터와 슬레이브를 구분할 필요 없이

    클러스터에 속한 아무 노드에서나 전체 클러스터 상태를 확인할 수 있습니다.

     

    대표사진 삭제

    AI 활용 설정

    사진 설명을 입력하세요.

    `SHOW STATUS LIKE 'wsrep_%';` 명령어를 수행하면

    Galera와 관련된 많은 정보가 출력되지만

    그 중 핵심적인 상태라고 한다면

    위 사진의 5가지 항목들을 뽑을 수 있습니다.

     

    1. wsrep_cluster_status
     = 클러스터의 현재 상태(정족수 유지 여부, Quorum)를 나타냅니다.
       정상적으로 통신이 이루어지고 있다면 Primary로 표시되지만,
       네트워크 단절 등으로 인해 과반수(Quorum)를 잃어버린 경우 Non-Primary로 표시되며
       클러스터 전체의 서비스가 중단될 수 있습니다.
    
    2. wsrep_connected
     = 해당 노드가 클러스터 네트워크에 정상적으로 연결되어 있는지를 나타냅니다. 
       정상적인 경우 ON으로 표시되며,
       네트워크 문제나 설정 오류 등으로 클러스터에 합류하지 못했다면 OFF로 표시됩니다.
    
    3. wsrep_ready
     = 해당 노드가 DB 쿼리를 처리할 준비가 되었는지를 나타냅니다.
       정상적인 상태에서는 ON으로 표시되며,
       노드에 문제가 생겨 클러스터에서 분리되거나 동기화가 깨진 경우 OFF로 변경됩니다.
       (항목이 OFF 상태일 때는 해당 노드에서 DB 쿼리 수행이 불가능해집니다.)
    
    4. wsrep_cluster_size
     = 현재 클러스터에 정상적으로 연결되어 통신하고 있는 총 노드의 개수를 나타냅니다.
       (garbd 사용 중인 경우 총 개수에 포함)
       만약 데이터노드 2 + garbd 1 = 총 3대로 구성된 클러스터에서 
       이 값이 2 이하로 떨어진다면, 일부 노드에 장애가 발생했거나 클러스터에서 이탈했음을 의미합니다.
      
    5. wsrep_local_state_comment
     = 현재 노드의 동기화 상태를 직관적인 텍스트로 보여줍니다.
       정상적으로 동기화가 완료되어 서비스 가능한 상태라면 Synced로 표시됩니다.
       만약 Joining, Donor/Desynced 등으로 표시된다면
       다른 노드와 데이터를 맞추는 중이거나 복구 작업 중인 상태입니다.
     

     

     

     

    # 마무리

     

    상태 확인 명령어는 위처럼 매우 간단하지만,

    명령어 결과에서 아래와 같은 경우가 발생한다면 주의가 필요합니다.

     

    1. Slave_SQL_Running : NO

    2. wsrep_ready : OFF

     

    이 두 경우에는 문제의 원인을 정확하게 파악 및 조치하지 않은 상태로 DB를 재기동 하거나 복제를 넘기면

    데이터가 영구적으로 유실되거나 클러스터 전체가 꼬여 망가질 수 있으므로

    로그 확보 및 에러 내용 확인을 우선시하시고

    복구 속도에 몰두하여 추가적인 문제가 발생하지 않도록

    주의하시길 바랍니다.

     

     

     

     

    사진 삭제

    AI 활용 설정

    사진 설명을 입력하세요.

    <제스트정보기술 기술지원>

     

    제스트정보기술은 20년 이상의 WEB/WAS 기술지원 경험과 노하우를 바탕으로

    고객의 상용소프트웨어(JEUS, WebLogic, JBoss EAP, Oracle DB 등)에 소요되는

    획기적인 비용절감과 시스템 서비스의 성능을 전반적으로 개선하여

    기술지원, 컨설팅을 제공하고 있습니다.

     

    오픈소스 기반의 SW 설치 및 구성 , 시스템 구축 이후 케어팩(Care Pack)

    서비스를 통하여 기존 고비용에 따른 상용 SW 운영 비용의 획기적인 절감은 물론,

    고객의 운영 시스템을 안정적으로 지원하기 위한 서비스를 제공하고 있습니다.

    제스트정보기술

    서울특별시 금천구 디지털로 121

    <오픈소스 기술지원 문의>

     

     

    영업지원 : sales@xest.kr

    전화번호 : 02-558-5918

    팩스번호 : 02-558-5913

    홈페이지 : http://www.xest.kr

     

Designed by Tistory.