redis怎么将rdb文件和aof文件还原数据库

1   AOF ----->      appendonly  yes     2  cp   appendonly.aof 到redis的数据库目录也就是配置文件里面的dir关键字   3  重启服务

2  RDB  ----->      appendonly   no     2 cp    dump.rdb到redis数据库目录也就是配置文件里面的dir关键字   3  重启服务

  • 如果只配置 AOF ,重启时加载 AOF 文件恢复数据;
  • 如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据;
  • 如果只配置 RDB,启动是将加载 dump 文件恢复数据。

2. 从 aof 中恢复数据

1 注意以下配置

appendonly yes
dir /home/redis/data_6379/

2 拷贝 AOF 文件到 Redis 的数据目录

cp appendonly.aof /home/redis/data_6379/

3 启动 redis-server

redis-server redis_6379.conf

3. 从 RDB 文件恢复数据

1 注意以下配置

appendonly no
dir /home/redis/data_6379/

2 拷贝 RDB 文件到 Redis 的数据目录

cp dump.db /home/redis/data_6379/

3 启动 redis-server

redis-server redis_6379.conf

使用 redis-port 工具将自建 redis 的 rdb文件同步到云数据库

下载 redis-port

redis-port地址

使用示例

  1. ./redis-port restore --input=x/dump.rdb --target=dst_host:dst_port --auth=dst_password [--filterkey="str1|str2|str3"] [--targetdb=DB] [--rewrite] [--bigkeysize=SIZE] [--logfile=REDISPORT.LOG]

参数说明

  • x/dump.rdb : 自建 redis 的 dump 文件路径
  • dst_host : 云数据库 redis 域名
  • dst_port : 云数据库 redis 端口
  • dst_password : 云数据库 redis 密码
  • str1|str2|str3 : 过滤具有 str1 或 str2 或 str3 的 key
  • DB : 将要同步入云数据库 redis 的 DB
  • rewrite : 覆盖已经写入的 key
  • bigkeysize=SIZE : 当写入的 value 大于 SIZE 时,走大 key 写入模式

根据 redis-port 日志查看数据同步状态

当出现restore: rdb done时数据同步完成。

参考文章: https://help.aliyun.com/document_detail/66008.html

 

原文地址:https://www.cnblogs.com/fyy-hhzzj/p/9087609.html

时间: 2024-10-29 05:11:19

redis怎么将rdb文件和aof文件还原数据库的相关文章

Redis 之 通过RDB文件进行恢复

一.背景 我们知道Redis是一种NoSql数据库,常用来做缓存数据库,因为运行在内存中,不用每次再到数据库中去查询需要的数据,所以比普通的关系型数据库性能更优越,在内存中操作数据肯定比磁盘上性能是很大的提高.所用很多企业都拿redis来做缓存数据库.在内存中存储数据就会涉及到一个不可避免的问题,如果宕机或者机器受到物理损坏或者关机的时候,内存中的数据就会消失.但是当我们再次开启redis服务的时候,数据还是存在的.既然是数据在内存中存储,我们再次开机时候,内存又加载了我们机器出问题时候的数据.

redis持久化策略RDB和AOF

Redis 持久化: redis 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾. Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存

Redis持久化之rdb&aof

Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件) RDB持久化方式是在一个特定的间隔保存某个时间点的一个数据快照. AOF(Append only file)持久化方式则会记录每一个服务器收到的写操作.数据回复时,这些记录的操作会逐条执行从而重建出原来的数据.写操作命令  记录的格式跟Redis协议一致,以追加的方式进行保存. Redis的持久化是可以禁用的,两种方式的持久化是可以同时存在的,但是当Redis重启时,AOF文件会被优先用于重建数据. 一.RDB RDB就

redis配置文件基本解析以及RDB持久化与AOF持久化

redis.conf 我们安装成功之后就会有这个配置文件,但是我们一般都不推荐直接使用出厂的配置文件,而是单独拷贝一份使用,以避免我们因为配置错误而带来不必要的麻烦. 如图我单独拷贝了一份在根目录下面的文件夹: redis单元: Tcp-backlog: 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列. 在这里三次握手队列我参考另一篇博文:https://blog.csdn.net/ityouknow/article

REdis AOF文件结构分析

REdis-5.0之前的AOF文件没有文件头,不管是REdis-5.0之前还是REdis-5.0,它们的AOF文件体内容都如下图所示: 从REdis-5.0开始,AOF有文件头,目的是支持同时加载RDB和AOF文件.AOF文件头和RDB文件头基本相同,但RDB文件头多了三个字段. 先看AOF和RDB通用部分的文件头内容: 1) 头5字节固定为REDIS 2) 第6~9共四字节为RDB版本号 3) 接下来为redis-ver和它的值,即redis版本 4) 接着redis-bits和它的值,即re

redis aof文件过大问题

http://www.itnose.net/detail/6682725.html 最近新安装了一台redis,版本为redis-3.2.5 数据盘用的是固态硬盘. 之前用的是普通硬盘,redis日志天天报 Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.

redis 持久化 如果 AOF 文件出错了,怎么办?

服务器可能在程序正在对 AOF 文件进行写入时停机, 如果停机造成了 AOF 文件出错(corrupt), 那么 Redis 在重启时会拒绝载入这个 AOF 文件, 从而确保数据的一致性不会被破坏. 当发生这种情况时, 可以用以下方法来修复出错的 AOF 文件: 为现有的 AOF 文件创建一个备份. 使用 Redis 附带的 redis-check-aof 程序,对原来的 AOF 文件进行修复. $ redis-check-aof --fix (可选)使用 diff -u 对比修复后的 AOF

redis中关闭rdb跟aof

当往redis中导入数据时,有时会出现redis server went away的情况,出现这一问题的原因有: 导入的数据量太大,而内存不够(即内存1G,但数据有2G).此时的redis服务需要重启. 可能是同一时间导入的数据太多,导致数据持久化的操作出问题,此时需要关闭rdb跟aof.关闭rdn的命令:config set save "", 关闭aof的命令:config set appendfsync no , 该两种设置查询是否已修改成功,可分别通过config get sav

redis学习笔记——RDB和AOF持久化二

上一篇对RDB的源码分析是比较多的,但是AOF持久化执行进行了一些理论上的分析和概念的说明.本来想自己偷一些懒,将上篇文章中最后所给链接的AOF实现代码随便过一过算了,后来也就是在过的过程中发现自己这也看不懂那也看不懂才知道AOF的重要性和难度. 后来又花了不少时间查阅资料.结合源代码分析,对AOF的大概执行过程有了更深一些的了解,现在就将自己的理解和大家进行分享.其中肯定有理解不正确的地方,还望大神们能给予指正. AOF相关配置项 首先我们看一下redis.conf里的关于AOF的配置选项:A