oracle备份恢复方案

2024-05-13

oracle备份恢复方案(精选6篇)

篇1:oracle备份恢复方案

ORACLE数据备份与数据恢复方案

摘 要

结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。

关键字:数据库 远程异地 集中备份

I

ORACLE数据备份与数据恢复方案

目 录

一、前 言 ··························· 1

二、金华电信ORACLE数据库的备份与恢复方案 ······· 2

2.1 备份系统数据库备份策略································································································· 3 2.2 备份系统数据库恢复策略···················· 3 2.3 金华电信97系统及营销支撑系统的系统状况 ··········· 3 2.4 金华电信97系统、营销支撑系统及备份系统总体结构图 ······ 4 2.5 备份系统结构图说明······················ 4

三、金华电信97系统的数据库备份和恢复 ········ 6

3.1 备份方法··························· 6 3.2 备份策略··························· 6 3.3 恢复策略··························· 6 3.4 性能影响··························· 6

四、金华电信营销支撑系统的备份与恢复········· 7

4.1 备份方法··························· 7 4.2 备份策略··························· 7 4.4 性能影响··························· 7

五、RMAN CATALOG 数据库的备份 ············ 8

II

ORACLE数据备份与数据恢复方案

六、结 语 ······················ 9

III

ORACLE数据备份与数据恢复方案

一、前 言

目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单

一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。

因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。

ORACLE数据备份与数据恢复方案

二、金华电信ORACLE数据库的备份与恢复方案

由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服务器或应用服务器相连的任意一台磁带库内。(2)全自动的备份: 对于大多数机房管理人员来说,备份是一项繁重的任务。每天都要小心翼翼,不敢有半点闪失,生怕一失足成千古恨。网络备份能够实现定时自动备份,大大减轻管理员的压力。备份系统能根据用户的实际需求,定义需要备份的数据,然后以图形界面方式根据需要设置备份时间表,备份系统将自动启动备份作业,无需人工干预。这个自动备份作业是可自定的,包括一次备份作业、每周的某几日、每月的第几天等项目。设定好计划后,备份作业就会按计划自动进行。(3)数据库备份和恢复: 数据库系统已经相当复杂和庞大,不能用文件的备份方式来备份数据库。企业级的备份系统能够对数据库在不中断业务、不停顿数据库的情况下对数据进行联机的自动备份,包括可以进行数据库备份、日志备份、完全备份、增量备份等。(4)归档管理: 用户可以按项目、时间定期对所有数据进行有效的归档处理。提供统一的数据存储格式从而保证所有的应用数据由一个统一的数据格式来作永久的保存,保证数据的永久可利用性。(5)有效的媒体管理: 备份系统对每一个用于作备份的磁带自动加入一个电子标签,同时在软件中提供了识别标签的功能,如果磁带外面的标签脱落,只需执行这一功能,就会迅速知道该磁带的内容。(6)满足系统不断增加的需求:备份软件必须能支持多平台系统,当网络连接其它的应用服务器时,对于网络存储管理系统来说,只需在其上安装支持这种服务器的客户端软件即可将数据备份到磁带库或光盘库中。

ORACLE数据备份与数据恢复方案

2.1 备份系统数据库备份策略

数据库运行在归档模式下,利用Veritas软件模块调用数据库的备份接口进行在线的热备份,可以在备份时,对备份数据保存在不同的存储对象中,以满足客户容灾的要求,可以利用Veritas的多线程的数据迁移、利用多个磁带驱动器同时读写提高其数据备份的效率。

针对数据库的总数据量和增量数据量大小,我们可以利用数据库的多级的增量备份机制,结合Veritas 强大的备份数据追踪寻址能力和介质管理功能,制定灵活的备份策略,实现全自动的备份数据的全生命周期管理。

2.2 备份系统数据库恢复策略

通过本地的Veritas Server结合Veritas for Databases利用备份数据进行数据恢复。恢复时,Veritas 可以实现多线程的数据恢复,利用Veritas 独特的磁带分类集中存放技术,减少磁带的就位时间,提高数据恢复的效率。

先用最近一次的全备份恢复+恢复最近一次的增量备份+增量备份到断点的ARCHIVE LOG来恢复(要求数据库在ARCHIVE LOG模式下工作)。这种恢复方式比全部用ARCHIVE LOG恢复要快。

如果两份冗余的最近一次增量备份都不可用,可以追溯再上次的增量备份来恢复,然后用增量备份到断点的ARCHIVE LOG恢复。

如果最近一次的全备份恢复都不可用,则利用上个周期的全备份+上个周期的最后一次增量备份+本周期的最近一次增量备份+增量备份到断点的ARCHIVE LOG来恢复。

如果增量备份都不可用,那么用全备份+ARCHIVE LOG来恢复。

2.3 金华电信97系统及营销支撑系统的系统状况

金华电信经过这么多年的信息系统建设,目前已经运行着多个系统,除计费系统有较为完善的备份系统外,其他系统的备份系统都需要完善。其中97系统的机器型号IBM 7040-61R,操作系统 AIX5.2,数据库类型ORALCE8.1.7.4,数据量120G;营销支撑系统机器型号IBM xseries440,操作系统Red Flag Linux Server 4.0,数据库类型ORACLE9.2.0.1,数据量150G。以前,这两个系统的数据备份都是通过逻辑备份(exp)实现并且备份数据管理是分散的,然而一个完善的备份系统必须包含物理备份和逻辑备份两种方式。因此,我们正在实施一个远程

ORACLE数据备份与数据恢复方案

异地在线集中的高效的备份系统,将逻辑备份和物理备份(热备份)相结合,设置了专门的备份服务器。由于97、营销支撑操作系统采用AIX及Red Flag,我们在备份服务器上安装了第三方备份软件Veritias NBU。

2.4 金华电信97系统、营销支撑系统及备份系统总体结构图

对于具体的备份环境和结构,我们结合了Oracle备份技术和LAN环境的SAN备份结构.该系统的结构如下图所示(以97系统与营销支撑系统为例)

备份系统总体结构图

2.5 备份系统结构图说明

此在线存储系统采用了基于SAN(存储区域网络)的结构,SAN是一种高速

ORACLE数据备份与数据恢复方案

