The redis slave won't sync with the master.
Connectivity:
I can connect to the master when I issue
HOST_NAME=fakehost
redis-cli -h $HOST_NAME
and check the master status using a command like INFO
, so connectivity is not an issue.
Settings:
From the slave box, I issued
SLAVEOF $HOST_NAME 6379
And received an OK
.
When I issue the INFO
command on the slave, I get
# 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
On the master box, I issue info
and get
# Replication
role:master
connected_slaves:0
So obviously I'm not connected.
Logs
[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
Tests
Test that dump.rdb is created on BGSAVE
BGSAVE
> OK
Test that dump.rdb is created on SAVE
SAVE
> OK
Thanks in advance.
I've met the same issue, and my reason is both of my servers do not use the same
redis version
. Let's check your version on both servers:This issue little tricky,
the reason that the slave can't sync is in the master itself,
pay attention to the Log output : MASTER aborted replication with an error: ERR Unable to perform background save
this is mean that the master can't do background saving due low memory reserve on the master machine,
to solve this issue I Restarted the master redis server , then all the slaves has been sync by themselves.
my default settings in redis.conf enabled requirepass,executing " masterauth [passwordOfMaster] "in slave's terminal before "SLAVEOF" will fix this issue.
In my case, it was related to SELINUX, changing it to permissive mode resolved the issue.
I fixed it the following:
I encountered a similar situation today. It seems that for systems that use
sysctl
, you might have to do:and restart the slave redis server. This link might help.