论文研究-一种基于Redis的数据备份方法 .pdf

所需积分/C币:13 2019-08-14 17:18:59 441KB .PDF

一种基于Redis的数据备份方法,车进,傅慧源,数据库技术的发展,带动了NoSQL(非关系型数据库)的崛起,其中Redis数据库因其高效性得到广泛应用。然而数据库备份技术的研究依然��
山国武技论文在丝 rubsave 内存数据 blued tmordb merge dump rdb 图 的持久化机制 数据备份策略 自身的数据备份方式,会按照一定的条件把内存快照存储到磁盘上,这种方 式不能人为控制而且仅能备份一个时间节点的快照文件,下一次执行备份会覆盖上次备份的 内容。本文提出一种基于的数据备份策略,使用该策略可以灵活的制定各份规则,可 以方便的进行数据恢复 自身的备份方式由两个重要方法支撑, 和 其中 方法通过对文件进行解析,可以把一个文件中的数据信息载入内存之中; 方法可以将內存中的数据信息备份到默认文件之中。所有的读写各份文件请求全都基 于默认的备份文件,无法进行指定备份文件的读写,可用性较差。 本文在 和 方法的基础上进行了改进以支撑灵活数据备份的需要。 改进的写备份策略 为了满足向指定文件写入备份的需求,本文在 中新增命令 ,该命令 可以接受文件名作为参数,将当前数据快照写入该备份文件。 为了避免同时多个数据备份进程同时数据备份造成的数据不一致现象,需要在每次备份 的时候判断状态,基」单线程事件轮询的架构模型保证了所有操作都是原子 性的,我们可以通过设置静态域的方式在多线程环境中保证备份进程的唯·性 写备份文件的改进策略如下 (1)判断 Redis当前状态,如若 Redis已经在进行写RDB操作(这个操作可能是我们 发起的,也有可能是系统发起的)或者系统正在进行写AOF操作。那么暂时无 法执行数据备份操作,我们使用轮询的方式,在下一个时间节点再次尝试进行 数据备份 (2)当 Redis可执行数据备份,将系统状态设置为正在备份,根据用户传入的备份 文件名,调用 rdbsave方法将內存快照存入该文件中 3)取消系统止在备份状态。 写策略流程如图所示: 山国武技论文在丝 开始 不可用 查询状态 设置状态 正在备伍 使用 rbsa 进行备份 取消正在备 份状态 结束 图写策略流程图 改进的读备份策略 为了满足从指定文件读入备份的需求,本文在中新增命令 ,该命 令接受文件名作为参数,从指定备份文件中读入备份信息并且替换掉当前数据库的信息。 读备份的过程因为要将数据库中内容清空,并且重新设置,所以在读备份的过稈中, 无法对外提供服务 内部使用多数据库的数据模型,默认会预先分配个数据 厍, 文件格式如图所小。 Reds字符,RDB文 件签名 文件版本号 可能有多个非空数据 库db信息,保存 着一个非空数锯库的 止文结束符校 数据信息 Reds Version select dbdb data EOF Checksum 文件格式 本文使用多线程的方式对各个数据库的数据进行恢复。首先读入文件流,对其进 行分析获取每个数据库数据在流中起始与结東位置,再通过多线程的方式,读入每个数据库 的数据,经过解析之后置换内存中的数据,处理示意图如图所示。 业 wOrker1 dbz- Worker 备份文件流 分割成每个数 内存数据 据库流 Worker 图备份文件处理示意图 读备份文件的改进策略流程如下: 山国武技论文在统 (1)重置 Redis数据结构,读各份文件需要重置 Redis数据库的薮据结构, Redis内 部所有数据存储在 Server的db结构中,需要将该结构进行重置,以迎接从备 份文件中读入的备份数据 (2)根据用户传入的备份文件名,分割文件流成各个数据库的数据流,交由备份进 程进行处理。 (3)每个进稈调用 rd bload函数将备份数据加载入内存 (4)将执行请求的客户端的当前数据厍置为默认的0号数据厍。 读备份文件流程如图所示: 开始 重置数据库 分割文件流 多线程处理 设置当前数据库 吉束 图读策略流程图 实验验证 这一章将通过实验对前一章中提出的策賂进行验证。所有的实验环境在 位操作系统上进行,使用的版木是,恢复策略在 源码的基础上进行修改。 我们首先通过已有程序向中导入条各种类型,各种大小的数据,这些测试 数据平均分布在每个数据库中,测试数据种类大小如表所示 表测试数据种类与人小 类型 条数 每条大小(平均) 字节 字节 字节 注:每条数据大小按照子面量来统计,与实际可能有所偏差 此时数据库状态如图所示。 10.103.249190:638> into keyspace Keyspan pbe: keys=1000, expires=0, avg_ttl=0 图数据库当前状态 此时在命令行中执行 模拟备份操作。我们会发现和系统执行 快照时候一样,会先把数据写到一个文件中,直到全韶写入磁盘之后会把 山国武花论文在丝 文件改名为我们定义的 并且在执行该命令的吋候, 可以正常向外 部提供服务。操作效果如图所示。 0.103.249.190:6380 e saverdbtofile20161201.rdb Background saving started 图备份命令执行效果 此时我们调用 操作并且执行 操作以模拟误操作导致效据库清空,此时数 据库中数据量为。状态如图所示。 10.163.249.190:6386> flush OK 10.13.249.190:6380> agave Background saving started 10.103.249.190:6380> info keyspace Keyspace 图误操作后数据厍 我们执行另外条命令 启动时候“样,此时 不能向外部提供服务,经过短暂时延, 中的数据全部恢复为上一时刻误架作前的状态 操作流程及效果如图所示。 0.103249190: 6380> readrdbfromfile 20161201, rdb read success!now in the db 0! 10.103.249.190:6380> info keyspace Keyspace dbo: keys=1000, expires=0,avg_ttl=0 图数据恢复效果图 总结 数据库因为其灵活的特性,可以很好的应对 时代大规模数据和多重数据 类型带来的双重调整 就是其中优秀的代表,丰富的数据类型,以及操作的高效性被 人家所认可,并且被许多互联网公司所使用。 本文首先介绍了数据库备份技术的发展,接着深入研究了的快照持久化方式 ,在熟悉了快照持久化机理的基础上,提出了基于数据恢复方法。并且对这种箎 略提出了测试方法,实验证明该方法可以有效的进行数据备份与恢复 参考文献 张云帆 数捱库备份与恢复策咯计算机工程

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源