技术分享 | Redis与MongoDB 数据备份与恢复

admin 2023年8月14日16:05:24评论31 views字数 1934阅读6分26秒阅读模式

| 全文共1883字,阅读需要5分钟

Redis数据备份与恢复








































在Redis中,提供了两种持久化数据的方式,分别是RDB和AOF。

RDB持久化的方式是通过快照完成的,RDB程序将内存中的数据集快照保存到磁盘中,在重启Redis时,RDB程序可以通过载入RDB文件来还原数据库的状态。

AOF是以独立日志的方式记录每次的写命令,重启时执行文件中的命令达到数据恢复的目的。

其中AOF文件是明文记录的,因此数据恢复比较简单,而RDB文件则是二进制文件,只能通过Redis服务进行恢复。本章着重讲述RDB文件的备份与恢复。

RDB备份

在连接到Redis的客户端中使用save或者bgsave命令即可将当前Redis数据持久化到对应的RDB文件中。其中save命令在数据量过大时会阻塞Redis服务,不建议在线上环境使用。bgsave命令会fork一个子进程进行持久化,阻塞只发生在fork阶段,推荐使用。

持久化结束之后会生成一个dump.rdb文件,生成的目录位置与文件名称可在redis.conf配置文件中进行配置。

技术分享 | Redis与MongoDB 数据备份与恢复

技术分享 | Redis与MongoDB 数据备份与恢复

RDB恢复

通常我们会拿到一份rdb扩展名的备份文件,由于redis是向下兼容的,因此备份恢复时只需要安装一个高版本的Redis服务,然后将对应的rdb文件放置在对应目录下,放置目录与文件名称则需要与redis.conf文件中配置一致,然后重启redis即可恢复数据。
MongoDB数据备份与恢复








































逻辑备份与恢复

MongoDB提供了mongodump和mongorestore命令用来进行逻辑备份和恢复。mongodump命令执行之后会将对应数据备份以bson格式备份到对应目录下。

mongodump语法如下:

技术分享 | Redis与MongoDB 数据备份与恢复

参数说明:
-h: MongoDB所在服务器地址,如127.0.0.1,也可以指定端口号: 127.0.0.1:27017
-d: 需要备份的数据库实例,如test
-o: 备份的数据存放位置,如/tmp/backup

mongorestore语法如下:

技术分享 | Redis与MongoDB 数据备份与恢复

参数说明:

-h: MongoDB所在服务器地址,如127.0.0.1,也可以指定端口号: 127.0.0.1:27017

-d: 需要恢复的数据库实例,这个名称可以和备份时的数据库实例名称不一致

<path>: 最后一个参数,设置备份数据所在位置, 如 /tmp/backup/test

物理备份与恢复

目前MongoDB默认使用的是WiredTiger存储引擎,下文主要介绍使用WiredTiger的MongoDB物理备份与恢复。

MongoDB在初始化或者运行时需要一个dbpath的参数,这个参数指定了数据目录所在的位置,只需要备份这个目录所有的文件即可物理备份所有的数据。可通过mongodb.conf文件中的dbpath查看对应数据目录位置或者服务正常运行情况下使用db.serverCmdLineOpts()。由于物理备份还原需要尽量一致的MongoDB版本环境,可以通过dbpath目录下的WiredTiger文件内容了解到当前WiredTiger的版本,从而查询出对应MongoDB服务的版本号。

技术分享 | Redis与MongoDB 数据备份与恢复

进行物理备份还原之前需要安装对应的MongoDB服务然后新建一个配置文件mongod.conf,可使用下面的模板进行配置。

技术分享 | Redis与MongoDB 数据备份与恢复

其中dbpath更改为我们物理备份目录即可。

通过下方命令即可进行物理备份恢复:

技术分享 | Redis与MongoDB 数据备份与恢复
数据库取证工具物理备份恢复








































由于Redis或者MongoDB在进行数据恢复时必须要安装对应的数据库服务,而且进行恢复时仍然会产生其他的问题,基于以上情况出发,目前弘连数据库取证工具最新版本已经可以一键解析RDB文件和MongoDB物理备份文件

RDB物理备份恢复

启动数据库取证工具后在首页选择添加数据库,数据库类型分别选择非关系型和Redis,然后在下方数据库文件中选择对应的RDB文件即可进行一键恢复数据。

技术分享 | Redis与MongoDB 数据备份与恢复

技术分享 | Redis与MongoDB 数据备份与恢复

在右上方导出表记录中可以选择对应的数据进行导出,导出后可获取到物理备份文件中的明文数据。

技术分享 | Redis与MongoDB 数据备份与恢复

MongoDB物理备份恢复

首页添加数据库中数据库类型选择非关系型和MongoDB之后,在下方的数据库文件中选择wt后缀的数据文件,数据库取证工具将自动分析,wt文件层级并整理出所有的数据库,集合之间的关系,并展示到界面上。

对于阿里云xb类型的MongoDB备份文件也进行了一键支持。下方以xb备份为例:

技术分享 | Redis与MongoDB 数据备份与恢复

扫描并罗列出物理备份文件中所有的数据库。可选择单独解析一个数据库或者批量解析多个数据库。

技术分享 | Redis与MongoDB 数据备份与恢复

预览界面可以预览对应数据库中的所有集合数据。

技术分享 | Redis与MongoDB 数据备份与恢复

也可选择右上角导出对应的数据库或者单独的集合。

技术分享 | Redis与MongoDB 数据备份与恢复

技术分享 | Redis与MongoDB 数据备份与恢复

供稿:千
编辑排版:Yvonne
审核:Spring


原文始发于微信公众号(网络安全与取证研究):技术分享 | Redis与MongoDB 数据备份与恢复

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月14日16:05:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   技术分享 | Redis与MongoDB 数据备份与恢复https://cn-sec.com/archives/1953594.html

发表评论

匿名网友 填写信息