redis数据转移随笔
生产环境有一批版本比较老的redis主从架构,是一主多从,版本是2.8
由于想迁移到阿里云上,那么问题来了,怎么把redis数据转移到阿里云上
为了省事,阿里云也是和生产环境一样的版本,架构也一致,其实剩下的就好办了,把数据导出,再导入就行了
我们生产环境使用了aof和rdb两种持久化,好处是不怕意外的数据丢失
那么问题来了,怎么导入到阿里云
导出简单,首先在生产环境的redis的主节点执行bgsave,执行后将fork出新的子进程,不会阻塞redis,等完成后,把rdb文件拷贝出来,放到阿里云
先停止阿里云的主节点的redis, 把rdb文件放到阿里云主节点的数据文件夹下面,然后启动redis,然后,没数据,一看rdb文件没了,被重新创建了
这是怎么回事,想了好久才明白,由于同时开启aof和rdb持久化,优先使用aof恢复数据,由于没有aof,所以先创建aof然后再创建RDB那么数据肯定是没了,那这怎么办法呢?
既然这样,就先关闭aof,在配置文件里 appendonly yes 注释掉
然后关闭redis,再解压缩rdb文件,再启动redis,看下info有数据了,不错,然后关闭redis,打开aof持久化,启动redis,一看数据又没了,这可咋办
想了想应该还是aof优先的缘故,由于没有aof就创建aof然后清空RDB了,又回到了上面的问题
那么既然这样的话,就动态打开aof
先注释掉配置文件里的aof
解压缩RDB,启动redis,好了数据有了
然后我们动态打开aof
config set appendonly yes
然后去数据文件夹下看,已经开始产生aof文件了,等文件生成完毕,我们可以shutdown redis
然后打开配置文件中的appendonly yes 这次,rdb和aof都正常了,其实最后的rdb是重新生成的,从aof生成的
注释掉aof - 导入rdb-动态打开aof-生成aof-关闭redis-打开配置文件注释aof-redis从aof从新生成rdb
至此,数据迁移完成,主从数据也正常了
参考了以下解决方案
redis数据转移随笔的更多相关文章
- redis 数据持久化
1.快照(snapshots) 缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为dump.rdb.你可以配置Redis的持久化策略,例如数据集中每N秒钟有超过M次更新,就将数据 ...
- Redis学习笔记(5)——Redis数据持久化
出处http://www.cnblogs.com/xiaoxi/p/7065328.html 一.概述 Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存 ...
- Redis数据存储解决方案
http://www.tuicool.com/articles/77nUZn 1.背景 1.1 Redis简介 官方网站: http://redis.io/ ,Redis是REmote DIction ...
- java 24 - 4 GUI之创建数据转移窗口
需求: 把文本框中的数据,通过点击按钮,转移到文本域中. 同时清空文本框中的数据 代码:(步骤都注释了) public class FrameDemo4 { public static void m ...
- 云服务器 ECS Linux 系统盘数据转移方法
转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...
- Redis数据导入工具优化过程总结
Redis数据导入工具优化过程总结 背景 使用C++开发了一个Redis数据导入工具 从oracle中将所有表数据导入到redis中: 不是单纯的数据导入,每条oracle中的原有记录,需要经过业务逻 ...
- 5.1.1 读取Redis 数据
Redis 服务器是Logstash 推荐的Broker选择,Broker 角色就意味会同时存在输入和输出两个插件. 5.1.1 读取Redis 数据 LogStash::Input::Redis 支 ...
- sql server 2008 把远程的数据库的数据转移到本地数据数据库里
如题:把远程的数据库对应表里的数据转移到本地数据数据库的对应表里 比如把192.168.188.160的DB的A表的数据转移到本地的DB的A表里 第一步:连接远程服务器前准备 exec sp_addl ...
- Redis数据备份和重启恢复
一.对Redis持久化的探讨与理解 目前Redis持久化的方式有两种: RDB 和 AOF 首先,我们应该明确持久化的数据有什么用,答案是用于重启后的数据恢复. Redis是一个内存数据库,无论是RD ...
随机推荐
- Pytho条件判断
def health_status(): height = float(input("请输入身高(单位:米) :")) weight = float(input("请输入 ...
- 解决openstack实例主机名后缀问题
参考地址https://ask.openstack.org/en/question/26918/change-novalocal-suffix-in-hostname/ 问题现象 可以看到主机名的后缀 ...
- VLC播放器
为了将多个视频放在一个窗口,最开始想用的是windows media player ,6个视频,把整个电脑卡得不动了(显卡太弱,是多输出口的,没法换),于是又想把视频压缩成一个,网上的大部分软件要收费 ...
- Spark编程指南分享
转载自:https://www.2cto.com/kf/201604/497083.html 1.概述 在高层的角度上看,每一个Spark应用都有一个驱动程序(driver program).驱动程序 ...
- C语言堆栈入门——堆和栈的区别(转)
一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其 操 ...
- Python2.X和Python3.X的w7同时安装使用
一.介绍 Python([ˈpaɪθən])是一种面向对象.解释型计算机程序设计语言.Python语法简洁.清晰,具有丰富和强大的类库. Python源代码遵循GPL(GNU General Publ ...
- 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...
- python基础知识16---函数补充
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- 关于git merge,rebase合并的差别,以及*(no branch)的处理。
1.merge 在上篇介绍分支的时候有简单的说了一下分支的创建和合并,当时合并就是写的merge,这是依据两个不同分支的最后一次提交的commit对象c5,c7和两个分支的交叉点的commit对象c3 ...
- AD中修改OU下面用户的属性
第一种方法可行: get-ADuser -searchbase "ou=Wireless,dc=lstech,dc=com" -filter * | set-ADuser -Giv ...