ORACLE数据备份与数据恢复方案学号:11129149姓名:文明艺1引言目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。2ORACLE数据备份与数据恢复方案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)即备份三个数据库,比如:expsystem/managerinctype=completefile=040731.dmp。(2)“增量型”增量导出备份上一次备份后改变的数据,比如:expsystem/managerinctype=incrementalfile=040731.dmp。(3)“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:expsystem/managerinctype=cumulativefile=040731.dmp。数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。比如数据库的被封任务可以做如下安排:星期一:完全备份(A)星期二:增量导出(B)星期三:增量导出(C)星期四:增量导出(D)星期五:累计导出(E)星期六:增量导出(F)星期日:增量导出(G)。如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:第一步:用命令CREATEDATABASE重新生成数据库结构;第二步:创建一个足够大的附加回滚;第三步:完全增量导入A:impsystem/managerinctype=RESTOREFULL=yFILE=A第四步:累计增量导入E:impsystem/managerinctype=RESTOREFULL=YFILE=E第五步:最近增量导入F:impsystem/managerinctype=RESTOREFULL=YFILE=F2.2冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:1、是非常快速的备份方法(只需拷文件);2、容易归档(简单拷贝即可);3、容易恢复到某个时间点上(只需将文件再拷贝回去);4、能与归档方法相结合,做数据库“最佳状态”的恢复;5、低度维护,高度安全。但冷备份也有如下不足:1、单独使用时,只能提供到“某一时间点上”的恢复;2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态;3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢;4、不能按表或按用户恢复。如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:1、所有数据文件。2、所有控制文件。3、所有联机REDOLOG文件。4、Init.ora文件(可选)。值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。下面是作冷备份的完整例子:(1)关闭数据库;sqlplus/nologsqlconnect/assysdbasqlshutdownnormal;(2)用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件sqlcp。(3)重启Oracle数据库sqlstartup。2.3热备份热备份是在数据库运行的情况下,采用archivelogmode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:1.数据文件一个表空间一个表空间的备份:(1)设置表空间为备份状态;(2)备份表空间的数据文件;(3)回复表空间为正常状态。2.备份归档log文件:(1)临时停止归档进程;(2)log下那些在archiveredelog目标目录中的文件;(3)重新启动archive进程;(4)备份归档的redolog文件。3.用alterdatabasebachupcontrolfile命令来备份控制文件:热备份的优点是:1.可在表空间或数据库文件级备份,备份的时间短。2.备份时数据库仍可使用。3.可达到秒级恢复(恢复到某一时间点上)。4.可对几乎所有数据库实体做恢复。5.恢复是快速的,在大多数情况下爱数据库仍工作时恢复。热备份的不足是:1.不能出错,否则后果严重;2.若热备份不成功,所得结果不可用于时间点的恢复;3.因难于维护,所以要特别仔细小心,不允许“以失败告终”。3系统数据库备份策略数据库运行在归档模式下,利用Veritas软件模块调用数据库的备份接口进行在线的热备份,可以在备份时,对备份数据保存在不同的存储对象中,以满足客户容灾的要求,可以利用Veritas的多线程的数据迁移、利用多个磁带驱动器同时读写提高其数据备份的效率。针对数据库的总数据量和增量数据量大小,我们可以利用数据库的多级的增量备份机制,结合Veritas强大的备份数据追踪寻址能力和介质管理功能,制定灵活的备份策略,实现全自动的备份数据的全生命周期管理。4备份系统数据库恢复策略通过本地的VeritasServer结合VeritasforDatabases利用备份数据进行数据恢复。恢复时,Veritas可以实现多线程的数据恢复,利用Veritas独特的磁带分类集中存放技术,减少磁带的就位时间,提高数据恢复的效率。先用最近一次的全备份恢复+恢复最近一次的增量备份+增量备份到断点的ARCHIVELOG来恢复(要求数据库在ARCHIVELOG模式下工作)。这种恢复方式比全部用ARCHIVELOG恢复要快。如果两份冗余的最近一次增量备份都不可用,可以追溯再上次的增量备份来恢复,然后用增量备份到断点的ARCHIVELOG恢复。如果最近一次的全备份恢复都不可用,则利用上个周期的全备份+上个周期的最后一次增量备份+本周期的最近一次增量备份+增量备份到断点的ARCHIVELOG来恢复。如果增量备份都不可用,那么用全备份+ARCHIVELOG来恢复。5数据库恢复可以分为以下两类:5.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUMABORT语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复到故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:1)为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。3)释放在故障时正在处理事务所持有的资源。4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。5.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。(1)完全介质恢复可恢复全部丢失的修改。一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。(CANCEL)恢复:在某种情况,不完全介质恢复必须被控制,DBA可撤消在指定点的操作。基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复操作。(TIME)和基于修改(SCN)的恢复:如果DBA希望恢复到过去的某个指定点,是一种理想的不完全介质恢复,一般发生在恢复到某个特定操作之前,恢复到如意外删除某个数据表之前。6结语数据库的备份和恢复的主要工作就是为数据做了一份拷贝,防止出现故障时导致数据的丢失。数据库受破坏一般是由于两种情况引起,其一为系统(软件)故障,如掉电、SQLServer错误、操作系统错误、非正常关机等引起。其二为磁盘(介质)故障,由磁盘受破坏引起。若出现介质故障(如磁盘崩溃),当且仅当对数据库及事务日志做了定期备份,才能恢复数据库。在实际应用中,应根据具体的情况,采纳一切可以用的方法,制定切合实际的备份和恢复方案,明确在各种故障情况中数据可恢复的程度是否满足了应用的需要。为了保证数据存储的可管理性,减少管理的复杂性,建立一个异地集中、在线的备份系统是必不可少的。采用先进的备份技术和先进的备份系统软件,采用统一的管理机制,保证大数据量的一致性备份和高速切换。从而提供高效的存储设备的管理能力和可靠的数据备份功能。