redis集群数据迁移

redis集群数据备份迁移方案

迁移环境描述及分析redis

当前咱们面临的数据迁移环境是:集群->集群。shell

源集群:app

 

源集群为6节点,3主3备测试

ui

搜索引擎

192.168.112.33:8001spa

192.168.112.33:8004-8006索引

192.168.112.33:8002ci

同步

192.168.112.33:8003

值得注意的是:全部的槽位都分配在192.168.112.33:8001节点上,这样更方便咱们迁移。

目标集群:

 

也是6节点,3主3备

192.168.112.33:6001

192.168.112.34:6002

192.168.112.33:6005

192.168.112.33:6000

192.168.112.33:6004

192.168.112.34:6003

选择合适的迁移方法

1.  使用shell脚本+redis命令

2.  使用dump.rdb或appendonly.aof文件

第一种适用于数据量少,只迁移部分数据的状况。第二种适用于咱们当下的状况。

迁移步骤

前期准备:

1) 停掉全部节点(先备后主),而后删除全部节点下的appendonly.aof和dump.rdb文件,再动全部主节点,停掉全部节点(有密码的话,最好先不要用密码)

2) 肯定目标库全部节点appendonly为yes,将全部槽位分配到一个主节点

3) 停掉拥有全部槽位的那个节点,等待appendonly.aof文件

停业务迁移:

4) 停业务,此时能够同步对全部应用修改redis配置(钉钉,管理门户,搜索引擎)

5) 源库手动触发bgrewriteaof            源端(2分钟)

6) 复制发送备份appendonly.aof            源端,目标端(5分钟)

7) 启动目标节点                        目标端(5分钟)

8) reshared槽位,启动备节点,设置密码  目标端(5分钟)

恢复应用:

9) 启动全部应用,并验证

迁移测试实施

如下是迁移步骤的整个实施过程:

 

目标端停集群(先备后主):

 

 

 

 

清除appendonly.aof和dump.rdb

 

 

 

 

启动全部主节点

 

 

 

 

 

转移槽位到192.168.112.36:6004节点

./redis-trib.rb reshard --from bdd63e1f522d78eb1bb2574b2461a7302e14944a  --to 1d204c88a14a76dc30abb05025135f7e850f2a5d  --slots 5461 --yes 192.168.112.36:6004

./redis-trib.rb reshard --from be5b41880afac9c41b09e0d4e3be1ce1eb00959a  --to 1d204c88a14a76dc30abb05025135f7e850f2a5d  --slots 5462 --yes 192.168.112.36:6004

 

改配置文件,并停掉节点

 

 

原端集群,停业务备份数据

 

 

copy文件appendonly.aof到目标库分配了全部槽位的那个节点指定的appendonly.aof路径下,并启动节点。

 

再从新分配槽位,使槽位平均分配到各主节点。

 

 

 

而后启动全部的备节点,并设置密码,

redis-cli -c -h 192.168.112.33 -p 6000 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.33 -p 6000 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.33 -p 6000 config rewrite

 

redis-cli -c -h 192.168.112.33 -p 6001 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.33 -p 6001 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.33 -p 6001 config rewrite

 

redis-cli -c -h 192.168.112.34 -p 6002 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.34 -p 6002 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.34 -p 6002 config rewrite

 

redis-cli -c -h 192.168.112.34 -p 6003 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.34 -p 6003 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.34 -p 6003 config rewrite

 

redis-cli -c -h 192.168.112.36 -p 6004 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.36 -p 6004 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.36 -p 6004 config rewrite

 

redis-cli -c -h 192.168.112.36 -p 6005 config set masterauth Woread#2018

redis-cli -c -h 192.168.112.36 -p 6005 config set requirepass Woread#2018

redis-cli -c -h 192.168.112.36 -p 6005 config rewrite

 

redis集群迁移就到此完成了。

相关文章
相关标签/搜索