Home  >  Article  >  Database  >  Redis手动failover

Redis手动failover

WBOY
WBOYOriginal
2016-06-07 17:41:091016browse

本文介绍redis主从环境下的手工failover操作及排错过程,实现主实例宕机的时候,将从实例提升为主实例,继续写入数据;等到原主实例恢复后,同步原从实例上的数

本文介绍redis主从环境下的手工failover操作及排错过程,实现主实例宕机的时候,将从实例提升为主实例,继续写入数据;等到原主实例恢复后,同步原从实例上的数据完成后,恢复初始的主从实例角色!

环境介绍
操作系统版本均为:rhel5.4 64bit
redis版本:2.6.4
redis实例端口均为:6379
redis实例密码均为:123
主实例为server11(192.168.1.112)
从实例为server12(192.168.1.113)

一:未配置持久化情况下的手工切换
1:正常情况下,server11为主实例,server12为从实例,数据同步正常

2:当主实例挂掉的时候,从实例可以正常查询,但无法写入数据

3:将从实例提升为主实例,从而实现数据写入

4:主实例恢复后尝试从server12实例上获取最新的数据,实际测试表明这种方法不可行,最终导致server11和server12的数据不一致,如果强行恢复初始实例角色,免备案空间,则会导致数据丢失

二:开启从实例快照持久化下的测试
1:恢复原测试环境后,开启从实例的快照持久化,因为是测试环境,所以设置60秒内如果有1条数据变更则保持一次快照

2:写入测试数据主从环境数据是否同步正常

3:模拟主实例宕机,香港服务器,香港服务器,手动将从实例提升为主实例,继续写入新数据

4:原主实例恢复后的数据同步及角色复原,这里同步数据采取将从实例的快照文件复制到主实例的方式实现

后续扩展:本文实现的failover过程,到从实例提升到主实例阶段都是可以通过部署keepalive自动实现的,在最后原主实例数据同步和角色复原可以通过shell脚本来调度,下篇文章中将对此进行详细的介绍!
 

本文出自 “斩月” 博客,谢绝转载!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn