一.备份redis文件
vi redis.conf ,看看有没有这两行设置,有的话改成跟下面的一致:
appendonly yes
appendfilename "appendonly.aof"
之后连接redis客户端,输入INFO persistence,如图所示即为开启成功:
设置好后,在连接号的客户端输入save,保存一下数据(下面是为了测试,set了一条数据adminname):
输入grep -i "dir" /etc/redis.conf ,找到redis安装目录(一般用yum 安装的话在var/lib/redis),一般aof都会放在安装目录下。
二,解压并配置TongRDS-2.2.1.3.Load
解压
请确保解压所在的服务器,跟rds节点安装目录的服务器的网络是通的,并且已经安装并配置了java环境变量。
本次示范将TongRDS-2.2.1.3.Load.tar.gz 放在opt下:
tar -vxf TongRDS-2.2.1.3.Load.tar.gz
解压后,cd到etc目录,找到application.properties:
所有的配置如下所示,自己也可以根据实际情况参考下面的单机版,哨兵版,集群版进行配置:
#
# Redis source file.
# AOF RDB File path, judging by file suffix
#AOF 或者RDB 文件路径
file.path=/var/lib/redis/appendonly.aof
# File type: aof/rdb/mix/mixed
file.type=mix
# Rds destination address.
#单机版的话将下面的注释放开并配置
#destination.hosts=192.168.10.66:6379
#destination.password=yeyehuo163
#destination.password.encrypt=true
#哨兵版的话将下面的注释放开并配置
#destination.sentinel.hosts=192.168.10.67:26379;192.168.10.68:26379
#destination.sentinel.password=yeyehuo163
#destination.sentinel.password.encrypt=true
#destination.sentinel.service=shaobingtest
#集群版的话将下面的注释放开并配置
#destination.cluster.hosts=192.168.10.64:6381;192.168.10.65:6381;192.168.10.66:6380;192.168.10.67:6380
#destination.cluster.password.encrypt=true
#destination.cluster.password=yeyehuo163
以下是rds三种基本服务的配置参考:
单机版:
服务节点可在rds控制台上看:
集群版
如果有类似jedis.exceptions,JedisDataException: NOAUTH uthentication required的报错,可以把destination.cluster.password.encrypt这一行注释掉,把destination.cluster.password改成desination.password 试试看。
集群版里的服务节点,可以通过控制台或者使用客户端脚本查看
备注:记得看每个节点后的connetcted这个关键字,这是连接成功的意思,如果连接失败会有disconnetcted的字眼,这种要排查是否连接出问题了,排查思路拉到后面看问题收集。
哨兵版:
详细信息可以在控制台查看:
三,执行指令并测试
修改好后,cd到loder的安装目录的bin目录,执行
./starter.sh
如下图为执行成功:
到控制台的命令行维护里输入指令测试是否成功(单机版,哨兵版,集群版均在选择按钮里切换即可):
问题收集:
1.多个rdb或者dump文件如何配置?
如下图所示,每个rdb文件用;号隔断,并且file.type里要写同样多的文件类型,例如图片里配了三个rdb的路径,那就是三个rdb,用;号隔开。
2.集群模式的话,是迁移主节点还是从节点?
主节点即可,从每个redis的主节点拿出rdb文件,拿出的时候输入指令dbsize查看,迁移后在rds上,用./Client.sh查看即可。
例如原redis环境三个主节点A,B,C,通过迁移工具迁移到rds上,迁移前查看dbsize,然后算一个总和,算出的总和在迁移完成后,在rds上同样用./Client.sh 连接后输入dbsize,查看出来的总和一致,就说明迁移的key总数是一样的。
如果有这种图片提示:
有可能是导入的rdb用的从节点的,并且RDS的槽位分片和redis的槽位分片不一致。
查看rds槽位分片和redis槽位分片一样,都是cluster nodes查看。
4..jedis.exceptions,JedisDataException: NOAUTH uthentication required报错
一般是配置了密码,密码校验不通过导致。
解决方案有两种,关闭密码校验,或者检查迁移工具的配置文件里的密码有没有配对。
5.dbsize对不上
参考2.集群模式的话,是迁移主节点还是从节点?这个地方。
另外查看一下key有没有设置过期时间,如果有,看看是否已经过期(百度搜ttl key命令查看过期时间)。
6.如何调整dbsize。
服务节点安装目录的cfg.xml,调整rows(一般不推荐修改,除非服务器内存足够)
7.disconnetcted 状态怎么排查。
先看中心节点的cluster.properties,看看配置是否正确。
看完后到执行cluster nodes的服务器上的服务节点的bin目录,执行./Client.sh -r -h 服务器ip -p 对应服务节点的端口 ,如果不能连接,那就要排查是否是网络问题了(例如防火墙是否拦截)。