복붙노트

[REDIS] 마스터와 슬레이브하지 않습니다 동기화 레디 스

REDIS

마스터와 슬레이브하지 않습니다 동기화 레디 스

레디 스 슬레이브하지 동기화 마스터와 것입니다.

내가 발행 할 때 나는 마스터에 연결할 수 있습니다

HOST_NAME=fakehost
redis-cli -h $HOST_NAME

연결이 문제가되지 않도록하고, 정보와 같은 명령을 사용하여 마스터 상태를 확인합니다.

슬레이브 상자에서, 나는 발행

SLAVEOF $HOST_NAME 6379

그리고 OK를 받았다.

내가 노예에 대한 정보 명령을 실행할 때, 나는 얻을

# Replication
role:slave
master_host:<removed>
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:1379450797
slave_priority:100
slave_read_only:1
connected_slaves:0

마스터 상자에서, 나는 문제의 정보를 얻을

# Replication
role:master
connected_slaves:0

그래서 분명히 내가 연결되어 있지 않다.

[11225] 17 Sep 14:31:33.225 * Connecting to MASTER...
[11225] 17 Sep 14:31:33.226 * MASTER <-> SLAVE sync started
[11225] 17 Sep 14:31:33.226 * Non blocking connect for SYNC fired the event.
[11225] 17 Sep 14:31:33.226 * Master replied to PING, replication can continue...
[11225] 17 Sep 14:31:33.227 # MASTER aborted replication with an error: ERR Unable to perform background save

시험이 dump.rdb은 BGSAVE에 생성됩니다

BGSAVE
> OK

시험이 dump.rdb은 SAVE에 생성됩니다

SAVE
> OK

미리 감사드립니다.

해결법

  1. ==============================

    1.오늘 비슷한 상황 발생했습니다. 사용 sysctl을 그 시스템에, 당신이 할 수있는 것 같습니다 :

    오늘 비슷한 상황 발생했습니다. 사용 sysctl을 그 시스템에, 당신이 할 수있는 것 같습니다 :

    sysctl vm.overcommit_memory=1
    

    슬레이브 레디 스 서버를 다시 시작합니다. 이 링크는 도움이 될 수 있습니다.

  2. ==============================

    2.작은 힘들이 문제,

    작은 힘들이 문제,

    그 이유는 슬레이브 수없는 동기 마스터 그 자체에 있는지,

    로그 출력에주의 :  오류와 MASTER 중단 된 복제 : 저장 배경을 수행 할 수 없습니다 ERR

    이 마스터는 마스터 시스템에 메모리가 부족한 예비 인해 절약 배경을 할 수 없다는 의미입니다

    마스터 서버 레디 스이 문제 I 재시작하는을 해결하기 위해, 모든 노예는 그 자체로 동기화되어왔다.

  3. ==============================

    3.내가 requirepass 세트를 가지고 있지만, masterauth 설정을 설정하지 않았기 때문에 나를 위해, 그것은이었다.

    내가 requirepass 세트를 가지고 있지만, masterauth 설정을 설정하지 않았기 때문에 나를 위해, 그것은이었다.

  4. ==============================

    4.저도 같은 문제를 만났다, 나의 이유는 내 서버가 동일한 레디 스 버전을 사용하지 않는 것입니다. 이제 두 서버 버전을 확인하자

    저도 같은 문제를 만났다, 나의 이유는 내 서버가 동일한 레디 스 버전을 사용하지 않는 것입니다. 이제 두 서버 버전을 확인하자

    127.0.0.1:6379> info server
    # Server
    redis_version:3.2.8
    
  5. ==============================

    5.redis.conf 내 기본 설정은 "masterauth [passwordOfMaster]"노예의 터미널 "SLAVEOF"이전에이 문제를 해결합니다 실행, requirepass 수 있었다.

    redis.conf 내 기본 설정은 "masterauth [passwordOfMaster]"노예의 터미널 "SLAVEOF"이전에이 문제를 해결합니다 실행, requirepass 수 있었다.

  6. ==============================

    6.내 경우에는, 그것은 문제가 해결 허용 모드로 변경, SELINUX 관련되었다.

    내 경우에는, 그것은 문제가 해결 허용 모드로 변경, SELINUX 관련되었다.

  7. ==============================

    7.나는 그에게 다음과 같은 고정 :

    나는 그에게 다음과 같은 고정 :

    sudo -i
    service redis-server stop
    apt remove --purge redis-server
    rm /var/lib/redis/dump.rdb
    apt install redis-server
    systemctl enable redis-server
    service redis-server start
    
    # i have not tried, but it is possible this is enough
    service redis-server stop
    rm /var/lib/redis/dump.rdb
    service redis-server start
    
  8. ==============================

    8.나는 보호 모드 내가 레디 스 5.0.5을 사용하여이 설정하려고 할 때에 있던 것을 발견했다. 나는 "정보"를 실행하려고 할 때 나는이 메시지를 받았습니다 (루프백 또는 UNIX 소켓 반대로) 나는 그것의 eth0 인터페이스의 추정 마스터에 로그인 할 때 :

    나는 보호 모드 내가 레디 스 5.0.5을 사용하여이 설정하려고 할 때에 있던 것을 발견했다. 나는 "정보"를 실행하려고 할 때 나는이 메시지를 받았습니다 (루프백 또는 UNIX 소켓 반대로) 나는 그것의 eth0 인터페이스의 추정 마스터에 로그인 할 때 :

    IP_ADDRESS_REDACTED:6379> info
    DENIED Redis is running in protected mode because protected mode is
    enabled, no bind address was specified, no authentication password
    is requested to clients. In this mode connections are only accepted
    from the loopback interface. If you want to connect from external
    computers to Redis you may adopt one of the following solutions:
    1) Just disable protected mode sending the command 'CONFIG SET 
    protected-mode no' from the loopback interface by connecting to Redis
    from the same host the server is running, however MAKE SURE Redis is
    not publicly accessible from internet if you do so. Use CONFIG REWRITE 
    to make this change permanent. 2) Alternatively you can just disable
    the protected mode by editing the Redis configuration file, and
    setting the protected mode option to 'no', and then restarting the
    server. 3) If you started the server manually just for testing,
    restart it with the '--protected-mode no' option. 4) Setup a bind
    address or an authentication password. NOTE: You only need to do one
    of the above things in order for the server to start accepting
    connections from the outside.
    

    나는 지시 사항을 따라 슬레이브는 즉시 연결되어 있습니다.

  9. from https://stackoverflow.com/questions/18859763/redis-slave-wont-sync-with-master by cc-by-sa and MIT license