如何将redis dump从3.2版(没有docker)恢复到6.0版(使用bitnami docker映像运行)

rqcrx0a6  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(345)

初始目标
目前我们有一个旧版本的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
jljoyd4f

jljoyd4f1#

您是否尝试过直接从4.0升级到5.0?我不认为按版本升级是一个好主意,因为我们每天都会发布一个新版本,有时,他们会用另一个版本修补错误。除此之外,我建议您按照官方文档升级您的数据库。一个主要版本通常意味着不兼容的更改,所以我很肯定你会发现一些问题的方式。很有可能仅仅改变图像标签是行不通的。

相关问题