将Rails app基础架构从一个托管区域逐位迁移到另一个托管区域(只有公共Internet连接它们)我需要将Redis实例从一侧迁移到另一侧。
我倾向于使用主从设置来确保不会丢失任何内容并且我们没有任何停机时间,而不是转储数据(甚至很小:只是队列)。
互联网说SSH是我的朋友。
Old1是托管主Redis服务器的旧服务器。 Redis绑定了服务器的专用网络IP。
New1是托管新Redis服务器的新服务器。
在New1上我设置了ssh隧道/端口转发:
ssh -L 7380:<private_old1_ip>:6379 username@old1.publicname.ex
仍然在New1上我检查我是否可以连接到两个实例:
redis-cli -p 6379
redis-cli -p 7380
在两个基地,信息都有效。
On New1:Redis,通过redis-cli我设置了从属模式:
salveof localhost 7380
现在这里是New1上的信息:Redis:
# Replication
role:slave
master_host:localhost
master_port:7380
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:1399544048
slave_priority:100
slave_read_only:1
connected_slaves:0
当Old1:Redis(通过隧道)时:
# Replication
role:master
connected_slaves:1
slave0:<private_old1_ip>,6379,online
所以隧道已经启动并正常工作。 有足够的内存可用。 从站似乎在Old1侧连接(但与Old1 ip一起出现)。 从站表示主链路状态已关闭且同步未在进行中。
我错过了什么?
答案 0 :(得分:0)
事实上问题很简单。
日志目标设置为/ dev / null,因此/ var / log
中没有出现任何内容存储目录设置为./,显然不能很好地处理守护程序设置,导致同步时出现权限错误。