Redis SENTINEL RESET

<< SENTINEL SENTINELS SENTINEL FAILOVER >>

Redis SENTINEL RESET

센티널의 상태 정보를 초기화(reset)하고, 센티널이 모니터링하고 있는 마스터, 클론, 다른 센티널 정보를 새로 고친다(refresh).   refresh 또는 reset되는 데이터를 요약해서 설명하면 다음과 같다.
1) 모니터링하는 마스터 정보.
2) 마스터에 연결되어 있는 슬레이브 정보.
3) 마스터를 모니터링하는 다른 센티널 정보.
4) 대부분의 플레그(flag)정보가 리셋된다. 그러므로 장애조치(failover)가 진행중이었다면 장애조치는 최소되고, 다시 시작된다.
5) 대부분의 시간 값들이 초기화된다.
Reset 또는 Refresh 되는 정보/항목은 Sentinel Data Structure를 참조하세요.

INFO sentinel로 조회해 보면 다운(s_down)된 슬레이브도 포함된 개수가 나오는데, RESET 명령을 사용하면 다운된 슬레이브는 제거된 개수가 나온다.

사용법

명령: SENTINEL RESET <master name>
특정 마스터 이름을 지정하거나 글로브(glob) 패턴을 사용할 수 있다.   모든 마스터를 리셋하려면 마스터 이름에 '*'을 사용하면 된다.   리턴 값은 리셋한 마스터 개수이다.   마스터 이름을 잘못 입력해도 에러는 나지 않고 '0'을 리턴한다.

실행 예


새로 고침(REFRESH) 또는 리셋(RESET)하는 항목

  • 마스터 : 슬레이브 정보를 새로 고친다.
  • 클론 : 슬레이브 정보를 새로 고친다.
  • 센티널 : 다른 센티널 정보를 새로 고친다.
  • 연결정보 : link->cc, link>pc 연결정보를 새로 고친다.
  • failover_state : SENTINEL_FAILOVER_STATE_NONE
    failover_state를 0으로 초기화한다.
  • failover_start_time : 리셋 시에는 0으로 세팅한다.
    장애초지(failover) 시작 시에는 현재 시작 + 랜덤(0~999ms) 시간을 더 한다.   이렇게 하는 이유는 센티널 리더 선출 실패 시 재 선출을 시도하는 여러 센티널의 선출(투표) 시작 시각이 동일하면 리더 선출에 실패하여 선출시도가 반복될 수 있기 때문이다.
    #define SENTINEL_MAX_DESYNC 1000
    master->failover_start_time = mstime()+rand()%SENTINEL_MAX_DESYNC;
    이와 관련된 원문의 여기를 보세요.
  • failover_state_change_time : 리셋 시에는 0으로 세팅한다.
    각 장애조치 단계(failover state)마다 단계 시작 시각을 세팅한다.
    다음은 각 단계마다 센티널 로그에 기록되는 메시지와 단계 정의이다.
    • "+new-epoch", "+try-failover" : SENTINEL_FAILOVER_STATE_WAIT_START,
      flags = SRI_FAILOVER_IN_PROGRESS, 장애조치 시작
    • "+failover-state-select-slave" : SENTINEL_FAILOVER_STATE_SELECT_SLAVE, 마스터로 승격할 슬레이브 선택
    • "+failover-state-send-slaveof-noone" : SENTINEL_FAILOVER_STATE_SEND_SLAVEOF_NOONE, slaveof no one 명령 실행
    • "+failover-state-wait-promotion" : SENTINEL_FAILOVER_STATE_WAIT_PROMOTION, 마스터로 승격
    • "+promoted-slave", "+failover-state-reconf-slaves" : SENTINEL_FAILOVER_STATE_RECONF_SLAVES, 새 마스터를 바라보도록 슬레이브 정보 변경
    • "+failover-end" : SENTINEL_FAILOVER_STATE_UPDATE_CONFIG, 정보를 갱신하고, 새 마스터 모니터링을 시작한다.
    • Failover 취소(abort) 시: SENTINEL_FAILOVER_STATE_NONE
    • 초기화(처음 설정), 마스터 리셋 시 '0'으로 세팅: SENTINEL_FAILOVER_STATE_NONE
  • promoted_slave : NULL
  • runid : NULL
  • slave_master_host : NULL
  • link->act_ping_time : Now
  • link->last_ping_time : 0
  • link->last_avail_time : Now
  • link->last_pong_time : Now
  • role_reported_time : Now
  • role_reported : SRI_MASTER

명령문

SENTINEL RESET <master name>

  • 이 명령은 version 2.8.0 부터 사용할 수 있다.
  • 이 문서는 버전 3.2.2을 기준으로 만들었다.

Clients for Java Jedis, Lettuce
Clients for C Hiredis


<< SENTINEL SENTINELS SENTINEL RESET SENTINEL FAILOVER >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 返事がかかってなれば、メールでお知らせします。