初始目标
目前我们有一个旧版本的redis运行在一个物理服务器上(redisv3.2.1)。目标是拥有一个redis/slave拓扑和sentinel for ha。实现这一点的一种方法是使用版本6创建这个单一示例的从属。不幸的是,版本3和版本6之间存在icompatibility。
我想做什么
我试图将转储恢复到4.0.2-r0版本。很好用。
然后我尝试恢复到4.0.2-r1版本,但失败了,dump.rdb被一个空文件自动替换
如何繁殖
安装一个redis示例:
apt安装-y redis服务器redis工具
使用docker-compose.yml文件创建redis容器
version: '2'
services:
redis-master:
#image: 'bitnami/redis:6.0'
#image: 'bitnami/redis:4.0.2-r1'
image: 'bitnami/redis:4.0.2-r0'
container_name: redis-master
volumes:
- 'redis_data_master:/bitnami/redis/data'
ports:
- '6379:6379'
environment:
- REDIS_REPLICATION_MODE=master
- ALLOW_EMPTY_PASSWORD=yes
- REDIS_DISABLE_COMMANDS=FLUSHDB,FLUSHALL
volumes:
redis_data_master:
driver: local
``` `docker-compose up -d` docker stop redis-master `# Replace` 测试\u redis \u data \u master
by the right folder `sudo cp dump.rdb /var/lib/docker/volumes/test_redis_data_master/_data/dump.rdb` 对于这个docker compose文件,它可以与v4.0.2-r0一起使用,但不能与v4.0.2-r1一起使用。
此处显示cf日志:
版本4.0.2-r0
30:m 01 dec 13:52:55.993#服务器初始化30:m 01 dec 13:52:58.049*从磁盘加载的db:2.056秒30:m 01 dec 13:52:58.049*准备接受连接
已成功加载数据库
版本4.0.2-r1
20:m 01 dec 13:49:05.472#服务器初始化20:m 01 dec 13:49:05.472*准备接受连接
数据库为空
结论:你能帮我解决这个问题吗。是否有人面临同样的问题或同样的情况?
提前感谢您的帮助:d
1条答案
按热度按时间jljoyd4f1#
您是否尝试过直接从4.0升级到5.0?我不认为按版本升级是一个好主意,因为我们每天都会发布一个新版本,有时,他们会用另一个版本修补错误。除此之外,我建议您按照官方文档升级您的数据库。一个主要版本通常意味着不兼容的更改,所以我很肯定你会发现一些问题的方式。很有可能仅仅改变图像标签是行不通的。