Oracle9i第13章数据库恢复.ppt
《Oracle9i第13章数据库恢复.ppt》由会员分享,可在线阅读,更多相关《Oracle9i第13章数据库恢复.ppt(120页珍藏版)》请在三一办公上搜索。
1、第十一章 数据库恢复,恢复指的是从归档和联机日志文件中读取日志记录并将这些变化应用到数据文件中将其更新到最近状态的过程。从备份中还原一个文件时,文件代表了数据库被备份时而不是丢失时的状态,通常情况下,希望恢复过渡期即文件备份和文件丢失之间发生的所有变化。由于所有的变化都被写入日志文件中,所以能够通过读取日志文件将这种变化应用于所还原的文件中,从而实现数据库的恢复。,可以用复原(restore)和恢复(recover)两个过程理解oracle数据库的恢复。复原一个数据文件或控制文件的物理备份就是重建并使其能为数据库服务器使用的过程。恢复一个复原的数据文件的过程,就是通过对数据文件施加归档日志文件
2、和联机日志文件,使其更新的过程。在复原了必要的文件之后,必须要由用户启动介质恢复。,数据库恢复的两个阶段,所有类型的数据库恢复都包括两个阶段:前滚(rolling forward)和后滚(rolling back)。在前滚阶段,oracle应用必要的归档的联机日志文件去重新执行一遍所有已提交的不在数据库当前文件中的事务。如果数据库只是从实例崩溃中恢复,所有必不可少的日志文件都在联机日志组的当前集合中。如果数据库有更为严重的损失,还需要使用备份的数据文件和归档日志文件。,前滚恢复完成后,必须执行后滚恢复。Oracle利用数据库后滚段中的信息去“撤销”在系统崩溃时由任何打开(未提交)事务所作的数据
3、库改动。,实例和崩溃恢复的最大特点:oracle系统在重新启动数据库时自动应用了日志文件进行数据库的恢复,无需用户参与。可能系统崩溃后要花更长的时间来启动数据库,但崩溃恢复是完全透明的。,介质恢复(media recovery)主要用于介质损失时的恢复。特点:对受损的数据文件的复原备份施加变化只能在存档模式下进行既使用联机日志文件又使用归档日志文件需要用户发出明确的命令来执行系统不会自动检测是否有介质损坏恢复时间由用户指定的策略决定只要有一个联机的数据文件需要介质恢复,数据库就不能打开。否则介质恢复只能对脱机的数据文件进行。,NOARCHIVELOG模式下的恢复,恢复一个运行在NOARCHIV
4、ELOG模式下的数据库是最简单的。由于不存在归档日志文件,就不存在介质恢复。只能复原整个数据库到最近的备份。全部操作本质上变为复制文件。其步骤为:(1)关闭数据库SHUTDOWN IMMEDIATE;(2)从最近备份中还原所有的数据文件和控制文件,而不只是受损文件。(3)使用startup mount启动数据库(4)联机日志文件没被备份,为了将联机日志文件复位RECOVER DATABASE UNTIL CANCEL;(4)重新打开数据库ALTER DATABASE OPEN RESETLOGS;或alter database open noresetlogs;之后需要对数据库进行备份。,需要
5、恢复所有的数据文件和控制文件是因为Oracle需要这些文件彼此一致。如果有必要的话,在还原完数据文件并重建控制文件后,应该使用resetlogs选项打开数据库。这样复位日志文件是为了保证在新记录和那些先前的数据库中留下的记录之间不会有冲突。RESETLOGS模式使联机日志文件内的所有重做记录都失效。复原了一个整个数据库的最近的备份并重置了日志文件。这样,从数据库最近一次备份的时间到出现介质损失期间的变化就全部丢失了。,RESETLOGS是ALTER DATABASE OPEN命令的一个可选项。Oracle只在两种情况下使用该选项:(1)执行的是一个不完全恢复(2)用重建的控制文件启动数据库(其
6、中控制文件可以用alter database backup controlfile to filename.ctl),ARCHIVELOG模式下的恢复,在ARCHIVELOG方式中运行数据库时,Oracle在每个REDO日志文件写满后都进行一个拷贝。这些拷贝和没有被复制的任何联机REDO日志文件一起形成了对数据库所进行的变化的一条连续记录。如果丢失了一个数据文件并被迫从备份中还原它,那么归档日志文件中的信息将被用来将所有变化重新应用给备份发生后被建立的那个文件。从而还原出丢失的数据文件。在ARCHIVELOG方式下的恢复又分为完全恢复和不完全恢复。完全恢复可以将数据库还原到出错的那一刻。不完全
7、恢复可以将数据库还原到从备份点到出错之间的某一刻。,完全恢复就是恢复所有已提交事务工作的操作,即将数据库、表空间或数据文件的备份更新到最近的时间点上。完全恢复包括数据库恢复、表空间恢复、数据文件恢复。如果对整个数据库进行完全恢复:(1)登录数据库(2)确保要恢复的所有文件都脱机(3)将整个数据库或要恢复的文件进行复原(4)施加联机日志文件和归档日志文件,如果对一个表空间或数据文件进行完全恢复:(1)如果数据库已打开,可将要恢复的表空间或数据文件置于脱机状态。(2)将要恢复的数据文件进行复原。(3)施加联机日志文件和归档日志文件。如果破坏了system表空间的任何数据文件,数据库不能正常运行。必
8、须关闭数据库;当数据库处于打开状态时,不能对system表空间进行恢复操作。完全恢复后,再次打开数据库不必使用RESETLOGS命令。,完全介质恢复可以分为以下两种类型:(1)在关闭了的数据库上进行完全恢复操作;(2)在一个打开的数据库上进行数据文件的恢复操作。,进行自动介质恢复,能够自动利用默认的日志文件来进行恢复操作,无需手工应用各个单独的归档日志。有两种方法自动应用默认的归档日志文件进行恢复操作:在发出recover命令前执行set autorecovery on;在执行recover命令时指定automatic选项。用于自动恢复的文件名是从数据库初始化参数文件中的LOG_ARCHIVE
9、_FORMAT和LOG_ARCHIVE_DEST_n解析出来的。,在关闭了的数据库上进行完全恢复操作,(1)准备工作关闭实例,并检查引起问题的介质磁盘驱动器。如果数据库处于打开状态,则使用abort命令把数据库关闭。SHUTDOWN ABORT;(2)复原必要的遭到破坏的或丢失的文件a.首先确定需要进行恢复操作的数据文件,可以查看数据字典的视图V$RECOVER_FILE来确定需要进行介质恢复而要进行复原操作的文件。b.如果文件永久性的损坏,应找到此文件最近的备份。只要复原损坏的文件。c.用操作系统命令将文件复原到默认地点。,(3)恢复数据库a.以管理员身份连接数据库,以mount命令启动数据
10、库STARTUP MOUNT;b.查询V$DATAFILE视图,列出所有数据文件的状态,确保数据库所有数据文件都处于联机状态。c.使用recover命令恢复数据库恢复数据库recover database;恢复表空间recover tablespace tools;恢复数据文件recover datafile d:oracle9ioradataoraclewbtools01.dbf;,d.如果没有选择自动应用归档日志文件,就应该对oracle提示的日志文件选择“接受”或“拒绝”。如果选定了自动介质恢复,则oracle会自动应用所有必要的日志文件。e.最后oracle提示介质恢复已成功。f.在完
11、全恢复后,就可以打开数据库使用了。ALTER DATABASE OPEN;,在一个打开的数据库上进行数据文件的恢复操作,可以在数据库打开时进行介质恢复,让未损坏的数据文件保持联机状态,仍可使用。Oracle自动将损坏的数据文件置于脱机状态,但不会将包含损坏数据文件的表空间置于脱机状态。,(1)准备工作将表空间置于脱机状态ALTER TABLESPACE users OFFLINE;(2)复原损坏或丢失的文件a.如果文件永久损坏了,就找到受损的文件最近的备份。只需要复原介质损失的数据文件,不复原未损坏的文件。b.如果复原一个或多个受损的数据文件到可选的地点,则需要在数据库的控制文件中重新命名数据
12、文件。可使用alter database rename file命令实现重命名。(3)在一个打开的数据库中恢复脱机表空间a.首先以数据库管理员权限连接数据库b.对包含受损数据文件的表空间(已处于脱机状态)进行恢复操作RECOVER TABLESPACE users,sales;,c.Oracle通过应用必要的日志文件(包括归档的和联机的)来重建复原的数据文件。d.当受损的表空间被恢复到介质损失发生的那一时刻时,即完成了介质恢复后,要将表空间设置到联机状态。ALTER TABLESPACE users ONLINE;ALTER TABLESPACE sales ONLINE;,完全恢复,当系统运
13、行于ARCHIVELOG模式下,如果丢失了一个或多个数据文件,可以对数据文件进行逐个恢复。其步骤如下:(1)执行ALTER TABLESPACE命令准备表空间备份SQL alter tablespace users begin backup;表空间已更改。(2)使用操作系统命令拷贝表空间USERS到另一路径(3)使表空间结束备份状态SQL alter tablespace users end backup;表空间已更改。,(4)在USERS表空间中创建一个名为TEST的表格,模拟备份表空间后数据库数据的更改SQL create table test(id number(6),name varc
14、har2(30)tablespace users;SQL insert into test values(1,测试);SQL commit;提交完成。,(5)关闭数据库SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。(6)使用操作系统命令把USERS对应的数据文件删除掉,模拟介质损坏。,(7)启动数据库,发现数据文件丢失的错误警告SQL startupORACLE 例程已经启动。Total System Global Area 118255568 bytesFixed Size 282576 bytesVariable Size 8388
15、6080 bytesDatabase Buffers 33554432 bytesRedo Buffers 532480 bytes数据库装载完毕。ORA-01157:无法标识/锁定数据文件 6-请参阅 DBWR 跟踪文件ORA-01110:数据文件 6:D:ORACLEORADATAUSERS01.DBF,警告显示系统无法识别数据文件6,提示用户参考DBWR跟踪文件。查看跟踪文件ora9iDBW0.TRC,文件显示只有文件USERS01.DBF丢失:*2006-02-14 14:21:41.000*SESSION ID:(2.1)2006-02-14 14:21:41.000ORA-0115
16、7:cannot identify/lock data file 6-see DBWR trace fileORA-01110:data file 6:D:ORACLEORADATAUSERS01.DBFORA-27041:unable to open fileOSD-04002:无法打开文件O/S-Error:(OS 2)系统找不到指定的文件。,(8)对丢失数据文件进行恢复如果需要恢复的USERS01.DBF文件没有脱机的话,先将其脱机。如果一个驱动器错误导致丢失一个数据文件,那么Oracle已将这个文件脱机。如果要确认文件是不已经脱机,可以通过查询视图v$datafile进行校验。如果已经
17、丢失的文件还未脱机,可以通过下列命令使它脱机:SQL ALTER DATABASE DATAFILE D:ORACLEORADATAUSERS01.DBf OFFLINE;数据库已更改。注意:如果丢失的文件是SYSTEM表的一部分,那么当它被还原时不能打开数据库,因为它不能被脱机,(9)从最近的备份中还原数据库如果驱动器错误强迫将文件还原到一个新的位置,需要执行一个ALTER DATABASE RENAME FILE original_filename TO new_filename命令在数据库控制文件中记录新的位置。执行恢复操作如果一次需要将多个文件全部恢复执行:RECOVER DATABA
18、SE;另一种方法是使用RECOVER DATAFILE命令恢复文件,语法如下:RECOVER DATAFILE filename1,filename2,SQL recover datafile D:ORACLEORADATAUSERS01.DBf;也可以通过调用RECOVER TABLESPACE命令对数据库的表空间进行恢复,(10)将文件重新联机恢复的最后一步是将数据文件重新联机:SQL alter database datafile 2 D:ORACLEORADATAUSERS01.DBf online;数据库已更改。(11)打开数据库SQL alter database open;数据库
19、已更改。,查询表格TEST,确认没有数据丢失SQL select*from test;ID NAME-1 测试如果存在多个数据文件丢失,则重复执行上述步骤可以实现对多个数据文件的恢复。,丢失整个数据库情况下的恢复,由于整个数据库丢失,也就是SYSTEM系统表空间和UNDO表空间也丢失了,所以根本不能进行脱机恢复,这时只能将数据库启动到MOUNT状态,然后将最近的一次全备份数据文件拷贝到原来的文件夹,或拷贝到由RENAME调整过的文件夹,再执行恢复操作。,具体步骤如下:删除现有的所有数据文件和控制文件模拟文件丢失恢复备份的控制文件,从最近的一次备份中拷贝控制文件到参数文件指定的位置启动数据到MO
20、UNT状态,(1)SQL startup mount;ORACLE 例程已经启动。Total System Global Area 118255568 bytesFixed Size 282576 bytesVariable Size 83886080 bytesDatabase Buffers 33554432 bytesRedo Buffers 532480 bytes数据库装载完毕。,(2)重建控制文件在执行恢复时,要求控制文件和备份数据文件不是同时备份的。因为同时备份的控制文件和数据文件的标识是彼此一致的,这时Oracle会认为不需要执行介质恢复,从而终止恢复进程,提示信息如下所示:S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle9i 13 数据库 恢复
链接地址:https://www.31ppt.com/p-5442039.html