1、Oracle 数据库基础教程2007第10章 数据库备份与恢复1第1页,共58页。Oracle 数据库基础教程2007本章内容本章内容p备份与恢复概述p物理备份与恢复p逻辑备份与恢复2第2页,共58页。Oracle 数据库基础教程2007本章要求本章要求p了解备份与恢复的重要性和概念p掌握数据库的冷备份p掌握数据库的热备份p掌握逻辑备份和恢复(export/Import)3第3页,共58页。Oracle 数据库基础教程200712.1 备份与恢复概述备份与恢复概述p备份与恢复的基本概念p备份的原则与策略p恢复的原则与策略4第4页,共58页。Oracle 数据库基础教程2007p数据库备份与恢复
2、的目的n数据库系统在运行中可能发生故障,轻则导致事务异数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。库,使数据库中的数据部分或全部丢失。n数据库备份与恢复的目的就是为了保证在各种故障发数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。辑一致的状态。p数据库的不一致状态n如果数据库系统在运行中发生故障,有些提交的事务如果数据库系统在运行中发生故障,有些提交的事务对数据库
3、所做的修改有一部分写入物理数据库,这时对数据库所做的修改有一部分写入物理数据库,这时数据库就处于一种不正常的状态,或者说是不一致的数据库就处于一种不正常的状态,或者说是不一致的状态。状态。5第5页,共58页。Oracle 数据库基础教程2007p建议将日志文件归档到磁盘上,以后再拷贝到磁带上。注意,归档日志文件不应该与数据文件或联机重做日志文件存放在同一个磁盘上。p应该使用单独的磁盘保存数据文件的备份拷贝。p应该保持控制文件的多个拷贝,且控制文件的拷贝应该存放在不同磁盘控制器下的不同磁盘设备上。p联机日志文件应该为多个,每个组至少应该保持两个成员。(这可以在创建数据库的时候,设定最大的日志文件
4、个数不小于2;也可以在数据库创建完成以后增加新的日志文件。)同一日志组的多个成员不应该存放在同一个磁盘上。p保持归档重做日志文件的多个拷贝。建议在磁盘和磁带上都保留备份拷贝。(可以修改初始化参数文件,设置自动双向归档日志文件。)p在磁盘上保存最近最小的备份和最新的归档重做日志文件,可以简化和加速某些恢复过程。p当增加、重命名、删除日志文件或数据文件的时候,会改变数据库结构,此时应该对控制文件进行备份。p若企业有多个Oracle数据库,则应该使用具有恢复目录的Oracle恢复管理器。6第6页,共58页。Oracle 数据库基础教程2007备份基本概念备份基本概念p备份分为物理备份和逻辑备份n物理
5、备份,是指通过将重要的物理文件备份起来,物理备份,是指通过将重要的物理文件备份起来,以避免物理故障造成的损失。以避免物理故障造成的损失。n逻辑备份,利用逻辑备份,利用export命令抽取数据并存于二进命令抽取数据并存于二进制文件的过程。制文件的过程。p在实际应用中,应该以物理备份为主,逻辑备份作为补充。7第7页,共58页。Oracle 数据库基础教程2007物理备份分类物理备份分类p物理备份分为冷备份与热备份。n冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、数据文件、控制文件、重做日志文件和归档日志文件复
6、制到其他地方保存起数据文件、控制文件、重做日志文件和归档日志文件复制到其他地方保存起来。来。n热备份又称为联机备份或者归档备份。是在数据库保持开放状态下热备份又称为联机备份或者归档备份。是在数据库保持开放状态下对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据库系统的正常运行,但是热备份的操作要比冷备份复杂。库系统的正常运行,但是热备份的操作要比冷备份复杂。p完全物理备份与部分物理备份n脱机数据文件备份脱机数据文件备份n脱机表空间备份脱机表空间备份n控制文件备份控制文件备份8第8页,共58页。Oracle 数据库基础教程2007
7、恢复类型恢复类型p完全恢复n从一个物理备份中恢复一个已丢失的数据文件的拷从一个物理备份中恢复一个已丢失的数据文件的拷贝,然后根据从此刻起的所有归档日志文件与重做贝,然后根据从此刻起的所有归档日志文件与重做日志文件进行恢复,这样能够得到从备份以来发生日志文件进行恢复,这样能够得到从备份以来发生的所有变化,这种恢复称为完全恢复。的所有变化,这种恢复称为完全恢复。p不完全恢复n如果归档日志文件有丢失的情况发生,那么数据库如果归档日志文件有丢失的情况发生,那么数据库只能恢复到这个归档日志文件以前的状态,没有得只能恢复到这个归档日志文件以前的状态,没有得到从备份以来的所有变化,这种恢复称为不完全恢到从备
8、份以来的所有变化,这种恢复称为不完全恢复。复。9第9页,共58页。Oracle 数据库基础教程200712.2 物理备份与恢复物理备份与恢复p冷备份与恢复p热备份与恢复p不完全恢复10第10页,共58页。Oracle 数据库基础教程2007物理备份方法物理备份方法11第11页,共58页。Oracle 数据库基础教程2007数据库备份的策略数据库备份的策略p非归档模式下的备份策略n根据允许丢失的数据量进行定期完全备份根据允许丢失的数据量进行定期完全备份n当数据库物理结构变化时应进行备份当数据库物理结构变化时应进行备份p归档模式下的备份策略n在刚建数据库时应做整个数据库的完全备份(初始备份)在刚建
9、数据库时应做整个数据库的完全备份(初始备份)n根据数据库运行情况,选择脱机或连接备份。根据数据库运行情况,选择脱机或连接备份。n数据库物理结构变化时应备份控制文件数据库物理结构变化时应备份控制文件n通常不需要备份联机日志文件通常不需要备份联机日志文件12第12页,共58页。Oracle 数据库基础教程200712.2.1 冷备份与恢复冷备份与恢复p冷备份冷备份n关闭数据库实例,用操作系统的实用工具备份数据文件。n如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。13第13页,共58页。Oracle 数据库基础教程2007关闭数据库,关闭数据库,开始备份开始备份故障时刻故障时刻 备份备
10、份恢复恢复 重装备份副本重装备份副本恢复丢失数据恢复丢失数据备份完成备份完成冷备份冷备份n如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。14第14页,共58页。Oracle 数据库基础教程2007 冷备份步骤冷备份步骤p步骤步骤n确定数据库各种物理文件 数据文件(数据文件(V$DATAFILE)控制文件控制文件(SHOW PARAMETER CONTROL_FILES)日志文件日志文件(V$LOG V$LOGFILE)归档日志文件归档日志文件 初始化参数文件初始化参数文件n关闭数据库n备份所有相关的数据库文件:数据文件 控制文件 日志文
11、件 归档日志文件 初始化参数文件n重新启动数据库15第15页,共58页。Oracle 数据库基础教程2007冷备份的恢复冷备份的恢复p非归档模式下恢复n关闭数据库关闭数据库n用备份文件覆盖原有文件用备份文件覆盖原有文件n重新启动数据库重新启动数据库p归档模式下的恢复n关闭数据库关闭数据库n用备份文件覆盖原有文件用备份文件覆盖原有文件n重新启动数据库到重新启动数据库到MOUNT状态状态n执行执行RECOVER DATABASE命令命令n打开数据库打开数据库ALER DATABAE OPEN16第16页,共58页。Oracle 数据库基础教程2007p热备份是备份数据库的最佳方法。热备份是备份数据
12、库的最佳方法。p系统工作在归档模式下。系统工作在归档模式下。p转到归档模式后,应立即进行热备份。转到归档模式后,应立即进行热备份。12.2.2 热备份与恢复热备份与恢复17第17页,共58页。Oracle 数据库基础教程2007热备份热备份p热备份热备份n当数据库正在运行时进行的数据库备份过程。当数据库处在可归档日志模式下,可使用热备份。n有些关键数据库应用系统可能需要数据库每天24小时,每周7天的运行,就应该使用热备份。p热备份的优点:热备份的优点:n 备份时,数据库可以是打开的。n 可用来全面恢复数据库(可用来在任何一点上恢复)。18第18页,共58页。Oracle 数据库基础教程2007
13、设置归档模式设置归档模式nSHUTDOWNnSTARTUP MOUNT nALTER DATABASE ARCHIVELOGnALTER DATABASE OPEN nALTER SYSTEM ARCHIVE LOG STARTnALTER SYSTEM SET log_archive_dest=e:archivesn ALTER SYSTEM SET log_archive_format=“oracle1%S.ARC19第19页,共58页。Oracle 数据库基础教程2007热备份:备份数据文件热备份:备份数据文件n查询视图v$datafile 和视图v$tablespace决定需要备份的数
14、据文件n将某个表空间设为备份模式 ALTER TABLESPACE name BEGIN BACKUP;n使用操作系统命令将该表空间所有数据文件备份 n结束该表空间的备份模式ALTER TABLESPACE name BEGIN BACKUP;n对数据库的每个表空间,执行步骤3、4、5操作。20第20页,共58页。Oracle 数据库基础教程2007pALTER DATABASE BACKUP CONTROLFILE TO d:backcontrol.bkp reuse;pALTER DATABASE BACKUP CONTROLFILE TO TRACE p当执行了下列操作时应该进行控制文件
15、备份当执行了下列操作时应该进行控制文件备份nALTER DATABASE ADD LOGFILEnALERT DATABASE ADD LOGFILE MEMBERnALTER DATABASE RENAME FILE nALTER DATABASE DROP LOGFILE GROUP nALTER DATABASE DROP LOGFILE MEMBERnCREATE TABLESPACEnALTER TABLESPACE ADD DATAFILEnALTER TABLESPACE RENAME DATAFILEnDROP TABLESPACE热备份:备份控制文件热备份:备份控制文件21第
16、21页,共58页。Oracle 数据库基础教程2007p归档当前的联机日志文件 p备份归档日志文件 p备份初始化参数文件 热备份:备份的其他文件热备份:备份的其他文件22第22页,共58页。Oracle 数据库基础教程2007热备份下的数据库恢复热备份下的数据库恢复p基本语法p完全恢复n数据文件级恢复数据文件级恢复n表空间级恢复表空间级恢复n数据库级恢复数据库级恢复p不完全恢复n基于基于CANCEL的恢复的恢复n基于基于SCN的恢复的恢复n基于时间的恢复基于时间的恢复23第23页,共58页。Oracle 数据库基础教程2007p基本语法RECOVER AUTOMATIC FROM locati
17、onDATABASE|TABLESPACE tabname|DATAFILE dfnameUNTIL CANCEL|TIME time|CHANGE scn USING BACKUP CONTROLFILE 24第24页,共58页。Oracle 数据库基础教程2007文数据件级别的恢复(文数据件级别的恢复(1)p启动数据库nSTARTUP MOUNT p将受损的数据文件脱机nALTER DATAFILE datafile OFFLINEp用备份的数据文件覆盖受损的数据文件p恢复数据文件nRECOVER DATAFILE datafile;p将数据文件联机nALTER DATAFILE data
18、file ONLINE;p将数据库修改为打开状态nALTER DATABASE OPEN;25第25页,共58页。Oracle 数据库基础教程2007数据文件级别的恢复(数据文件级别的恢复(2)p运行阶段数据文件损坏n将受损的数据文件脱机将受损的数据文件脱机pALTER DATAFILE datafile OFFLINEn用备份的数据文件覆盖受损的数据文件用备份的数据文件覆盖受损的数据文件n将数据文件联机将数据文件联机pALTER DATAFILE datafile ONLINE;p此时系统会自动进行数据文件的恢复26第26页,共58页。Oracle 数据库基础教程2007表空间级别的恢复(表
19、空间级别的恢复(1)p启动数据库nSTARTUP MOUNT p用备份的表空间对应的所有数据文件复制到原来的目录,覆盖受损的数据文件。p恢复表空间nRECOVER TABLESPACE tablespacename;p将数据库修改为打开状态nALTER DATABASE OPEN;27第27页,共58页。Oracle 数据库基础教程2007表空间级别的恢复(表空间级别的恢复(2)p运行阶段同一个表空间一个或多个数据文件损坏p表空间脱机nALTER TABLESPACE tabname OFFLINE FOR RECOVER;n将备份的表空间对应的数据文件复制到原来的目录,将备份的表空间对应的数
20、据文件复制到原来的目录,覆盖受损的数据文件。覆盖受损的数据文件。p恢复表空间nRECOVER TABLESPACE tablespacename;p表空间联机nALTER TABLESPACE tabname ONLINE;28第28页,共58页。Oracle 数据库基础教程2007数据库完全恢复步骤数据库完全恢复步骤p确保数据库已经关闭(使用确保数据库已经关闭(使用ABORT操作操作)SHUTDOWN ABORT;p用最后的数据库备份恢复数据文件。用最后的数据库备份恢复数据文件。p如果当前控制文件丢失,使用镜像版本复制到如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中,或者重新创建控制
21、文件。已修好的磁盘中,或者重新创建控制文件。p还原所有已归档的日志。还原所有已归档的日志。p如果服务器参数文件损坏,则利用备份的初始如果服务器参数文件损坏,则利用备份的初始化参数文件创建服务器参数文件。化参数文件创建服务器参数文件。nCREATE SPFILE FROM PFILE;29第29页,共58页。Oracle 数据库基础教程2007p将数据库启动到将数据库启动到MOUNT状态,状态,nSTARTUP MOUNT;p使用使用RECOVER命令进行恢复。命令如下:命令进行恢复。命令如下:nRECOVER DATABASE;p恢复完成后,重新打开数据库恢复完成后,重新打开数据库 ALTER
22、 DATABASE OPEN;30第30页,共58页。Oracle 数据库基础教程200712.2.3 不完全恢复不完全恢复p基于CANCEL的恢复p基于时间的恢复p基于SCN的恢复31第31页,共58页。Oracle 数据库基础教程2007基于基于CANCEL的恢复的恢复p关闭数据库 SHUTDOWN IMMEDIATE;p把原来备份的文件拷贝到对应路径p加载数据库 STARTUP MOUNT;p对数据库进行恢复 RECOVER DATABASE UNTIL CANCEL;p打开数据库 ALTER DATABASE OPEN RESETLOG;或或 ALTER DATABASE OPEN N
23、ORESETLOG;32第32页,共58页。Oracle 数据库基础教程2007基于时间的恢复基于时间的恢复n关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;n把原来备份的文件拷贝到对应路径把原来备份的文件拷贝到对应路径n加载数据库加载数据库 STARTUP MOUNT;n对数据库进行恢复对数据库进行恢复 RECOVER DATABASE UNTIL TIME 12月月-10-2003,19:23:39n打开数据库打开数据库 ALTER DATABASE OPEN RESETLOG;或或 ALTER DATABASE OPEN NORESETLOG;33第33页,共58页。Orac
24、le 数据库基础教程2007基于基于SCN的恢复的恢复n关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;n把原来备份的文件拷贝到对应路径把原来备份的文件拷贝到对应路径n加载数据库加载数据库 STARTUP MOUNT;n对数据库进行恢复对数据库进行恢复 RECOVER DATABASE UNTIL CHANGE 87654;n打开数据库打开数据库 ALTER DATABASE OPEN RESETLOG;或或 ALTER DATABASE OPEN NORESETLOG;34第34页,共58页。Oracle 数据库基础教程200712.3 逻辑备份与恢复逻辑备份与恢复p优点:优点:
25、n 能容易快速地进行一个或更多单个表或行恢复。能容易快速地进行一个或更多单个表或行恢复。n 升级数据库时,更加方便。升级数据库时,更加方便。n 跨平台移动数据库时,更加方面。跨平台移动数据库时,更加方面。n 数据库可一直运行。数据库可一直运行。p目的:目的:n挽救由用户或应用错误造成的损失挽救由用户或应用错误造成的损失(用户或应用偶尔删除一行和数据库表造成的数据丢失)(用户或应用偶尔删除一行和数据库表造成的数据丢失)35第35页,共58页。Oracle 数据库基础教程2007注意事项:注意事项:1、逻辑备份不能代替冷备份或热备份。冷备份或热备份、逻辑备份不能代替冷备份或热备份。冷备份或热备份
26、是对物理数据库文件的冷备份或热备份。逻辑备份是是对物理数据库文件的冷备份或热备份。逻辑备份是 对特定的逻辑对象的备份。对特定的逻辑对象的备份。2、冷备份或热备份用于数据库发生介质故障时的恢复。、冷备份或热备份用于数据库发生介质故障时的恢复。逻辑备份用于用户或应用偶而删除一行和数据库表造逻辑备份用于用户或应用偶而删除一行和数据库表造 成的数据丢失的恢复。成的数据丢失的恢复。3、不可能在导入中应用归档日志文件从而使它恢复到导、不可能在导入中应用归档日志文件从而使它恢复到导出执行后的某一时间点。出执行后的某一时间点。36第36页,共58页。Oracle 数据库基础教程2007使用方法使用方法p命令行
27、命令行EXP/IMP,指定需要的参数指定需要的参数pEnterprise Manager37第37页,共58页。Oracle 数据库基础教程200712.3.1 使用使用EXP/IMP命令导出和导入数据命令导出和导入数据pEXP/IMP命令p交互式数据导出和导入p命令行模式的数据导出与导入p参数模式的数据导出与导入38第38页,共58页。Oracle 数据库基础教程2007导出模式导出模式p表n导出表定义、数据、授权、索引、约束导出表定义、数据、授权、索引、约束p用户n导出指定用户模式下的所有表定义、数据、授权、索导出指定用户模式下的所有表定义、数据、授权、索引、约束引、约束p全数据库n导出数
28、据库中所有表定义、数据、授权、索引、约束导出数据库中所有表定义、数据、授权、索引、约束39第39页,共58页。Oracle 数据库基础教程2007EXPORT命令命令p语法:nexp keyword=(value1,value2,valuen)p举例:nexp scott/tiger TABLES=(emp,dept)rows=y file=exptable.dmpnexp system/manager OWNER=scott file=d:exptable.dmpnexp system/manager FULL=y inctype=cumulative file=d:exptable.dmp
29、40第40页,共58页。Oracle 数据库基础教程2007IMPORT命令命令p语法:nimp keyword=(value1,value2,valuen)p举例:nimp scott/tiger TABLES=(emp,dept)rows=y file=exptable.dmpnimp system/manager FROMUSER=scott file=d:exptable.dmpnimp system/manager file=d:exptable.dmp41第41页,共58页。Oracle 数据库基础教程2007导入过程导入过程p创建新的表和索引创建新的表和索引p数据导入,索引更新数
30、据导入,索引更新p触发器导入,在新表上建立完整性约束触发器导入,在新表上建立完整性约束42第42页,共58页。Oracle 数据库基础教程200713.2 使用使用OMS导出导出/导入导入p准备工作n首先需要在首先需要在OMS设置首选身份证明设置首选身份证明n并设置节点的本地安全策略并设置节点的本地安全策略43第43页,共58页。Oracle 数据库基础教程200744第44页,共58页。Oracle 数据库基础教程2007导出导出45第45页,共58页。Oracle 数据库基础教程200746第46页,共58页。Oracle 数据库基础教程200747第47页,共58页。Oracle 数据库
31、基础教程200748第48页,共58页。Oracle 数据库基础教程200749第49页,共58页。Oracle 数据库基础教程200750第50页,共58页。Oracle 数据库基础教程200751第51页,共58页。Oracle 数据库基础教程200752第52页,共58页。Oracle 数据库基础教程200753第53页,共58页。Oracle 数据库基础教程2007导入导入54第54页,共58页。Oracle 数据库基础教程200755第55页,共58页。Oracle 数据库基础教程200756第56页,共58页。Oracle 数据库基础教程2007 可以在作业活动窗口中看到作业提交及运行情况57第57页,共58页。Oracle 数据库基础教程2007小结小结p数据库的备份与恢复机制p冷备份和热备份与恢复pExport/import的方法58第58页,共58页。