您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库备份和恢复方案(毕业论文)
备份和恢复方案恢复方案在被真正付诸实施之前通常是不会得到检测的,理由是没有时间或资源来检测此方案,由此阻止了数据的复原。如果你没有足够丰富渊博的知识来建立一个正确的备份方案,那么当恢复问题出现时,你也许会付出很大的代价。能够熟悉所有的恢复过程,并按照可接受的恢复手段创建正确的备份方案,也许即是你成功的关键。如果正确的备份方案得不到实施时,你就会认为你的系统属于不可恢复的。多熟悉和了解备份和恢复方面的知识,就可以创建一个完整的备份方案来保护你的系统。这篇文章介绍了很多知识技巧,以助你创建一个完整的方案。备份策略-----快速参考如下的备份方案是可行及有效的:*全部和部分卸出(数据)*增量卸出数据(一般不采纳)*映象备份*热备份*归档*整个文件系统的复制*以上方法可以组合使用(建议)建议的备份方案包含如下:.Oracle执行程序(映象)----每月到每两周(或执行程序改变时).完整卸出----一周一次(如果在一个较频繁的开发环境中可增加次数).完整映象----每晚(较好)到每周.归档----激活(肯定)缩短备份时间及缩短数据库关闭时间:.当数据库运行时可以使用热备份方式.备份到磁盘上而不是磁带上缩短恢复时间.在磁盘而不是磁带上保存最近期的备份和归档文件避免发生意外.多个RedoLog(增加每一个RedoLog组的成员).卸出数据加归档(对单个表丢失的恢复).控制文件的多个拷贝.数据库关闭时的映象备份(冷备份).备份和恢复过程应制成文档恢复策略----快速参考2如果你没有足够的知识来应用正确的恢复过程,请不要盲目去做!因为如果恢复的方法不正确,那么可能会给系统造成更多的伤害。解决之道就是立即学习!不要等到问题出现了才去学习正确的恢复手段。成功的数据库恢复依赖下列条件:º.DBA知识.实施正确的备份过程.认识到真正问题所在.采用正确的恢复办法.可用的备份文件DBA决定采用哪一种恢复方案:.Instance恢复(通常只是启动).用户错误恢复(通常只是恢复用户创建的事务).进程恢复(通常是数据库的关闭和启动).失败语句的恢复(通常只是修复用户建立的事务).介质恢复(是最难办的问题,请看下面)在恢复一个数据之前,DBA必须知道以下所列的哪一个被破坏了:º.Databasefiles(对应系统中的表空间).RedoLogs(On-lineRedoLogs).ArchiveLogs(Off-lineLogs).INIT.ORA(如果丢失可以重建).ControlFiles(是否有可用的拷贝)然后,DBA可用有效的指令处理恢复过程。在进行下列三种恢复时数据库的状态:DBOn-LineDBOff-Line数据库NoYes表空间YesNo数据文件YesYes映象备份所谓映象备份就是把数据库的关键文件拷贝到另一个目录的备份方法。映象备份或许是最快及最安全的备份Oracle的方法,但其中的一个问题是你只能恢复到做映象备份的那一时间点。另一个问题就是在备份时必须先关闭数据库。多数与映象备份相关的问题可以通过日志归档来解决,而用日志归档来恢复要依靠一个完好的映象备份(数据库是关闭的)。如果可能的话,映象备份最好拷贝到磁盘上。然后启动数据库(用户可以开始工作),再把映象备份拷贝到磁带上。必须要拷贝的文件如下:.所有DatabaseFile.所有ControlFile.所有On-LineRedoLog(不归档)3.INIT.ORA和CONFIG.ORA文件(选择;可以重建)映象备份的优势及不足优点:.非常快的备份方法(只需拷贝文件).易于归档(简单的拷贝).易于及时恢复到某个时间点(只需将备份文件复制回来).可以和日志归档方式结合使用,能够恢复到数据库失败的时间点.易于维护,很安全。缺点:.在备份时数据库要关闭.如果磁盘空间有限,你或许不得不将它拷贝到速度很慢的磁带上.不能恢复单个表或用户最好的用法:.和日志归档一起使用.如磁盘空间允许,先拷贝到磁盘上,然后在数据库运行后再拷贝到磁带上日志归档(特别推荐)日志归档是指Oracle自动将RedoLog备份(拷贝)到一个叫做归档文件的文件上。当用户改变数据库的数据(UPDATE,INSERT,DELETE......等等)时,这种改变就被记录到“On-Line”RedoLog中。因为On-LineRedoLog可以重用,如果被重用,则记录在这个RedoLog中的所有修改信息将被覆盖。因此,DBA可将归档方式激活,这样Oracle可以自动将备份到叫做归档文件的文件上,并且所有的修改信息可以在归档文件中被保存。激活归档方式的步骤:º编辑你的INITsid.ORA文件以激活归档方式在INITsid.ORA文件中增加如下内容:LOG_ARCHIVE_START=TRUELOG_ARCHIVE_DEST=/Oracle7/archive/arch注意:目录(/Oracle7/archive)是你自己创建的,或者直接写到磁带上:“arch是归档文件的前缀。将数据库设置到ARCHIVELOG模式$sqldbalmode=y(或svrmgrl,7.3版以上)SQLDBACONNECTINTERNALSQLDBASTARTUPMOUNTSQLBDAALTERDATABASEARCHIVELOG(激活归档方式)SQLDBAALTERDATABASEOPENSQLDBAARCHIVELOGLIST(看归档状态;如下所示)DATABASElogmodeARCHIVEOGAutomaticarchivalENABLEDArchiivedestination/oracle7/archive/archOldestOnlinelogseq.1554currentlogsequence156SQLDBAEXIT注意:如果运行在归档模式,Oracle将启动一个叫做ARCH的后台进程,可通过相应的操作系统命令看到这个进程。热备份优点:.可以在数据库运行状态下进行.可以恢复到秒级.对于几乎所有的Instance恢复都可通过热备份进行恢复.恢复快,大多数情况下可在数据库启动状态下进行.对于Oracle7版,更易于维护缺点:.恢复过程要绝对正确,否则问题会更糟.如果备份不起作用,则无法恢复到失败点.恢复步骤要小心,难于维护.如果一个归档文件被破坏了,则必须重头再来最适用于.用于数据库“不能中断”有环境下.24小时运行环境.在必须快速恢复并且不影响整个系统的情况下.DBA有足够的时间来维护必要的文件一些Oracle7.1的变化.备份的“热”指没有“开始”和“结束备份”的.“Altertablespace×××readonly”命令(仅一个备份需要在只读情况下).并行恢复-较快的恢复备份例子确认要备份的数据文件:SELECTNAME,STATUSFROMSYS.V$DATAFILE;.NAME将返回数据文件的名字,如:‘/oracle7/dbs/systora7.dbf’.STATUS返回的值可为SYSTEM,ONLINE或OFFLINE确认要备份的数据库的On-LineRedoLog:SELECTGROUP#,MEMBERFROMSYS.V$LOGFILE;.GROUP#将返回组号;如1,2或3.MEMBER将返回物理文件的名字,如:'/Oracle7/dbs/log1ora7.dbf'确认要备份的数据库的控制文件:SQLDBASHOWPARAMETERcontral_files;.该命令将返回Name:control_files5Type:stringValue:'Oracle7/dbs/ctrlora7.ctl'确认表空间和数据库文件的对应关系,以及数据库文件的大小:SELECTTABLEAPACE_NAME,FILE_NAME,BYTES,STATUSFROMDBA_DATA_FILES;.该命令将返回表空间名:如SYSTEM,USERS等.文件名:如‘/Oracle7/dbs/systora7.dbf’.大小:如20,000,000,000.状态:AVAILABLE或INVALID确认那一个数据文件现在正在备份(热备份)SELECTFILE#,STATUSFROMV$BACKUP;.File#将显示那一个数据文件正在备份:如“1”或“2”.STATUS将显示:ACTIVE(正在备份)或INACTIVE备份控制文件到Trace文件中(可用之方便地重建控制文件)ALTERDATABASEBACKUPCONTROLFILETOTRACENORESETLOGS;全数据库export的部分参数文件system/managerFULL=YCOMPRESS=YGRANTS=YROWS=Y对某个表空间做完整的热备份步骤:$sqldbalmode=y(或svrmgrl)SQLDBACONNECTINTERNALSQLDBAALTERTABLESPACEtblspc_to_backupBEGINBACKUP;SQLDDBAHOSTcp/oracle7/dbs/tblsp1.dbf/backup/tblsp1.dbfSQLDBAALTERTABLESPACEtblspc_to_backupENDBACKUP;恢复策略---举例说明情况.星期一晚11:00点:整个数据库的映象备份.星期二(整天):保存所有的日志归档文件.星期二晚10:00(在下一个备份完成以前)所有数据库文件被破坏,系统不能运行。恢复过程.恢复星期一傍晚11:00点的映象备份(不要恢复控制文件或日志文件).恢复所有的归档文件到新的数据库6.恢复On-LineRedoLog(还没有归档)到新的数据库.数据库恢复到失败前的状态预防措施.控制文件有多个复制.日志文件有多个复制.总是使用ARCHIVELOG方式.使用export做为备份模式的一部分一般原则.如果有On-LineRedoLog和Off-LineRedoLog,则使用COMPLETERECOVERY.如果缺少On-LineRedoLog或Off-LineRedoLog,则使用INCOMPLETERECOVERY.如果当前的控制文件丢失,就使用备份的控制文件或重建介质失败的恢复这是一个极其复杂的处理过程。所有主要可能的方案归档为下面的两种(归档模式的恢复;没有归档模式的恢复),请根据你的系统失败的原因采用相应的方式,无论何种情况,解决硬件问题是相当重要的,它是解决问题的前题。如果没有把握解决问题,则暂时先不要动,因为恢复过程不正确将会出现严重后果。如果读了DBA手册以后,还是不能确定如何做的话;请打电话给你的技术支持,以获得帮助!注意:.归档用于映象备份,不是Export!.失败现场的备份在RESETLOGS被执行前,任何时间都可以做,但建议在做恢复之前备份失败现场.恢复成功以后,要马上做一次备份!下面这几种情况下的恢复(归档方式)Oracle手册还没有包括下面15种错误的恢复,除非你自己一节一节的把纠错方案放在一起,所以很容易造成恢复的错误,要恢复这15种错误是很麻烦的(要确定一个正确的恢复方法时,请参考Oracle7管理指南。)1.丢失所有文件(包括数据文件、redolog、归档文件和控制文件)2a.只丢失数据文件-数据库正在运行2b.只丢失数据文件-数据库已经关闭3a.只丢失redolog文件的恢复(日志文件未被访问)3b.只丢失redolog文件的恢复(日志文件已被访问)4.只丢失归档文件5a.只丢失控制文件(还有其他几个控制文件)5b.只丢失控制文件(所有的控制文件都被损坏)6.丢失数据文件,redolog和归档文件-无归档模式77a.丢失数据文件,归档文件和控制文件---有归档模式7b.丢失数据文件,归档文件和控制文件-有归档模式8.丢失数据文件,redolog和控制文件9.丢失数据文件和redolog10a.丢失数据文件和归档文件-无归档模式10b.丢失数据文件和归档文件-有归档模式11.丢失数据文件的控制文件12.丢失redolog,归档文件和控制文件13.丢失redolog和归档文件的恢复14
本文标题:数据库备份和恢复方案(毕业论文)
链接地址:https://www.777doc.com/doc-2428328 .html