网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一张或多张用以存储计算机数据的磁盘设备。一个 SAN 网络由负责网络连接的通信结构如光交换机、负责组织连接的管理层、存储部件以及计算机系统构成,从而保证数据传输的安全性和力度。由于整个SAN系统的数据量比较大,所以备份系统采用SAN结构,将磁盘阵列直接连接到SAN的交换机上,和备份服务器、多台服务器均通过SAN相互连接,利用SAN的高性能来提高备份速度、降低数据备份对网络和服务器的影响。备份系统结构图说明如下:(1)Veritas 服务器(即备份服务器):备份系统是数据安全的关键系统,而备份服务器是备份系统的核心,因此从安全可靠的角度,采用专用的备份服务器,在这台服务器上安装VERTIAS Server端软件,集中管理控制磁带库、定制备份策略、管理备份作业、管理磁带等,同时安装oracle catalog库。(2)备份方案:对97系统购买IBM VERTIAS 备份软件,将数据备份至磁盘阵列上面,备份数据走光纤通道。对营销支撑系统,我们从SAN存储的FATA盘上划部分空间直接挂到系统中,然后直接采用RMAN做备份,以降低成本。之所以采用FATA盘的目的是为了避免和FC盘有IO冲突。(3)M300磁盘阵列:在我们的方案当中,我们采用磁盘阵列来代替一贯采用的磁带库。磁盘阵列具有性能高,可靠性高,维护方便等优点。本方案中采用专业存储厂商富士通的中高端存储ETERNUS3000 M300,作为一种面向开放系统的存储系统,ETERNUS3000在性能、容量及连通性等方面将世界标准提高到一个新层次。M300的容量为6T的FC盘,10T的FATA盘。在FC盘上保留所有系统的一份全备,其他的备份在白天定期转移到FATA盘。在FATA盘上保留1-2份全备,其他的定期转移到3583磁带库中。(3)光纤交换机:为了使整个系统具有良好的扩展性,我们在数据中心采用了被评为最优秀的网络存储产品博科的16口的光纤交换机,在新大楼备份中心采用博科的8口的光纤交换机。(4)磁带库:本方案中的磁带库采用的是原先计费系统所用的3583磁带库。我们定期将FATA盘上的备份自动转移到该磁带库上,做更久的保留。(5)逻辑备份服务器:为了充份利用旧有的设备来提高异地集中备份系统的稳定性,安全性,我们利用旧有设备IBM 7044-170小型机和IBM 3542阵列来搭建一个逻辑备份系统。所有的逻辑备份都放到该机器上面来,使得逻辑备份和物理备份在物理上开离。这样一来避免了IO冲突,二来提高了备份系统的可靠性。

ORACLE数据备份与数据恢复方案

三、金华电信97系统的数据库备份和恢复

3.1 备份方法

采用Veritas NBU物理备份加EXP逻辑备份。Exp逻辑备份在服务器上直接备份,定期转移到逻辑备份服务器。

3.2 备份策略

备份策略:(1)每周进行一次数据库全备份操作,并定期将FC盘上面的物理备份定期转移到FATA盘上,同时将FATA盘阵上面的物理备份定期转移到磁带库上,至少保存 3 个全备份;全备份时间选择在每周星期六凌晨12:00 开始。(2)数据库采用Archive Log 模式,每天晚上12:00 开始进行增量备份。(3)与数据库的逻辑备份相配合,我们每天进行一次数据的exp备份,即每天做一个完整的数据库EXPORT 备份;备份时间选择在每天凌晨1:00 开始。Exp备份还是备到本机,定期将其ftp到逻辑备份服务器上。

3.3 恢复策略

恢复策略:(1)数据文件损坏或磁盘阵列损坏:针对这种情况可以采用Veritas NBU从FC磁盘阵列中恢复。(2)误操作或对象级逻辑上的损坏:针对这种情况可以从exp备份中采用imp恢复。

3.4 性能影响

数据库采用归档模式对97数据库性能将产生一定的影响。因为在归档模式下,oracle需要将归档日志归档到归档目录(也就是copy)。在IO资源不成为瓶颈的情况下,对系统影响将可以不予考虑。97系统目前的瓶颈在于内存这一块。所以对97系统的性能影响可以不加以考虑。

ORACLE数据备份与数据恢复方案

四、金华电信营销支撑系统的备份与恢复

4.1 备份方法

采用物理备份加EXP逻辑备份。物理备份考虑到VERTIAS 的成本,及该系统的重要程度,我们从SAN存储上划一部分空间挂接至该系统OS上面,然后直接采用RMAN备份。这样备份的好处是成本低,缺点是不便于管理和维护,消耗主机的资源,在主机无法启动的情况下,备份文件无法访问,但备份数据还是完好如初的。

4.2 备份策略

备份策略:(1)每周进行一次数据库全备份操作,采用循环覆盖的方式,共保存 2个全备份;备份时间可以选择在周日晚上11:00进行(由于其采用的是FATA盘,与其他的物理备份不会造成IO冲突)。(2)数据库采用Archive Log 模式,每天晚上12:00 增量备份。(3)与数据库的逻辑备份相配合,我们每周进行一次数据的exp备份,即每天做一个完整的数据库EXPORT 备份;备份时间选择在每天凌晨1:00 开始。

4.3 恢复策略

恢复策略:(1)数据文件损坏或磁盘阵列损坏:针对这种情况可以采用RMAN从磁盘中恢复。(2)误操作或对象级逻辑上的损坏:针对这种情况可以从exp备份中采用imp恢复。

4.4 性能影响

数据库采用归档模式对营销支撑系统数据库性能产生的影响也是由于归档进程需要对归档日志进行归档。同时改成归档模式还需要注意的一个问题就是归档目录空间的问题,该系统空间足够。如果该系统的IO资源较为充裕的话,则不会对性能产生很大的影响。

ORACLE数据备份与数据恢复方案

五、RMAN Catalog 数据库的备份

RMAN Catalog库是整个备份系统当中最重要的信息之一。是在物理备份(Veritas)服务器上建立的一个ORACLE数据库,记录了所有备份的数据库数据文件。如果丢失了Catalog信息的话,恢复将非常麻烦,因此我们也需要对RMAN Catalog库做定期备份。RMAN Catalog库采用逻辑备份,每天直接备份到逻辑备份服务器上。

