前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 迁移(操作流程建议)1

Redis 迁移(操作流程建议)1

作者头像
franket
发布2022-06-26 14:56:06
2940
发布2022-06-26 14:56:06
举报
文章被收录于专栏:技术杂记

除了下面两条,其它配置都一样

router_id:不同节点不一样

priority:master要高于slave

修改iptables

加入如下配置到b和c 的filter表,然后reload

-A INPUT -d 224.0.0.18 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

Note: 加载完iptables配置 ,最好在其它机器上进行一个访问测试,避免出现网络问题

b同步到a

选择业务低峰点操作

SLAVEOF a 6379

可以使用以下命令观察同步状态 master_sync_in_progress

info replication

Note: b的同步完成之后,使用相同的方法让c同步b

关闭slave只读

在b上关闭slave只读

Tip: 这个设置本来是为了安全,避免对slave的写操作而导致的数据不一致,但为了平滑切换,需要牺牲一点这方面的安全考虑,如果不打开此设置,会出现一些写入报错

CONFIG SET slave-read-only no

切换keepalived,发布到新VIP

1.切换keepalived,把ip切换到b (可以通过调整优先级,然后reload)

2.然后发布应用到新的VIP(修改配置,将新的VIP作为对redis的访问IP)

Note: 如果先进行的步骤 2 ,然后进行的步骤 1 ,这样有一段时间由于arp缓存的缘故,同时会对a和b进行读写操作,如果应用层面对于数据的读写划分得比较好,短时间内,不会造成太大的问题(a b数据不一致),但时间久了就不行,最彻底的解决办法,还是对新VIP再重新发布一下

断开同步

观察一段时间,注意以下几个方面

1.a上的redis网络连结数 (连接数降为0)

2.b上的redis网络连接数 (连接数逐渐稳定)

3.日志与报错 (没有特别值得注意的报错信息)

在b上使用如下命令断开与a的同步

slaveof no one

此时切换完成,b已经成为了c的master

Tip: 可以考虑重新将a 作为 b的slave,而原来a的slave也可以考虑回收(数据陈旧已经不能用),注意keepalived实例的优先级,避免飘回

原文地址

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档