




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,备份与恢复,数据库备份与恢复的目的:数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。数据库的不一致状态:如果数据库系统在运行中发生故障,有些事务尚未完成就被迫中断。这些未完成事务对数据库所做的修改有一部分写入物理数据库,这时数据库就处于一种不正常的状态,或者说是不一致的状态。,2,9.1.1故障及故障处理,1、事务故障由于某种原因(数据输入错误、违背安全性条件、违反了完整性限制、并发事务竞争资源导致死锁等)使事务未运行到正常终止点而夭折,这种情况就称为事务故障。此时数据库系统仍然在运行。恢复办法:恢复程序要在不影响其它事务运行的情况下,强行回滚该事务,即清除该事务对数据库的所有修改,使得系统回到该事务启动前的状态。由数据库系统的恢复程序自动处理事务故障。,3,2、系统故障系统故障将导致所有正在运行的事务以非正常方式终止。此时内存中数据库缓冲区的数据全部丢失,但物理数据库上的数据未受影响。引起系统故障的原因:OS或DBMS系统有问题、硬件错误、突然停电等。恢复办法:重起系统后,恢复程序一方面强行撤消所有未完成的事务。另一方面重做所有已提交的事务(可能发生故障时有数据没来得及存入物理数据库),以保证数据库的逻辑一致性。由数据库系统的恢复程序自动处理系统故障。,9.1.1故障及故障处理,4,9.1.1故障及故障处理,3、介质故障硬件故障导致物理数据库受损。介质故障发生的可能性小,但破坏性最大。恢复办法:恢复工作是系统按照DBA的命令完成的把发生故障前备份的数据库数据装入到系统中,同时把从备份终止时刻已成功提交的事务重做(根据联机日志文件和归档日志文件记载的内容)。,正常运行,故障时刻,备份,恢复,重装备份副本,重新运行已提交的事务,5,9.1.2重做日志重做日志记载了对数据库所做的任何修改。重做日志的目的是用来恢复事务故障、系统故障、并协助后备副本进行介质故障的恢复。以记录为单位的日志文件内容:,事务开始标记事务的更新操作类型(插入、删除、修改)操作的对象更新前数据的旧值更新后数据的新值事务结束标记,事务记录,出现事务结束标志表示事务已提交,6,数据库系统只有工作在归档模式下,联机日志文件在重新被写入前,才能自动归档。系统必须依靠当前的日志文件和已经归档的日志文件才能有效地恢复故障。,9.1.2重做日志,7,联机日志,归档日志,8,日志写入进程,Log1a.log,Log2a.log,Log3a.log,Log1b.log,Log2b.log,Log3b.log,镜像拷贝联机重做日志文件,9,Log1a.log,Log2a.log,Log3a.log,归档,oracle200001.arc,.,.,10,查看系统是否工作在归档模式(1)SQLselectname,log_modefromv$database;NAMELOG_MODE-ORACLE2NOARCHIVELOG(2)在服务器管理器下,执行下列命令:svrmgrarchiveloglist,11,利用实例管理器设置归档模式,12,在初始化参数文件中设置有关归档语句log_archive_start=TRUElog_archive_dest=e:archiveslog_archive_format=“oracle2%S.ARC”,这将使数据库实例启动时处于归档方式,并且规定归档日志文件的存放位置以及归档日志文件的命名格式。,13,查找外部文件的位置1、查询与数据库相联系的所有数据文件,SQLselectnamefromv$datafile;NAME-C:ORACLEORADATAORACLE2SYSTEM01.DBFC:ORACLEORADATAORACLE2RBS01.DBFC:ORACLEORADATAORACLE2USERS01.DBFC:ORACLEORADATAORACLE2TEMP01.DBFC:ORACLEORADATAORACLE2TOOLS01.DBFC:ORACLEORADATAORACLE2INDX01.DBFC:ORACLEORADATAORACLE2DR01.DBF,14,查找外部文件的位置2、查询与数据库相联系的所有日志文件,SQLselectgroup#,memberfromv$logfile;GROUP#MEMBER-1C:ORACLEORADATAORACLE2REDO03.LOG2C:ORACLEORADATAORACLE2REDO02.LOG3C:ORACLEORADATAORACLE2REDO01.LOG,15,查找外部文件的位置3、获得控制文件的位置,SQLselectnamefromv$controlfile;NAME-C:ORACLEORADATAORACLE2CONTROL01.CTLC:ORACLEORADATAORACLE2CONTROL02.CTLC:ORACLEORADATAORACLE2CONTROL03.CTL,16,查找外部文件的位置4、获得归档的Redo日志信息,若系统工作在归档模式下,在初始化参数文件或实例管理器中可了解归档文件的有关信息,例如:log_archive_start=TRUElog_archive_dest=e:archiveslog_archive_format=“oracle2%S.ARC”,17,查找外部文件的位置5、获得表空间信息,SQLselecttablespace_namefromdba_tablespacesTABLESPACE_NAME-SYSTEMRBSUSERSTEMPTOOLSINDXDRSYS,18,9.1.3数据库备份模式1、归档模式允许将联机重做日志文件归档,历史修改记录被有效保存,当系统发生介质故障时,能够全面恢复系统。备份数据库的最佳方法:镜像拷贝联机日志文件、镜像拷贝控制文件。系统工作在归档模式下。在归档模式进行热备份(将每个表空间设置为备份模式,在数据库运行情况下,将表的一致性视图备份出来)。转到归档模式后,应立即进行备份。,19,9.1.3数据库备份模式1、归档模式,镜像拷贝联机日志文件,(1)了解日志文件组的情况Selectgroup#memberfromv$logfile;Group#memberc:orantdatabaselog1adest.logc:orantdatabaselog2adest.log2d:orantdatabaselog2bdest.log,20,镜像拷贝联机日志文件,(2)添加新的日志文件,ALTERDATABASEoracle1ADDLOGFILEMEMBERd:redo_logslog1b.logTOGROUP1;,(3)添加新的日志文件组ALTERDATABASEoracle1ADDLOGFILEGROUP3(c:redo_logslog3a.logd:redo_logslog3b.log)SIZE100K;,21,镜像拷贝控制文件,控制文件包含了大量数据库状态信息,如数据库的物理结构和重做日志文件在当时的状态。,了解控制文件的数量,Select*fromv$controlfile;,C:oracledatabaseoracle1control01.ctlC:oracledatabaseoracle1control02.ctlC:oracledatabaseoracle1control03.ctl,22,镜像拷贝控制文件,控制文件应存放在不同的介质上:(1)关闭数据库(2)把控制文件拷贝到不同的位置上;(3)编辑初始化参数文件以便定义新的控制文件;control_files=(C:oracledatabaseoracle1control01.ctl,d:oracledatabaseoracle1control02.ctl,e:oracledatabaseoracle1control03.ctl),23,保证激活归档进程(1)、系统工作在归档模式下利用数据库系统的实例管理器设置归档方式。(2)、或者在初始化参数文件中设置有关语句log_archive_start=TRUElog_archive_dest=e:archiveslog_archive_format=“oracle1%S.ARC,24,做热备份:备份数据文件,热备份:当数据库正在运行时进行的数据库备份过程。当数据库处在可归档日志模式下,可使用热备份。有些关键数据库应用系统可能需要数据库每天24小时,每周7天的运行,就应该使用热备份。热备份的优点:*备份时,数据库可以是打开的。*可用来全面恢复数据库(可用来在任何一点上恢复)。,25,做热备份:备份数据文件,热备份的缺点:*执行过程复杂*不能使用操作系统实用工具拷贝打开的文件。必须使用OCOPY.exe工具(Oracle提供的工具,允许从打开的文件拷贝到磁盘)*由于数据库在使用,所以测试比较复杂。热备份可能造成CPU、I/O系统过载而影响系统的性能。因此,应把热备份安排在数据库不太忙的时候。,26,热备份的步骤:1、拷贝init.ora文件到备份目录。2、把表空间设为备份模式3、使用OCOPY拷贝表空间,然后结束表空间的备份模式。4、对数据库的每个表空间,执行步骤2和步骤3。5、在服务器管理器上执行archiveloglist命令,获得当前的日志顺序号。这表明最后的在线归档日志文件应是热备份的一部分。6、强迫日志切换以便所有的日志都被归档:svrmgraltersystemswitchlogfile;7、获得一个控制文件的备份。8、使用WindowsNT的命令行拷贝工具,把归档的日志文件备份出来。,做热备份:备份数据文件,27,热备份逻辑示意图,备份表空间,备份归档日志,备份完成时刻,在线归档,故障时刻,28,做热备份:备份数据文件,归档日志文件和初始化文件(init.ora)在热备份时被关闭了,可以使用WindowsNT的实用工具拷贝它们。,29,查找必须备份的归档日志:(1)以system/manager身份连接到服务器管理器上。(2)查找最老的在线日志顺序号:svrmgrarchiveloglistdatabaselogmodeARCHIVELOGautomaticarchivalENABLEDatchivedestinatione:archivesoldestonlinelogsequence48nextlogsequencetoarchive50currentlogsequence50,做热备份:查找必须备份的归档日志,所有从最老的在线日志顺序号开始的归档日志都应是在线备份的一部分。,30,把表空间设为备份模式,用OCOPY拷贝表空间,然后结束表空间的备份模式。以备份USERS表空间为例:SqlaltertablespaceUSERbeginbackup;Sql$ocopyc:ORACLEORADATAORACLE2USERS01.DBFd:backupUSERS01.DBF;SqlaltertablespaceUSERendbackup;Sqlaltersystemcheckpoint;每次备份完一个表空间数据,都要修改检查点,做热备份:备份数据文件,31,Sqlalterdatabasebackupcontrolfiletod:backcontrol.bkpreuse;,做热备份:备份控制文件,32,热备份工具(1)把热备份的内容生成脚本文件,在SQL*PLUS下运行。(2)利用Oracle的备份管理器。,33,9.1.3数据库备份模式,2、非归档模式历史修改记录不能作为归档日志文件永久保存,只能保存近期的交易记录。当数据库损坏时,将丢失数据。此种方式只能依靠当前联机日志文件对现场失败进行恢复。只能进行冷备份:关闭数据库,备份所有文件。,34,关于冷备份,冷备份:关闭数据库实例,用操作系统的实用工具备份数据文件。,关闭数据库,开始备份,故障时刻,备份,恢复,重装备份副本,数据丢失,无法恢复,备份完成,如果没有启用归档模式,数据库只能恢复到备份完成时的状态。,35,关于冷备份,如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。,关闭数据库,开始备份,故障时刻,备份,恢复,重装备份副本,恢复丢失数据,备份完成,36,关于冷备份,在归档模式下的恢复办法:(1)把恢复时刻的当前日志文件、归档日志文件、控制文件保存安全地方,以免它们被旧的日志文件、归档日志文件、控制文件覆盖。(2)从备份中恢复文件,并用当前的日志文件、归档日志文件、控制文件代替来自备份的旧日志。(3)Oracle检查当前的控制文件和日志文件,发现与所恢复文件中的信息不匹配。Oracle将提示需要数据库恢复。(4)通知Oracle利用归档日志恢复数据库。,37,关于冷备份,步骤:1、关闭数据库2、备份所有相关的数据库文件:数据文件控制文件Redo日志归档的Redo日志初始化文件,38,逻辑备份:采用Export/Import,优点:能容易快速地进行一个或更多单个表或行恢复。升级数据库时,更加方便。跨平台移动数据库时,更加方面。数据库可一直运行。,目的:保护用户或应用错误(用户或应用偶而删除一行和数据库表造成的数据丢失),39,逻辑备份:采用Export/Import,注意事项:1、逻辑备份不能代替冷备份或热备份。冷备份或热备份是对物理数据库文件的冷备份或热备份。逻辑备份是对特定的逻辑对象的备份。2、冷备份或热备份用于数据库发生介质故障时的恢复。逻辑备份用于用户或应用偶而删除一行和数据库表造成的数据丢失的恢复。3、不可能在导入中应用归档日志文件从而使它恢复到导出执行后的某一时间点。,40,数据库恢复步骤,1、确保数据库已经关闭(使用abort操作)2、用最后的数据库备份恢复丢失的数据文件。3、如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中。4、找到所有已归档的日志。5、以INTERNAL身份登录后,在服务器管理器下执行恢复命令:SvrmgrstartupmountSvrmgrSetautorecovertonSvrmgrRecoverdatabase;6、恢复完成后,重起系统:Svrmgralterdatabaseopen;,41,利用Oracle的恢复管理器进行备份与恢复,认识RecoveryManager(RMAN):1、RMAN的组成(1)RMAN可执行部分(2)目标数据库(3)恢复目录(4)通道,恢复目录,RMAN,目标数据库,目标控制文件,42,认识RecoveryManager(RMAN):2、RMAN可执行部件RMAN可执行部件是一个PROC*C应用程序,将RMAN命令翻译成顺序PL/SQL调用:*dbms_backup_restore在目标数据库上执行备份和恢复操作。*dbms_rcvman:查询恢复目录和数据库控制文件获得信息来执行备份和恢复操作。*dbms_rcvcat用来更新一个恢复编目。,43,认识RecoveryManager(RMAN):3、目标数据库:指在执行数据备份/恢复操作的数据库。4、恢复目录恢复目录是一个存储在Oracle数据库中的信息容器,包括如下的恢复信息:*目标数据库的模式*备份集和块*数据文件的拷贝*归档重做日志*可重用的脚本。最好不要把恢复目录存放在要执行恢复的数据库中。,44,认识RecoveryManager(RMAN):5、通道恢复管理器通道有两个含义:*实现到目标数据库的连接。*用于操作的I/O设备类型和名称的定义。当执行诸如备份、映像拷贝、或恢复当任务时,恢复管理器至少分配一个通道,多个通道可实现并行操作。Createjobbkup_full_01Allocationchannelt1typedisk;Allocationchannelt2typedisk;Backupfull;,45,认识RecoveryManager(RMAN):,6、RMAN支持两种类型的备份(1)备份集备份集是一组同一类型的备份文件。例如一个数据文件备份集、一个归档日志备份集等。当必须
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轻度认知障碍护理查房
- 防艾半年工作总结
- 2025至2030中国移民服务行业项目调研及市场前景预测评估报告
- 英语神经病学教学课件
- 消防安全月培训简报课件
- 2025至2030中国生物农业行业发展分析及投资风险预警与发展策略报告
- 高端别墅买卖合同及配套服务协议
- 离婚协议生效后房产过户及租金分配合同
- 监护人协议书编制与执行过程中的法律风险分析与防范
- 华住集团店长晋升述职报告
- 安检排爆培训课件
- 油漆经营安全培训
- 可爱的中国课件小学
- 个人所得税政策课件
- 中医的起源和历史
- 工程公司招采管理制度
- 大学生职业规划大赛《光电信息科学与工程专业》生涯发展展示
- 城西(蒋村)污水处理厂二期工程环评报告
- 特斯拉MODEL Y用户手册
- 轨道几何形位参数轨距课件
- 临床麻醉学笔记
评论
0/150
提交评论