ORACLE数据备份与数据恢复方案

六、结 语

数据库的备份和恢复的主要工作就是为数据做了一份拷贝,防止出现故障时导致数据的丢失。数据库受破坏一般是由于两种情况引起,其一为系统(软件)故障,如掉电、SQL Server错误、操作系统错误、非正常关机等引起。其二为磁盘(介质)故障,由磁盘受破坏引起。若出现介质故障(如磁盘崩溃),当且仅当对数据库及事务日志做了定期备份,才能恢复数据库。在实际应用中,应根据具体的情况,采纳一切可以用的方法,制定切合实际的备份和恢复方案,明确在各种故障情况中数据可恢复的程度是否满足了应用的需要。为了保证数据存储的可管理性,减少管理的复杂性,建立一个异地集中、在线的备份系统是必不可少的。采用先进的备份技术和先进的备份系统软件,采用统一的管理机制,保证大数据量的一致性备份和高速切换。从而提供高效的存储设备的管理能力和可靠的数据备份功能。

篇2:oracle备份恢复方案

目前, 数据已成为信息系统的基础核心和重要资源, 同时也是各单位的宝贵财富, 数据 的丢失将导致直接经济损失和用户数据的丢失, 严重影响对社会提供正常的服务。另一方面, 随着信息技术的迅猛发展和广泛应用, 业务数据还将会随业务的开展而快速增加。但由于系 统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份, 恢复数据就显得很容易。由此可见, 做好数据库的备份至关重要。因此,建立一个满足当前 和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或 外置的磁带机对数据进行冷备份, 这种方式在数据量不大、操作系统种类单

一、服务器数量 有限的情况下, 不失为一种既经济又简明的备份手段。但随着计算机规模的扩大, 数据量几 何级的增长以及分布式网络环境的兴起, 将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。

