Redis哨兵模式 在线手动切换主从
原创
©著作权归作者所有:来自51CTO博客作者白丁1024的原创作品,请联系作者获取转载授权,否则将追究法律责任
使用主要命令
config set slave-priority <parameter>
config get slave-priority <parameter>
Config rewrite
sentinel failover <parameter>
目标:把主库切换到192.168.2.101上
1.获取三个节点的优先级,值越小优先级越高
192.168.2.100:8000> config get slave-priority
1) "slave-priority"
2) "10"
192.168.2.101:8000> config get slave-priority
1) "slave-priority"
2) "50"
192.168.2.102:8000> config get slave-priority
1) "slave-priority"
2) "200"
2.将 192.168.2.101 优先级调整至 5,或将192.168.2.100的有限制调制 100
192.168.2.100:8000> config set slave-priority 100
192.168.2.100:8000> config get slave-priority
1) "slave-priority"
2) "100"
192.168.2.100:8000> config rewrite --执行该命令前,需手动将配置文件备份
3.退出再次确认三节点优先级
192.168.2.100:8000> config get slave-priority
1) "slave-priority"
2) "100"
192.168.2.101:8000> config get slave-priority
1) "slave-priority"
2) "50"
192.168.2.102:8000> config get slave-priority
1) "slave-priority"
2) "200"
192.168.2.101的 slave-priority 最小,也就是优先级最高
4.登录Sentinel,确定name
[root@db1 src]# ./redis-cli -p 28000
127.0.0.1:28000> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.2.100:8000,slaves=2,sentinels=3
127.0.0.1:28000>
进行切换
127.0.0.1:28000> sentinel failover mymaster
OK
127.0.0.1:28000>
日志:
2157:X 15 May 20:30:18.980 # +new-epoch 7
2157:X 15 May 20:30:20.048 # +config-update-from sentinel f9ef2f710b001f20716427fc39bf8284a86bfd3e 192.168.2.100 28000 @ mymaster 192.168.2.100 8000
2157:X 15 May 20:30:20.048 # +switch-master mymaster 192.168.2.100 8000 192.168.2.101 8000
2157:X 15 May 20:30:20.049 * +slave slave 192.168.2.102:8000 192.168.2.102 8000 @ mymaster 192.168.2.101 8000
2157:X 15 May 20:30:20.049 * +slave slave 192.168.2.100:8000 192.168.2.100 8000 @ mymaster 192.168.2.101 8000
2157:X 15 May 20:30:30.129 * +convert-to-slave slave 192.168.2.100:8000 192.168.2.100 8000 @ mymaster 192.168.2.101 8000
5.登录redis和sentinel再次确认切换后的主从关系