数据恢复是指通过技术手段,将保存在台式机硬盘、笔记本硬盘、服务器硬盘、存储磁带库、移动硬盘、U盘、数码存储卡、Mp3等等设备上丢失的电子数据进行抢救和恢复的技术。下面我们就为大家介绍几篇范文,供给大家作为参考。
数据恢复论文范文第一篇:Oracle Flashback在医院数据恢复中的应用
作者:董庆
作者单位:中国科学技术大学附属第一医院(安徽省立医院)
摘要:当前医院对生产环境的业务可用性要求越来越高,随着医院的业务量越来越大,医院电子病历使用的Oracle数据库的数据量也越来越大,基于Oracle Data Guard和Oracle Flashback的恢复技术,可以在Oracle数据库的部分表数据被误删除后,快速将表数据恢复到数据被删除前的任意一个时间点。
关键词: Oracle; Flashback;数据恢复;
作者简介:董庆(1986-),汉,男,安徽阜阳人,助理工程师,学士,主要研究方向:业务支撑系统运维。;
Abstract:the current hospital business availability requirements for production environment is more and more high, with hospital business bigger and bigger, the hospital electronic medical records the use of the amount of Data is becoming more and more big, Oracle database based on Oracle Data Guard and recovery of Oracle Flashback technology, can be part of the Oracle database table Data after being accidentally deleted, quick return table Data to Data to be deleted before any one point in time.
Keyword:Oracle; Flashback; Data recovery;
我院的电子病历系统使用的是Oracle数据库,为了保证业务数据安全,电子病历数据库已配置每天使用RMAN功能对数据库进行备份,并利用Data Guard功能搭建了容灾数据库[1],对数据库进行实时同步,而在主数据库发生逻辑错误,如truncate table或者drop user等操作造成数据被误删除时,由于删除操作会同步到Data Guard备库中,导致备库中的相应表数据也会被删除,无法起到恢复作用。以前遇到类似的情况,常规恢复方法是利用RMAN的备份文件在新环境中进行数据库不完全恢复,将数据库恢复到数据被误操作前的某一个时间点,但是随着近几年医院业务量增长,电子病历数据库的数据量越来越大,已经从几年前的200GB左右增长到了如今的1TB以上,数据库rman备份文件恢复的时间,已经从以前的1-2小时增长到动辄一整天,而生产系统是没有办法在数据缺失的情况下,等待这么长时间的,怎么能够把业务中断的时间缩至最短,就成了最急需考虑的问题。
1 Ora cle Fla s hba ck技术用于数据库恢复的设计和实现
Oracle公司针对数据库中的数据被人为误删除而设计的快速恢复功能是flashback,即可以在误删除事故发生后,通过记录的数据库历史数据变化,将整个数据库恢复到被误操作前的那一个时间点。由于这种恢复操作的作用范围是整个数据库,导致这个功能无法直接使用在电子病历系统的数据库上,不然将会对整个电子病历系统产生影响,损失难以估量。考虑到将对生产业务的影响降到最低的基本原则,最终决定尝试通过医院现有的Data Guard灾备数据库来完成整个数据库回退的过程,经过多次测试后,确认这个方案能够满足短时间恢复数据的需求,且同时能保证生产库的数据安全性。
闪回数据库(Flashback Database)是Oracle 10g新增的功能。Oracle 10g闪回数据库功能启用后,数据库会定期将发生变化的数据块的前镜像写入闪回日志的日志文件中,主要包括闪回数据库、闪回表、闪回删除、闪回查询、闪回版本查询和闪回事务查询[2].本文通过一次使用Flashback恢复整个数据库的过程来讲解此方案的使用方法,讨论此方法在实际运维工作中的可操作性。
1.1 前期准备
我院的电子病历数据库部署在VMware虚拟化环境中,操作系统是Windows 2008 R2,采用的数据库版本是Oracle 11.2.0.4,灾备端的环境部署保持与生产端完全一致,包括操作系统版本和数据库的版本,以保证容灾环境的稳定性。两台服务器之间通过医院内网连接,保证生产库的数据变化能够即时同步到灾备库中。
灾备端数据库需要能够回退到事故发生的时间点之前,就必须要在灾备端的操作系统上专门划分一部分空间用作快速恢复区,存放数据库的闪回数据,具体的空间划分大小可以根据分区空间大小和需要回退的时间来决定,距离数据库闪回的时间点越久,需要的闪回数据就越多,占用的硬盘空间就越大,相对应的距离闪回的时间点越短,硬盘空间占用就越小,灾备库的闪回时间由数据库管理员根据实际情况自行设定。
1.2 恢复演练
数据库被误操作,包括Schema或Table等被删除导致重要数据丢失,在实际情况中,误删除Schema的情况比较少见,而对表数据的改动相对频繁,因此下面的演练主要以恢复表中的数据为主。
具体的恢复演练流程如下:
(1)确保两端数据库处于同步状态
本文中Oracle Flashback的恢复测试是基于Oracle Data Guard来实现的,在灾备库上进行数据库的恢复,最大限度降低对生产库造成的影响,所以在正式演练之前,需要确保生产端的数据库与灾备端的数据库保持同步状态,这样才能确保生产库近期产生的数据已经完整的应用到灾备库中,不会发生需要恢复的表数据在灾备库中是早期数据而无法使用的情况。
测试同步的方式可以采用在生产端新建一张临时表,在临时表中插入一条数据后提交,如果能够在灾备端数据库中查询到这张临时表和表中数据,则说明灾备端的数据是与生产端保持更新同步的。
(2)核实生产端需要恢复的表,并在恢复之前要先对现有的表数据进行备份,因为有可能从发生误操作到恢复表之间的这段时间中,表中已经有新数据生成。备份表数据可以在恢复表数据后将新数据补录到表中。备份的方式可以采用将表重命名,或者将表数据复制到一张新表中的方式。
(3)核实误操作发生的时间,时间越精确,恢复的数据越完整
(4)停止灾备库的同步状态,并将灾备库闪回到最接近误操作发生时间的那一刻,如果在恢复后发现表数据处于已被误操作的状态,还可以继续闪回数据库到更早一些的时间点,多次闪回,直至确认表数据能够满足恢复的要求为止。
(5)在验证灾备端数据库中的表数据完整可用后,将表数据导入到生产库中,可以采用EXP/IMP的方式,也可以在生产库中创建灾备库的Database Link,直接复制灾备库的表数据。恢复以后再比对库中表数据和第(2)步中备份的表数据,将备份表中新生成的数据进行补录。
(6)确认生产数据已经恢复后,删除在恢复过程中创建的临时数据,并将灾备数据库重新置于Data Guard同步状态,恢复到初始的数据库容灾环境,保障数据库的物理安全,还能为可能存在的下一次恢复误删除操作做准备。
2 问题与讨论
经过多次恢复测试,确认此方案能够满足医院的数据恢复要求,恢复时间从以前的十多个小时缩短到了几十分钟,如果能够将操作过程脚本化,甚至有可能在短短的几分钟之内完成。数据库的闪回时间与数据变化量有关,而与数据库自身的文件大小没有关系,非常适用于电子病历系统这种数据库体量比较大的场景。数据恢复过程使用的是医院现有的容灾环境,不需要重新搭建恢复环境,节省了恢复时间和工作量,且灾备数据库能够在表数据恢复后重新还原到数据同步状态,继续保障生产库的数据安全。
在此恢复过程中,不仅涉及到Oracle数据库的日常操作,还涉及Oracle Data Guard的维护操作,因此对管理员的技术能力要求较高。在实际的运维工作中,需要指定专门的数据库管理员,对恢复流程进行定期演练,熟练掌握各个步骤的操作,在演练过程中记录每一步操作命令和结果[3],这样才能保证在真正遇到生产事故时,对每一步操作都了然于心,不会出现越急越乱的情况。
医院的信息系统是医院业务能够正常开展的保障,数据库又是信息系统中最重要的一环,在日常数据库运维工作中,对生产库进行的任何操作都要慎之又慎,检查再检查,但意外是无法完全避免的,运维人员需要对可能出现的各种情况有相应的(下转第86页)处理预案,并相互比较,选中最有效的一种,才能最大限度的保障系统平稳运行。
3 结束语
通过结合Oracle Data Guard和Oracle Flashback功能,在已部署Oracle Data Guard架构的生产环境中,利用灾备库的Flashback功能,能够快速恢复生产库中被误删除的表数据,整个过程可以在几分钟内到几十分钟完成,实现对生产业务影响最小化,
参考文献
[1]沈晓明医院信息系统数据库的安全保障[J]电脑与信息技术,2014,22(02):30-31+46.
[2]曾传军傅秀芬。彭小玲,许金Oracle闪回技术在数据恢复中的应用[J]微型机与应用,2010,29(16):90-92+95.
[3]顾学赛王梓名。 Oracle的DataGuard技术在医院整体数据迁移中的应用[J]现代信息科技2019,3(13):162-164.为医院信息系统正常平稳运行提供一种较为有效的应急处理方案。
文献来源:董庆。Oracle Flashback在医院数据恢复中的应用[J].电脑与信息技术,2021,29(01):68-69+86.
数据恢复论文范文第二篇:基于Windchill的PDM数据备份与恢复问题
作者:武丽君 张文 王国锋 郭翃利 胡奇
作者单位:北京机械设备研究所
摘要:本文针对在PDM领域应用广泛Windchill10在系统升级改造时验证备份恢复过程中数据有效、可用时出现的问题,结合备份恢复工具软件,从数据库角度对备份、恢复两个过程进行分析,找到了导致问题出现的原因。进而结合系统实际情况给出了解决方案并加以验证,从而保证了系统升级后数据备份恢复的有效、可用。
关键词:数据备份;数据恢复; Windchill;
作者简介:*武丽君(1990-),女,工程师。研究方向为企业信息化,数据安全。;张文(1980-),男,高级工程师,信息化中心主任。研究方向为企业信息化。;王国锋(1983-),男,高级工程师。研究方向为企业信息化,数据管理。;郭翃利(1978-),女,高级工程师。研究方向为企业信息化。;胡奇(1981-),男,高级工程师。研究方向为企业信息化。;
在制造行业企业中,产品数据管理(以下简称PDM)是以软件技术为基础、以产品为核心、实现对产品相关的数据、过程、资源一体化集成管理技术[1],通过产品结构管理、文档版本变更管控、模型协同设计管理等功能有效支撑了产品设计领域研发工作的开展,被视作企业的核心系统。PDM中存储、管理的产品设计等业务数据是企业的核心数据,是企业赖以生存的数据资产。一旦系统出现问题时如果有较长时间的数据丢失将对企业形成较大影响、造成巨大损失。高性能的数据备份和灾难恢复技术能充分保护系统中有价值的信息,保证灾难发生时系统仍能正常工作[2].因此基于RTO和RPO衡量指标的PDM系统的数据备份与恢复是企业信息化的重要工作内容,日益受到企业的重视。
1 概述
1.1 背景
PDM系统的备份恢复分为三部分:应用程序、电子仓库和基于Oracle的数据库。前两个主要是基于文件系统的备份和恢复,过程相对简单、稳妥。基于Oracle的数据库通过康孚备份恢复软件(以下简称康孚)进行备份、恢复,过程较为复杂,是PDM系统备份恢复的关键内容。
为满足新的业务需求,启动了PDM升级改造项目。升级后的PDM系统采用Windchill 10+Oracle 11g的基础框架进行构建。由于PDM系统为核心关键系统,按照信息化项目建设要求,项目上线前需要对备份恢复策略(备份恢复手册)进行验证。系统升级后为了减少停机备份对业务带来的影响,根据实施厂商建议,项目团队拟停用原有冷备份策略(即停应用、停数据库服务后的全量数据备份)采用新的备份策略,即拟通过康孚软件对数据库采用每周日全量热备、周一到周六进行增量热备的周备份策略。
1.2 现象
按照备份恢复手册,对升级改造项目进行备份恢复验证。备份恢复的环境如下:
(1)数据备份对象为测试系统(有一定量的测试数据);
图1:RMAN恢复原理
图2:不记录日志的表
图3:数据块恢复原理
(2)恢复目标(目标机)所需环境与测试系统一致;
备份恢复的具体过程如下:
(1)利用康孚按周备份策略对PDM实施一周备份计划,周日采用全量热备、周一到周六进行增量热备。康孚软件显示备份全部成功;
(2)在执行Oracle的周六增量后,对应用程序、电子仓库进行备份,成功完成;
(3)康孚对Oracle备份在进行数据恢复,康孚显示恢复成功;
(4)对应用程序和电子仓库进行了相应恢复;
(5)启动系统,用户登录PDM系统进行简单常规操作,未见异常,经查询,数据也恢复到了指定时间点,初步判定本次恢复成功;
(6)数据有效性验证。为进一步确保数据的有效性,将恢复到备机上的PDM系统停机,并进行expdp操作,全部导出数据,并重新创建用户进行impdp导入操作,提示有坏块,导入失败。使用Oracle的DBV工具对数据文件进行逐个检查,多个文件报多行如下错误:"DBV-00201:无效重做应用程序的块DBA 50042120已标记为损坏",说明了恢复的数据文件存在坏块。备份恢复整体失败。
(7)对测试系统进行dbv坏块校验,结果显示系统数据无坏块。此次数据备份恢复失败。
根据数据备份恢复验证的结果,最终判定该备份恢复方案无效。
2 问题解析
2.1 过程分析
由于上述备份恢复过程中,康孚没有报错信息,随后项目团队从如下两个方面开展进一步的工作。
(1)将测试系统停机,从Oracle中导出DMP格式的数据文件,导入到目标机Oracle数据库中,系统成功启动后,对数据库文件进行dbv坏块校验,结果显示系统数据无坏块。说明采用较长时间的expdp/impdp方式进行备份恢复有效。
(2)再次按照备份恢复手册执行了备份恢复,恢复后目标机的数据库中数据文件依然存在坏块,并且坏块分布的数据文件与上次不同。由于对基于康孚的备份恢复过程日志进行深入分析发现均没有报错信息,所以说明康孚执行备份恢复的运行过程是没有问题的,但是通过康孚实现备份恢复是行不通的。
2.2 问题探究
2.2.1 发现问题原因
经以上的问题复盘分析:
(1)证明源数据无问题;
(2)康孚执行过程没有问题。
分析将问题的原因定位在康孚软件备份恢复采用的技术机制与expdp/impdp不同这一点上,二者不同之处是康孚软件备份恢复采用的是Oracle的RMAN技术。
RMAN(Recovery Manager)是Oracle提供的备份恢复工具,不同于expdp/impdp的逻辑备份,RMAN是基于Oracle block(磁盘OS块组成)级别的物理备份,支持对数据文件、控制文件、参数文件、归档重做日志和RMAN备份文件进行备份和恢复[3].开始备份时,直接读取磁盘上的Oracle block,并写入到指定位置进行备份,同时将备份过程中产生的归档重做日志进行备份,最后备份控制文件、参数文件(可选)。开始恢复时,先还原控制文件,再还原数据文件,并运用备份的归档重做日志进行数据的恢复,使数据文件与控制文件时间一致,进而打开数据库,完成数据恢复。如图1所示。
通过Oracle的RMAN备份恢复原理推断问题锁定在归档重做日志的恢复上,初步断定是数据库中有部分Oracle对象设置为不记录日志模式,因此归档重做日志中未记录这些对象的变化情况。这些数据文件在备份时,由于发生了变化,控制文件记录了数据块的最新时间状态,但并没有形成相应的归档重做日志。在恢复数据时,无法运用重做日志,将数据前滚到控制文件指定的时间点,导致数据备份恢复的内容与原备份数据不一致,产生坏块。
根据上述分析,对测试机的Oracle数据库的对象(表)进行检查,发现数据库中确实有25张表的日志状态Logging是No,即不记录日志:
具体不记录日志的表如图2所示。
至此找出问题所在的原因。
2.2.2 数据备份恢复
现针对基于Oracle数据库的上述问题原因导致数据备份恢复异常进行深入分析。数据恢复时先使用备份文件进行数据还原,再运用日志,将数据库文件从还原点前滚到指定的恢复时间点,完成数据恢复。具体的原理如下:
(1)恢复原理举例说明。在Oracle中进行操作,Oracle会记录一条联机重做日志(Redo日志),Redo日志写满后,会自动进行归档,形成归档重做日志,以下将两类日志统称为日志。进行数据备份时,将当时的数据记录在备份文件中,如果要恢复备份完成后的数据,就需要先还原备份文件,再运用日志,前滚数据,实现数据恢复。如原来某表中的一个用户名字段在数据库中存的内容为scott,并进行了备份(1点),那么备份文件中该字段内容为scott.如果备份后对数据库进行了操作,该字段内容变为tom(2点),数据库会自动记录该操作的日志,记录数据由scott到tom的日志。假设备份完成后数据库奔溃,需要进行数据恢复。此时,备份文件中该字段的内容为scott,要还原数据(即将数据更新到备份结束时间2点),就需要运用日志,将1点以后的操作再"模拟操作"一遍,即进行数据前滚,那么字段内容就变成了2点的状态tom.
(2)PDM不记录日志产生坏块的简要原理说明。假设数据库中包含某数据块A,并对其进行备份和恢复。由于是热备份,在备份的过程中,数据还在不断地变化。假设在1:00时对A进行了备份,形成A1(假设A1记录A数据块1点的数据内容),在2:00时完成全部的数据库备份,此时A的数据内容已经发生了变化,记为A2.此时,如果要将数据库恢复到2:00,由于在1:00到2:00之间,A数据块被修改,如果需要恢复到2:00,那么需要对数据块A在A1(物理备份块)的基础上运用Oracle日志。如果记录了日志,即可重新前滚A1到A2的数据变化,将其数据状态前滚到2:00时的状态A2,此时完成了数据库的恢复。如图3所示。
但由于PDM对数据块A设置了不记录日志,并且在1:00到2:00过程中A1确实发生了变化,那么就无法运用日志将A1前滚到A2的状态,因此,数据块无法恢复到2点的数据内容,导致产生了损坏。
同样的情景,如果是停机冷备份,那么A文件在备份开始到结束时不发生变化,也不会产生联机重做日志/归档重做日志,备份的全部数据都是停机时刻的数据,数据一致,不需要运用日志,数据也具有一致性,因此可以成功恢复数据。
3 解决方案
3.1 解决方案
根据导致问题的原因,项目团队从源Oracle数据库变更参数配置和修改备份策略两方面给出了解决方案。
3.1.1 将源Oracle数据库改为记日志
(1)方案:变更Oracle数据库参数配置,将不记日志的对象改为记日志,或修改数据库参数FORCE_LOGGING为YES,使所有数据库都记日志,仍然采用既定备份策略。
(2)验证:
1.将测试机Oracle数据库中配置参数FORCE_LOGGING为YES;
2.按照份恢复手册执行备份恢复,恢复后目标机系统成功启动后,对数据库文件进行dbv坏块校验,结果显示系统数据无坏块;
3.该备份恢复方案有效。
3.1.2 将备份策略改为冷备份
(1)方案:对备份恢复策略在备份环节进行变更,即对源Oracle数据库进行停机冷备份(全量冷备份和增量冷备份相结合的方式进行备份),数据恢复策略不变。
(2)验证:
1.将测试机Oracle数据库中配置参数不变;
2.通过康孚对测试机Oracle数据库进行停机全量冷备份,备份成功;通过康孚将备份数据恢复至目标机,系统成功启动后,对数据库文件进行dbv坏块校验,结果显示系统数据无坏块。恢复成功;
3.通过康孚对测试机Oracle数据库进行停机增量冷备份,备份成功;通过康孚将备份数据(全量冷备份+三次增量冷备份)恢复至目标机,系统成功启动后,对数据库文件进行dbv坏块校验,结果显示系统数据无坏块。恢复成功;
4.该备份恢复方案有效。
3.2 结论
针对上述两种备份恢复方案,项目团队均通过实践操作验证了有效性,确认了恢复后数据的有效、可用。两种方案对比如下:
(1)由于对系统操作记录大量日志,所以第一种方案会较大程度影响系统的运行和响应速度;
(2)需要利用空闲时间,对系统(包括数据库)进行定时起停,会造成系统特定时间段(如晚上11点到次日早上六点)无法提供服务。
经过项目团队对比以上两种方案引发的影响,确定采用第二种方案进行系统备份恢复。
按照第二种方案制定的备份恢复手册执行半年,备份无异常;期间进行三次恢复验证均成功。
4 结束语
在企业信息化工作中,作为支撑核心业务的PDM系统数据备份和恢复由于过程复杂,加上数据量庞大,所以非常重要但又容易异常,应当引起足够重视。此次工作不仅对项目完成前的灾难恢复进行了验证、完善,消除了隐患,更为重要的是企业级整体备份与恢复提供了可借鉴的宝贵性。
参考文献
[1]张艳岗,张保成郑长虹产品数据管理(PDM)技术的发展[J].机械管理开发2006(02)。
[2]张艳,李舟军何德全灾难备份和恢复技术的现状与发展[J].计算机工程与科学,2005(2)。
[3]Lance Ashdown.Oracle Database Backup and Recovery User's Guide, 11g Release 2(11.2)[M].US:Oracle Corporation,2003:143-164.
文献来源:武丽君,张文,王国锋,郭翃利,胡奇。基于Windchill的PDM数据备份与恢复问题[J].电子技术与软件工程,2021(03):215-217.