因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于 业务的业务数据,又包括 IT 系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以 ORACLE 数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案, 介绍 ORACLE 数据库的备份与恢复。ORACLE数据备份与数据恢复方案 2.1 导出和导入(Export/Import 利用 Export 可将数据从数据库中提取出来,利用 Import 则可将提取出来的数据送回到 Oracle 数据库中去。

1、简单导出数据(Export和导入数据(Import

Oracle 支持三种方式类型的输出:(1表方式(T方式 ,将指定表的数据导出。

(2用户方式(U方式 ,将指定用户的所有对象及数据导出。(3全库方式(Full方式 ,瘵数据库中的所有对象导出。

数据导入(Import的过程是数据导出(Export的逆过程, 分别将数据文件导入数据库和将 数据库数据导出到数据文件。

2、增量导出 /导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为

SYSTEM 来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为 export.dmp ,如果不希望自己的输出文件定名为 export.dmp ,必须在命令行中指出要用的文 件名。

增量导出包括三种类型:(1“ 完 全 ” 增 量 导 出(Complete即 备 份 三 个 数 据 库 , 比 如 :exp system/manager inctype=complete file=040731.dmp。

(2“ 增 量 型 ” 增 量 导 出 备 份 上 一 次 备 份 后 改 变 的 数 据 , 比 如 :exp system/manager inctype=incremental file=040731.dmp。

(3“ 累积型 ” 增量导出累计型导出方式是导出自上次 “ 完全 ” 导出之后数据库中变化了的 信息。比如:exp system/manager inctype=cumulative file=040731.dmp。

数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。比如数据库的被封任务可以做如下安排:

星期一:完全备份(A 星期二:增量导出(B 星期三:增量导出(C 星期四:增量导出(D 星期五:累计导出(E 星期六:增量导出(F 星期日:增量导出(G。

如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:第一步:用命令 CREATE DATABASE 重新生成数据库结构;第二步:创建一个足够大的附加回滚;第三步:完全增量导入 A :imp system/manager inctype=RESTORE FULL=y FILE=A 第四步:累计增量导入 E :imp system/manager inctype=RESTORE FULL=Y FILE=E 第五步:最近增量导入 F :imp system/manager inctype=RESTORE FULL=Y FILE=F 2.2 冷备份

冷备份发生在数据库已经正常关闭的情况下, 当正常关闭时会提供给我们一个完整的数 据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份 Oracle 信息而言, 冷备份时最快和最安全的方法。冷备份的优点是:

1、是非常快速的备份方法(只需拷文件;

2、容易归档(简单拷贝即可;

3、容易恢复到某个时间点上(只需将文件再拷贝回去;

4、能与归档方法相结合,做数据库 “ 最佳状态 ” 的恢复;

5、低度维护,高度安全。但冷备份也有如下不足:

1、单独使用时,只能提供到 “ 某一时间点上 ” 的恢复;

2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷 备份过程中,数据库必须是关闭状态;

3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢;

4、不能按表或按用户恢复。

如果可能的话(主要看效率 , 应将信息备份到磁盘上, 然后启动数据库(使用户可以工作 并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作。冷备份中必须拷贝的文件 包括:

1、所有数据文件。

2、所有控制文件。

3、所有联机 REDO LOG文件。

4、Init.ora 文件(可选。

值得注意的使冷备份必须在数据库关闭的情况下进行, 当数据库处于打开状态时, 执行 数据库文件系统备份是无效的。

下面是作冷备份的完整例子:(1 关闭数据库;sqlplus /nolog sql>connect /as sysdba sql>shutdown normal;(2 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 sql>cp。

(3 重启 Oracle 数据库 sql>startup。2.3 热备份

热备份是在数据库运行的情况下,采用 archivelog mode方式备份数据库的方法。所以, 如果你有昨天夜里的一个冷备份而且又有今天的热备份文件, 在发生问题时, 就可以利用这 些资料恢复更多的信息。热备份要求数据库在 Archivelog 方式下操作, 并需要大量的档案空 间。一旦数据库运行在 archivelog 状态下,就可以做备份了。热备份的命令文件由三部分组 成: 1.数据文件一个表空间一个表空间的备份:(1设置表空间为备份状态;(2备份表空间的数据文件;(3回复表空间为正常状态。2.备份归档 log 文件:(1临时停止归档进程;(2log下那些在 archive rede log目标目录中的文件;(3重新启动 archive 进程;(4备份归档的 redo log文件。

3.用 alter database bachup controlfile命令来备份控制文件: 热备份的优点是: 1.可在表空间或数据库文件级备份,备份的时间短。2.备份时数据库仍可使用。

3.可达到秒级恢复(恢复到某一时间点上。4.可对几乎所有数据库实体做恢复。

5.恢复是快速的,在大多数情况下爱数据库仍工作时恢复。热备份的不足是: 1.不能出错,否则后果严重;2.若热备份不成功,所得结果不可用于时间点的恢复;3.因难于维护,所以要特别仔细小心,不允许 “ 以失败告终 ”。3 系统数据库备份策略

数据库运行在归档模式下, 利用 Veritas 软件模块调用数据库的备份接口进行在线的热 备份, 可以在备份时,对备份数据保存在不同的存储对象中, 以满足客户容灾的要求, 可以 利用 Veritas 的多线程的数据迁移、利用多个磁带驱动器同时读写提高其数据备份的效率。针对数据库的总数据量和增量数据量大小, 我们可以利用数据库的多级的增量备份机制, 结 合 Veritas 强大的备份数据追踪寻址能力和介质管理功能,制定灵活的备份策略,实现全 自动的备份数据的全生命周期管理。

4备份系统数据库恢复策略

通过本地的 Veritas Server结合 Veritas for Databases利用备份数据进行数据恢 复。恢复时, Veritas 可以实现多线程的数据恢复,利用 Veritas 独特的磁带分类集中存 放技术,减少磁带的就位时间,提高数据恢复的效率。

先用最近一次的全备份恢复+恢复最近一次的增量备份+增量备份到断点的 ARCHIVE LOG 来恢复(要求数据库在 ARCHIVE LOG 模式下工作)。这种恢复方式比全部用 ARCHIVE LOG 恢复要快。如果两份冗余的最近一次增量备份都不可用,可以追溯再上次的增量备份来恢复,然后 用增量备份到断点的 ARCHIVE LOG 恢复。如果最近一次的全备份恢复都不可用,则利用上个周期的全备份+上个周期的最后一次 增量备份+本周期的最近一次增量备份+增量备份到断点的 ARCHIVE LOG 来恢复。如果增量备份都不可用,那么用全备份+ARCHIVE LOG 来恢复。5 数据库恢复可以分为以下两类: 5.1 实例故障的一致性恢复 当实例意外

地(如掉电、后台进程故障等)或预料地(发出 SHUTDOUM ABORT 语句)中 止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复到故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况 Oracle 在下次数据库起动时(对 新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地 激发实例恢复,由下列处理:

(1)

为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。所指定的操作。

(2)回滚未提交的事务,按步 1 重新生成回滚段

(4)

(3)释放在故障时正在处理事务所持有的资源。

解决在故障时正经历一阶段提交的任何悬而未决的分布事务。5.2 介质故障或文件错误的不一致恢复 介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。文件错 误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。这种状态下的数据库都 是不一致的,需要 DBA 手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行 的归档方式和备份方式。(1)完全介质恢复可恢复全部丢失的修改。一般情况下需要有数据库的备份且数据库 运行在归档状态下并且有可用归档日志时才可能。对于不同类型的错误,有不同类型的完全 恢复可使用,其决定于毁坏文件和数据库的可用性。(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损 的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有 不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和 基于修改的不完全恢复。

基于撤消(CANCEL恢复:在某种情况,不完全介质恢复必须被控制,DBA 可撤消在指定 点的操作。基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数 据文件后中止恢复操作。

基于时间(TIME和基于修改(SCN的恢复:如果 DBA 希望恢复到过去的某个指定点,是 一种理想的不完全介质恢复,一般发生在恢复到某个特定操作之前,恢复到如意外删除某个 数据表之前。

篇3:oracle备份恢复方案

“军队疗养院信息系统”由总后卫生部与大连疗养院共同研制,于2006年正式配发到全军所有疗养院推广使用。该系统集成了军队疗养员在院的所有医疗信息,各疗养院通过该系统向上级卫生部门上报病案首页、医技信息等数据并领取卫生经费。为了保证疗养系统数据库数据的安全运行,笔者在系统的维护过程中对服务器的配置、备份方案进行了多次论证、调整,并进行了一系列的数据恢复试验,最终采用了适用于我院实际情况的手工实现的Oracle数据自动备份与恢复方案。

2 手工管理的数据备份与恢复

手工管理的Oracle数据备份有2种类型:逻辑备份和物理备份,其中物理备份又分为离线备份(冷备份)和在线备份(热备份)。逻辑备份的代表性方法就是导出(export),即通过导出数据文件内的数据与对象的定义并整合成为一个dmp文件实现备份。冷备份是指将数据库关闭后利用操作系统指令将数据库的物理文件全部复制一份。热备份则不需要将数据库关闭即可利用操作系统指令将数据库的物理文件进行复制。这3种备份方式各有特点,适用于不同的备份要求和环境。导出备份主要针对小型数据库、单一表空间或重要表内的数据备份,是相当不错且有弹性的备份方式,但对于大型数据库或性能较低的服务器会耗费相当长的时间和较多的系统资源,因此建议作为辅助备份[1]。冷备份能够保证备份时间点数据库的完整性,但对于数据操作实时性极高的大型数据库来说,冷备份因为需要关闭数据库,一周内的执行频率不能过高,且应选择在数据访问量小的时间进行。热备份因为无需关闭数据库成为一种被广泛采用的主要备份方式,但这种备份方式要求数据库必须在归档模式下运行,恢复操作也相对复杂。

恢复是指在数据库损坏的情况下,使用备份将受损的数据恢复回来的过程[2]。针对导出备份的恢复方法就是导入,一般应用于在线服务器出现硬件故障之后的数据库重建。对于物理备份的恢复分为完全恢复和不完全恢复。在归档日志与控制文件没有丢失的情况下,应用最多的是由于用户误操作后需要恢复误操作的数据以及数据库恢复到误操作之前的时间点的不完全恢复。

3 备份方案

对于一个7×24 h的数据库系统,备份尤为重要,因为如果出现故障,完善可靠的备份策略能使数据库得到更快而安全的恢复[3]。笔者认为,一个完善的数据备份方案应该是硬件、软件与各种备份方式的有机组合。

3.1 硬件配置

主服务器:IBM X3650 7979R01服务器。

异地导出备份服务器:DELL PowerEdge SC430服务器。

存储方式:主服务器4块SAS硬盘采用RAID5存储方式,保证任何一块硬盘损坏时数据不会丢失。

3.2 软件环境

服务器操作系统:Windows Server 2003(SP2)。

数据库管理系统:Oracle 8.1.6,工作于自动归档模式,实例名为aspsrv(正常情况下关闭异地备份服务器Oracle服务)。

3.3 数据备份计划

添加任务计划,定期定时运行备份批处理命令,实现自动备份。

本地热备:1次/d,时间:每日00:00,保留最近1周的备份数据。

本地冷备:1次/周,时间:周日01:00,保留最近4周的备份数据。

异地导出备份:1次/d,时间:每日12:00,保留最近1周的备份数据。

3.4 数据自动备份实现方法

通过编写备份批处理命令与sql脚本来完成3种方式的数据自动备份。批处理命令与sql脚本应在同一文件夹目录下。如执行热备的批处理命令与sql脚本主要内容为:

4 恢复实例

数据库系统一旦出现故障,DBA要能迅速使其恢复正常[4]。以用户使用drop table命令误删除一个表为例,进行数据恢复。

4.1 恢复方案

(1)异地重建数据库后使用PowerBuilder导出被删除表(save rows as),然后在主服务器上导入(import)该表。在异地重建数据库有2种方法:一种是使用导出备份数据,另一种是使用最近热备数据库。选择哪种方式取决于哪种备份的时间与当前时间更接近,这样损失会更少。

(2)使用基于时间点/撤销或SCN号的不完全恢复,即使用备份的冷备数据库或热备数据库结合归档日志将数据库恢复到误操作之间的最近时间点。

方法(1)损失的是备份数据库到误操作这段时间被删除表的数据,最长为12 h,即热备与异地导出备份的时间间隔;方法(2)损失的是最近归档到误操作这段时间数据库的数据,一般为几秒钟时间,且能够保证整个数据库在恢复时间点的数据同步。

4.2 实现步骤

以方法(2)为例,进行不完全恢复必须具有2个前提:一是具有所有数据文件的备份,并且该备份是在要恢复到的时间点之前做的;二是具有从备份完成的时间点开始到要恢复到的时间点之间的所有归档日志文件。进行基于时间点的不完全恢复步骤为:

(1)关闭数据库。

SQL>shutdown immediate;

(2)执行一次冷备批处理命令(安全角度考虑,即使不完全恢复或失败也可以恢复至当前状态)。

(3)从上次热备中还原所有的数据文件。

(4)将数据库启动至mount阶段。

SQL>startup mount;

(5)进行基于时间点的不完全恢复。

SQL>recover database until time‘2009-06-08 09:50:10’;

(6)以resetlogs打开数据库。

SQL>alter database open resetlogs;

(7)再执行一次冷备批处理命令。

5 小结

本备份方案投入经费较低,没有设置专门的备用服务器。异地导出服务器实际上相当于一台性能较高的PC机,平时作为数据库维护计算机使用,在需要时又能承担备用服务器的功能。主服务器的性能与数据备份计划的组合配置合理,进行一次冷备份或热备份的时间在30 s以内,异地导出备份的时间在4 min以内。通过手工方式实现了数据备份的自动化管理,提高了工作效率和工作质量,有利于避免人为错误,提高数据备份的安全性和可靠性[5]。总之,该备份与恢复方案不仅保证了数据安全,也达到了系统运行畅通的目标,对于中小型医院数据库系统的建设具有一定的参考价值。

参考文献

[1]张天慧.专家精讲:Oracle数据库管理与维护[M].北京:电子工业出版社,2009:258.

[2]韩思捷.Oracle数据库技术实用详解:教你成为10Gocp[M].北京:电子工业出版社,2008:191.

[3]李佩铎.Oracle数据库备份和恢复优化[J].医疗设备信息,2007,22(3):47-85.

[4]朱有存,罗丹,王梅,等.基于RMAN的“军卫一号”数据库备份恢复方法[J].医疗卫生装备,2007,28(1):50.

篇4:oracle备份恢复方案

关键词:Oracle CRON 备份 数据库

中图分类号:TP309.3 文献标识码:A 文章编号:1673-8454(2008)19-0045-03

在计算机网络广泛应用的今天,医院信息化获得了飞速的发展,电子处方、电子医嘱、电子申请单等一系列计算机手段的应用极大地提高了医护人员的工作效率,方便患者就医诊治。但是目前这些医院信息化的应用大部分用于医护人员的日常使用,患者还无法从存储在医院数据库中的数据查询到自己的检验/检查信息。在患者就诊的时候,提供近期的检验/检查报告结果,能够为医生的诊治提供有利的帮助,但是如果近期的检验/检查报告丢失或者就诊时忘记携带,那么不得不重新做一遍相应的检验/检查项目,这样既浪费患者的时间,又浪费患者的金钱。“一单通”实行后,部分大医院之间互相认可彼此的检验/检查结果,患者或者医生能够通过计算机网络远程查询相应的检验/检查结果,利用信息化和计算机网络为患者就诊提供更好的服务。在黑客、病毒肆虐的互联网上,为了保证服务的持续性和稳定性,对提供基础数据的数据库做备份是必须的。

一、Oracle数据库备份方式[1]

UNIX平台和Oracle数据库组合是大中型应用系统的首选。Oracle数据库是目前应用最为广泛的大型数据库之一,其备份的方式主要有冷备份、热备份和逻辑备份。

冷备份是一种物理备份,它使用操作系统的拷贝命令将与数据库相关的物理文件进行备份。在进行冷备份的时候,为了保证数据库中数据的完整性,数据库要预先正常关闭。冷备份是一种非常快速的备份方法,只需将备份文件拷贝回去,就可以非常容易地将数据恢复到备份时的时间点上。冷备份的不足之处是在实施备份的全过程中,数据库必须是处于关闭状态。备份所需时间与数据库的数据文件大小、个数以及备份介质I/O速度有关。

热备份又叫联机备份,它是在数据库运行的状态下进行的物理备份,适用于要求每周7天、每天24小时运行的数据库。与冷备份整个数据库不同,热备份的备份单位是表空间。要进行热备份,首先必须将表空间设置为备份模式,此时数据库在该表空间发生检查点(checkpoint),并将SCN(System Change Number,系统变更号)写入组成表空间的数据文件的头文件中,在表空间处于备份模式期间,Oracle将停止对该表空间数据文件的直接写入,转而使用复杂的机制将回滚段、缓冲、重做日志和归档日志结合起来存储数据,拷贝完毕后结束表空间的备份模式, 数据库将完成对数据文件的同步更新,以数据库当前的SCN替换备份开始时写入头文件中的SCN,由此保证表空间数据的一致性。热备份要求数据库工作在归档(archive log)模式下,在归档模式下重做日志记录了所有数据库的事务,提供了多次表空间备份之间的数据库变化,因此,可利用不同时间的多个表空间备份恢复整个数据库,可作数据库“最新状态”的恢复。热备份的不足在于不易操作,维护成本高。

逻辑备份即为拷贝数据库的数据,而不记录数据位置的备份过程。Oracle中所提供的export(导出)工具可进行逻辑备份。export将数据按Oracle的特定格式从Oracle数据库写到操作系统文件中,恢复时利用Oracle的import(导入)工具读取export导出的文件,将数据导入到数据库中。逻辑备份常用于Oracle数据库之间移动数据,备份整个数据库到一个文件中。使用export工具备份数据库的时候,数据库必须打开。为了保证备份期间整个数据库的完整性和一致性,要以restrict模式打开数据库。

针对要为患者和医生提供不间断的、持续服务的特点,逻辑备份是最适合的一种备份方式。

二、cron实现Oracle数据库的定时备份

1.cron介绍[2]

cron是Unix系统的调度进程,它可以在无需人工干预的情况下运行用户的作业,执行作业的命令是crontab,该命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个自己的crontab文件来保存调度信息。用户可以使用它运行任意一个shell脚本或某个命令。虽然每一个用户都可以有自己的crontab文件,但在一个重要的系统中,系统管理员可以通过 /ect/cron.d目录下的cron.allow和cron.deny两个文件控制用户对contab文件的访问。这两个文件全部由用户名组成,每个用户名一行。这两个文件的使用遵循如下规则:

第一,如果cron.allow存在,那么只有该文件中指定的用户才可以执行crontab任务,例如建立、编辑、显示或者删除他们自己的crontab文件;

第二,如果cron.allow不存在,那么除了cron.deny文件中指定的用户名以外,其它所有用户均可以执行contab任务;

第三,如果cron.allow和cron.deny两个文件都不存在,那么只有root用户可以执行crontab任务,其它用户不能执行crontab任务。

2.cron实现Oracle数据库的定时备份

本文以Sun Solaris 9 平台下的Oracle 9.2.0.6为例,说明如何使用cron实现Oracle数据库的定时逻辑备份。

在使用cron定时备份Oracle数据库的时候,用户首先要根据自己的需求定制crontab文件的脚本。本文以备份Oracle数据库中的test用户为例说明如何定制脚本:

步骤1:确定要定时自动执行作业的用户

以Oracle用户登录服务器;

步骤2:编辑备份Oracle数据库的脚本

(1)使用vi编辑器创建文件backup_oracle.sh;

(2)编辑文件backup_oracle.sh的内容如下:

#Start

#Part 1

ORACLE_BASE=/export/home1/oracle; export ORACLE_BASE

ORACLE_HOME=/export/home1/oracle/product/9.2.0; export ORACLE_HOME

ORACLE_SID=orcl; export ORACLE_SID

ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:usr/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

NLS_LANG=american_america.ZHS16GBK;export NLS_LANG

PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ucb:/etc:/usr/

#Part 2

RQ=` date+"%y%m%d%H%M%S"`

#Part 3

/export/home1/oracle/product/9.2.0/bin/exp system/pw_system owner=testfile=/export/home0/oracle/backup/test$RQ.dmplog=/export/home0/oracle/backup/test$RQ.log

#End

文件内容说明:

文件的内容包括两部分:

Part 1:Oracle用户的环境变量设置

Part 2:RQ是一个变量,其值表示当前系统的时间,如:060501203000,表示2006年5月1日20点30分0秒

Part 3:/export/home1/oracle/product/9.2.0/bin/exp system/pw_system owner=testfile=/export/home0/oracle/backup/test$RQ.dmplog=/export/home0/oracle/backup/test$RQ.log

该语句使用Oracle的exp命令对数据库进行逻辑备份,备份产生的文件名字为所导出的用户名与RQ变量的组合,如:test060501203000.dmp,备份的日志文件名字也是用户名与RQ变量的组合,如:test060501203000.log。

步骤3:创建crontab文件

(1)使用vi编辑器编辑创建名字为cron的文件,其中的为用户的名字,在本脚本中应该是:vi oraclecron。

(2)文件oraclecron的内容如下:

30 20 * * * sh /global/oracle/oradata/backup_oracle.sh

该文件的格式说明如下:[3][4]

该文件的每一个条目必须含有6列、5个时间域,每个域之间要用空格分隔,其中:

第1列表示分钟:1~59;第2列表示小时:0~23(0表示子夜);第3列表示日:1~31;第4列表示月:1~12;第5列表示星期:0~6(0表示星期天);第6列表示要运行的命令。

在前5个时间域中可以用星号“*”来表示连续的时间段。如果对某个时间域没有特别的限定,应该在该域内填入“*”。

步骤4:提交任务

使用如下命令提交该任务给系统进程cron:crontab oraclecron,同时创建文件的一个副本放在/var/spool/cron/crontabs目录中,文件名就是用户名Oracle

步骤5:查看crontab文件是否已经提交

使用如下命令查看任务是否已经提交:crontab –l

通过上面的设置,在每天20:30分将自动执行Oracle数据库的备份,文件名字test<脚本启动时间>,如:test060501203000.dmp,orcl_user060502203000.dmp,由于每次脚本启动的时间不同,所以可以在服务器上保留近期多个数据库备份。

三、结束语

为患者和自己医院之外的医生提供检验/检查结果是医院提供的一种“增值服务”,但是这种服务没有经济收入,所以投入成本是提供这种“增值服务”要考虑的一个重要因素。本文实现的Oracle数据库备份,可以在无需额外投入的基础上完成Oracle数据库的日常备份,并且在备份的时候无需人工干预。根据磁盘空间的大小在服务器上可以保存最近日期的数据库备份文件,一旦数据库出现问题,可以利用最近一次的备份进行数据库恢复。

参考文献:

[1]Kevin loney.oracle9i数据库管理员手册[M].北京:机械工业出版社,2002.

[2]饶云华,张曜.Unix/Selaris系统管理与网络管理[M].北京:清华大学出版社,2002.

[3]SebeH M G.Selaris技术指南[M].北京:机械工业出版社,2001.

篇5:ORACLE备份解决方案范文

2009年09月16日 星期三 14:00 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

一、导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

1、简单导出数据(Export)和导入数据(Import)

Oracle支持三种方式类型的输出:

(1)、表方式(T方式),将指定表的数据导出。

(2)、用户方式(U方式),将指定用户的所有对象及数据导出。(3)、全库方式(Full方式),瘵数据库中的所有对象导出。

数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

2、增量导出/导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

增量导出包括三种类型:

(1)、“完全”增量导出(Complete)即备份三个数据库,比如:

exp system/manager inctype=complete file=040731.dmp(2)、“增量型”增量导出

备份上一次备份后改变的数据,比如:

exp system/manager inctype=incremental file=040731.dmp(3)、“累积型”增量导出

累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: exp system/manager inctype=cumulative file=040731.dmp 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。

比如数据库的被封任务可以做如下安排:

星期一:完全备份(A)星期二:增量导出(B)星期三:增量导出(C)星期四:增量导出(D)星期五:累计导出(E)星期六:增量导出(F)星期日:增量导出(G)

如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:

第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。第三步:完全增量导入A:

imp system/manager inctype=RESTORE FULL=y FILE=A 第四步:累计增量导入E:

imp system/manager inctype=RESTORE FULL=Y FILE=E 第五步:最近增量导入F:

imp system/manager inctype=RESTORE FULL=Y FILE=F

二、冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:

1、是非常快速的备份方法(只需拷文件)2、容易归档(简单拷贝即可)

3、容易恢复到某个时间点上(只需将文件再拷贝回去)4、能与归档方法相结合,做数据库“最佳状态”的恢复。5、低度维护,高度安全。

但冷备份也有如下不足:

1、单独使用时,只能提供到“某一时间点上”的恢复。2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。4、不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

1、所有数据文件 2、所有控制文件

3、所有联机REDO LOG文件 4、Init.ora文件(可选)

值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

下面是作冷备份的完整例子。

(1)关闭数据库 sqlplus /nolog sql>connect /as sysdba sql>shutdown normal;(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 sql>cp(3)重启Oracle数据库 sql>startup

三、热备份

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

1. 数据文件一个表空间一个表空间的备份。

(1)设置表空间为备份状态(2)备份表空间的数据文件(3)回复表空间为正常状态

2. 备份归档log文件

(1)临时停止归档进程

(2)log下那些在archive rede log目标目录中的文件(3)重新启动archive进程(4)备份归档的redo log文件

3. 用alter database bachup controlfile命令来备份控制文件 热备份的优点是:

1. 可在表空间或数据库文件级备份,备份的时间短。2. 备份时数据库仍可使用。

3.可达到秒级恢复(恢复到某一时间点上)。4. 可对几乎所有数据库实体做恢复

5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。

热备份的不足是:

1. 不能出错,否则后果严重

2. 若热备份不成功,所得结果不可用于时间点的恢复

篇6:oracle备份恢复方案

1、发明名称

一种基于全量数据的增量数据备份方案 摘要:

本发明公开了一种基于全量数据的增量备份方案,本文中采取的全量数据增量备份方案包括:读取原始数据与数据库当前数据、原始数据与数据库当前数据对比并生成对比结果日志——筛选出增量数据、按照对比结果将增量数据存入数据库临时增量表,最后将增量数据备份至数据库。整个备份过程,使用了MD5(Message Digest Algorithm MD5)信息摘要算法和二分查找算法等IT技术,极大的提高了运行效率。通过本发明可以对海量数据进行高效、可靠、快速的备份,对此类问题的解决具有普遍意义。

开始读取原始数据与数据库当前数据数据比对生成比对结果筛选增量数据增量数据存入数据库临时增量表增量数据备份至数据库结束

2、权利要求书

1.读取原始数据与数据库当前数据:使用MD5(Message Digest Algorithm MD5)信息摘要算法读取原始数据与数据库当前数据,其中数据文件为-CSV格式的文件; 2.数据比对生成比对结果筛选增量数据:原始数据MD5散列值与数据库当前数据的MD5散列值进行全量比对,生成比对结果保存在日志文件中,检索出增量数据; 3.增量数据入数据库临时增量表:按照将通过数据比对筛选出来的增量数据存入数据库临时增量表;

4.增量数据备份至数据库:按照增量表内的数据,通过增加、修改、删除操作更新数据库当前数据,实现原始数据全量备份至数据库;

3、说明书 3.1、技术领域

本申请是一种进行海量数据增量备份的方法。通过本发明可以对海量数据进行高效、可靠、快速的备份,对此类问题的解决具有普遍意义。

3.2、背景技术

目前在有着某种业务关联的分布式数据库和分布式信息系统的各类应用中,常常需要对不同的分布式数据库和信息应用系统中的一些关键数据进行同步,以维护它们之间的数据的一致性。在需要同步的数据量、信息应用系统的独立性、实时性及容错性要求不高的情况下,通常使用数据库同步、ftp、http 下载或者简单的接口调用等方法就可以满足需求。但是,一旦所涉及的数据量达到海量(数以亿计)级别而需要同步的数据仅仅为总数据量的一个很小的子集时,如何快速定位到需要同步的数据也会是一个异常突出的问题,本发明即根据此类问题的要求,通过使用MD5(Message Digest Algorithm MD5)信息摘要算法和二分查找算法等IT技术,解析读取数据,比对数据筛选出增量数据,按照增量数据更新数据,从而实现原始数据全量备份;

4、发明内容

4.1、发明的目的

解决海量数据的增量备份。

4.2、实现的步骤

本方案包括:解析、读取原始数据与数据库当前数据、数据比对生成比对结果筛选增量数据、增量数据入数据库临时增量表、增量备份至数据库。

其中筛选增量数据分为筛选:需要在当前数据库内增加的数据、需要根据原始数据在当前数据库内修改的数据、需要在当前数据库内删除的数据,下文将根据以上三种情况来分类阐述本方案中的“解析、读取原始数据与数据库当前数据、数据比对生成比对结果筛选增量数据”步骤,“增量数据入数据库临时增量表、增量备份至数据库”步骤不再分类阐述。4.2.1、读取原始数据与数据库当前数据

开始读取当前数据库中的一条记录,将主键值与其对应的整条记录的值转化成MD5散列值读取原始数据中的一条记录,将主键值与其对应的整条记录的值转化成MD5散列值否业务主键MD5散列值存入字符串数组YS1,整条记录的MD5散列值存入字符串数组YS1业务主键MD5散列值存入字符串数组TS1,整条记录的MD5散列值存入字符串数组TS1否文件是否读完是是文件是否读完结束

上图为读原始数据与数据库当前数据流程图,详细步骤如下:首先根据业务确定资源对象的业务主键,依次读取当前数据库中的每一条记录,抽取其业务主键值和整条记录的值,通过MD5(Message Digest Algorithm MD5)信息摘要算法将业务主键值与其对应的整条记录的值转化成MD5散列值,分别存入到字符串数组YS1和YS2中。

采用上述同样的数据读取方式,将原始CSV格式的数据文件,依次读出并通过MD5算法转化成MD5散列值,分别存入字符串数组TS1和TS2。4.2.2、数据比对生成比对结果-筛选增量数据

为了提高全量比对效率,系统采用多进程、多线程操作系统,将参与全量比对的对象随机分配在5个不同的线程队列中,相比于单线程全量比对操作系统,效率提高5倍;

数据比对进行需两次比对,第一次比对筛选出增加的数据、修改的数据,第二次比对筛选出删除的数据,两次比对详细描述如下。

4.2.2.1、筛选出增加的数据、修改的数据

开始YS1和YS2字符串数组排序读取原始数据中的一条记录,将主键值与其对应的整条记录的值转化成MD5散列值主键值在YS1中查找存在整条记录值在YS2中查找存在不存在在LOG文件中记录该条记录实际值并标识位A否不存在在LOG文件中记录该条记录实际值并标识位M数据是否读完结束 上图为筛选增加数据、修改数据的流程图,详细描述如下: 首先将字符串数组YS1和YS2排序,依次使用原始数据一条记录的业务主键MD5散列值在YS1中使用二分查找算法查找,分以下情况:

 若不存在,则说明该条原始数据为新增的数据,并在LOG文件中记录原始数据中该条据的实际值,以A(add)进行标记;

 若存在,则使用原始数据中该记录的整条记录的MD5散列值--TS2在YS2中折半查找:若不存在,则说明该条数据为需要在当前数据库中除业务主键外其他信息需要修改的数据,并在LOG文件中记录原始数据中该条据的实际值,以M(modify)进行标记;

若原始数据该条记录的业务主键MD5散列值、整条记录MD5散列值,即存在于YS1又存在于YS2中,则说明该条记录无变化,无需更新。

4.2.2.2、筛选出删除的数据

开始将TS1排序读取当前数据库的一条记录,将字符串转换成MD5散列值否主键值在TS1中查找存在在LOG文件中记录该条记录实际值并标识位D不存在数据是否读完结束 上图为筛选删除数据的流程图,详细描述如下:

首先将字符串数组TS1和TS2排序,依次使用数据库一条记录的业务主键MD5散列值在TS1中使用二分查找算法查找,若不存在则说明该条数据为需要在当前数据库中删除的数据,并在LOG文件中记录当前数据库中该条据的实际值,以D(delete)进行标记;

4.2.3、增量数据入数据库临时增量表

当前数据库执行存储过程,将比对过程生成的LOG文件中的数据读入到数据库临时增量表中,按照LOG文件中的标识码在临时增量表中的每条记录后面添加一个属性值其中:LOG文件中‘A’对应临时增量表中‘I’(insert 新增的数据)、LOG文件中‘M’ 对应临时增量表中‘U’(update更新的数据)、LOG文件中‘D’ 对应临时增量表中‘D’(delete删除的数据);

4.2.4、增量备份至数据库

当前数据库执行存储过程,读取数据库临时增量表中一条记录,标识码在当前数据库相对应的表中做增删改操作,如下:

 若临时增量表中标识码为‘I’则在当前数据库相对应的表中插入该条记录;  若临时增量表中标识码为‘D’则在当前数据库相对应的表中删除该条记录;  若临时增量表中标识码为‘U’则在当前数据库相对应的表中先删除当前数据库该条记录,再把原始数据中与该条记录的业务主键值相等的记录插入到数据库中; 按照以上操作实现全量数据增量备份。

5、附录

5.1、MD5(Message Digest Algorithm MD5)信息摘要算法

所谓MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前“压缩”成一种保密的格式,关键之处在于——这种“压缩”是不可逆的。

MD5信息-摘要算法,用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的 MD5信息摘要。

5.2、二分查找算法

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如 果xa[n/2],则我们只要在数组a的右 半部继续搜索x。

二分查找的基本思想是:(设R[low..high]是当前的查找区间)

(1)首先确定该区间的中点位置:

(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:

①若R[mid].key>K,则由表的有序性可知R[mid..n].keys均大于K,因此若表中存在关键字等于K的结点,则该结点必定是在位置mid左边的子表R[1..mid-1]中,故新的查找区间是左子表R[1..mid-1]。②类似地,若R[mid].key

上一篇:依法治校的定义和意义下一篇:黄继光 教案