1、复制全部热备的数据文件过来(完全恢复成功!) 19mount数据库 19完全恢复数据库 20打开数据库 20完全恢复 21 21*shutdown abort的情况,恢复全部数据文件(不包括control和redo) 21) 22mount数据库 22完全恢复数据库 22打开数据库 23完全恢复 23 23*shutdown immediate,丢失全部控制文件(不包括数据文件和redo),A(完全恢复) 24用热备的控制文件恢复(把热备的控制文件拷贝回来) 24mount数据库 24完全恢复和until cancel using backup controlfile都失败 24重建控制文件
2、25找到那个控制文件,然后编辑 25重建控制文件,并且恢复数据库(完全恢复成功!) 26完全恢复 26 27*shutdown abort的情况,恢复全部控制文件(不包括数据文件和redo) 27准备工作 27删除那个控制文件,把热备的控制文件拷贝过来 29mount数据库 29根据提示,重建口令文件 29用to trace;备份控制文件 30找到那个控制文件,然后编辑 31) 31 32*shutdown immediate的情况,丢失全部控制文件和数据文件(不包括redo),方法1 32准备工作 32然后单独开启一个实例,再shutdown immediate 34拷贝热备的所有控制文件和
3、数据文件 34mount数据库 34根据提示,重建口令文件 35用to trace备份控制文件 35shutdown immediate关闭数据库 35找到那个控制文件,然后编辑: 36重建控制文件,并且恢复数据库 36关闭数据库 37重新mount,作完全恢复(recover database;) 37打开数据库 39完全恢复 40 40*shutdown immediate的情况,丢失全部控制文件和数据文件(不包括redo),方法2 41准备工作 41把热备的控制文件和数据文件拷贝过来 42mount数据库 42根据提示,重建口令文件 42尝试恢复数据库(现在恢复是不可以的) 43试图打开
4、数据库(现在打开是不可以的) 43重新mount数据库 44备份控制文件 44找到那个控制文件,并且编辑它 44重建控制文件,并自动完全恢复数据库 45完全恢复 46 46*shutdown abort的情况,恢复全部控制文件和数据文件(不包括redo) 47准备工作 47单开一个session,用来shutdow abort 48拷贝所有的控制文件和数据文件(不包括redo) 48mount数据库,按照提示重建口令文件 48这时,试图完全恢复数据库是不成功的 49用to trace备份控制文件 49找到并且编辑控制文件 49重建控制文件 50shutdown immediate,然后重新恢复
5、数据库 51完全恢复数据库 51打开数据库 53 54*shutdown abort后,丢失全部文件(除了archive log和init.ora) 54准备工作 54新开一个session,进行shutdown abort 56把热备的数据文件和控制文件拷贝过来 56mount数据库 56根据提示重建口令文件 57用to trace备份控制文件 57找到这个跟踪文件并编辑它 57重建控制文件(这种丢失的状态重建控制文件是错误的) 58Mount数据库 59用using backup controlfile进行恢复 59用Open Resetlog 打开数据库 62不完全恢复,redo里面的数
6、据丢失了 63 63*丢失非系统非当前活动回滚段表空间中的一个数据文件 64首先是做一次热备(因为上次已经做了不完全恢复resetlogs) 64数据准备工作1 67以上改动后需要作一次热备或者冷备,否则数据文件丢失后不能恢复(增加表空间,数据文件都要备份数据库) 69数据准备工作2 72Shutdow abort,然后删除test01.dbf,模拟数据文件丢失 72删除test01.dbf,把备份的数据文件test01.dbf拷贝过来 73Mount数据库 73恢复数据文件(把最近的热备的文件拷贝过来) 73打开数据库 73完全恢复 74*丢失系统表空间(SYSTEM) 74*丢失一个非当前
7、的redo log group 74*丢失一个当前的redo log group 74*丢失一个非当前非唯一的redo log member 75*丢失一个非当前的唯一的redo log member 75*丢失一个当前的非唯一的redo log member 75*丢失一个当前的唯一的redo log member 75*丢失一个非唯一的控制文件 75*丢失当前回滚段 75*丢失某个非系统表空间的一个数据文件 76附录: 76For windowx的数据库备份脚本 76备份脚本(aa.sql) 76生成的用于实际做备份的脚本(backup_ts.sql) 78备份过程的日志(backup.l
8、og) 81备份ops的脚本 83备份脚本(createbackup.sh) 83生成的用于实际做备份的脚本(dobackup.sql) 85用于调用这个生成的实际需要调用的脚本(dobackup.sh) 89备份过程的日志(backup.log) 89备份unix或者linux单台实例的数据库脚本 91备份脚本(createbackup.sh) 91生成的用于实际做备份的脚本(dobackup.sql) 94用于调用这个生成的实际需要调用的脚本(dobackup.sh) 94备份过程的日志(backup.log) 94*热备过程E:sqlplus internalSQL*Plus: Rele
9、ase 8.1.7.0.0 - Production on 星期日 10月 20 20:36:50 2002(c) Copyright 2000 Oracle Corporation. All rights reserved.连接到:Oracle8i Enterprise Edition Release 8.1.7.0.0 - ProductionWith the Partitioning optionJServer Release 8.1.7.0.0 - ProductionSQL e:backupdbotheraaTO_CHAR(SYSDATE,YY-2002-10-20 08:10:51
10、backupdbotherbackup_ts.sql -set termout off; set echo off head off feedback off pagesize 0;20-10月-02BEGINING ARCHIVE LOG NUMBER IS :数据库日志模式 存档模式自动存档 启用存档终点 d:BACKUPDBarchive最早的概要信息日志序列 0下一个存档日志序列 1当前日志序列 1Begin Backup Tablespace SYSTEM.D:BACKUPDBSYSTEM01.DBF .已复制 1 个文件。Successed End Backup This File
11、 .Begin Backup Tablespace RBS.BACKUPDBRBS01.DBFBegin Backup Tablespace USERS.BACKUPDBUSERS01.DBFBegin Backup Tablespace TEMP.BACKUPDBTEMP01.DBFBegin Backup Tablespace TOOLS.BACKUPDBTOOLS01.DBFBegin Backup Tablespace INDX.BACKUPDBINDX01.DBFBegin Backup CONTROLFILE BACKUPDBCONTROL01.CTLSuccessed End B
12、ackup The CONTROLFILE .Begin Backup CONTROLFILE To Trace .Before Switch Log, The Current Log is:Begin Backup Switch Current Log .Successed End Switch Log .After Switch Log, The Ending Archive Log Number Is :最早的概要信息日志序列 1下一个存档日志序列 2当前日志序列 2 -set termout on; select to_char(sysdate,yyyy-mm-dd hh:mm:ss)
13、 from dual;15已选择 1 行。*仅仅丢失一个普通用户数据文件的恢复A(联机恢复)(例如,丢失D:BACKUPDBUSERS01.DBF)准备工作通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2); conn lunar/lunar已连接。 select * from tab;TESTBACKUP3 TABLE create table test1 2 (a number);表已创建。 insert into test1 values(1);已创建 1 行。 alter system switch logfile;系统已更改。 comm
14、it;提交完成。 insert into test1 values(2); conn internal archive log list最早的概要信息日志序列 3下一个存档日志序列 5当前日志序列 5shutdown abort关闭例程,模拟数据文件丢失 shutdown abortORACLE 例程已经关闭。Mount数据库 startup mountORACLE 例程已经启动。Total System Global Area 25856028 bytesFixed Size 75804 bytesVariable Size 8925184 bytesDatabase Buffers 167
15、77216 bytesRedo Buffers 77824 bytes数据库装载完毕。使损坏的数据文件脱机 alter database datafile offline;数据库已更改。打开数据库 alter database open;拷贝刚才热备的数据文件(USERS01.DBF)恢复损坏的数据文件 recover datafile ;ORA-00279: ? 424116 (? 10/20/2002 20:42:04 ?) ? 1 ?ORA-00289: D:BACKUPDBARCHIVEBACKUPT001S00001.ARCORA-00280: 424116 ? # 1 ?指定日志:
16、 =suggested | filename | AUTO | CANCELauto 424125 (?44:14 ?BACKUPDBARCHIVEBACKUPT001S00002.ARC 424125 ? # 2 ?ORA-00278: BACKUPDBARCHIVEBACKUPT001S00001.ARC 424135 (? 10/20/2002 21:55:35 ?BACKUPDBARCHIVEBACKUPT001S00003.ARC 424135 ? # 3 ?BACKUPDBARCHIVEBACKUPT001S00002.ARC已应用的日志。完成介质恢复。使恢复完成的数据文件联机 o
17、nline;Database altered.完全恢复TNAME TABTYPE CLUSTERID- - -TEST1 TABLE select * from test1; A- 1 21. shutdown abort关闭例程,模拟数据文件丢失 2. Mount数据库 3. 使损坏的数据文件脱机 4. 打开数据库 5. 拷贝刚才热备的数据文件(USERS01.DBF) 6. 恢复损坏的数据文件 7. 使恢复完成的数据文件联机*仅仅丢失一个普通用户数据文件的恢复B(脱机恢复)按照下面的输入,如果全部恢复,应该可以看到insert into test1 values(13),因为insert
18、into test1 values(14)没提交。Connected. insert into test1 values(13);1 row created.Commit complete. insert into test1 values(14);Shutdown immediate,然后模拟数据文件丢失单开一个session,执行shutdown immediate(保证insert into test1 values(14);没有被隐士提交)Microsoft Windows 2000 Version 5.00.2195(C) 版权所有 1985-2000 Microsoft Corp.
19、 Release 8.1.7.0.0 - Production on 星期一 10月 21 02:07 2002 shutdown immediate数据库已经关闭。已经卸载数据库。模拟数据文件丢失,然后用热备覆盖这个文件mount数据库 Release 8.1.7.0.0 - Production on Mon Oct 21 02:47 2002Connected to an idle instance.ORA-01034: ORACLE not availableORA-27101: shared memory realm does not existORACLE instance sta
20、rted.Database mounted.恢复数据文件 change 424116 generated at 10/20/2002 20:04 needed for thread 1 suggestion : change 424116 for thread 1 is in sequence #1Specify log: change 424125 generated at 10/20/2002 20:14 needed for thread 1 change 424125 for thread 1 is in sequence #2 log file no longer neededfor this recovery change 424135 generated at 10/20/2002 21:35 needed for thread 1 change 424135 for thread 1 is in sequence #3 change 424139 generated at 10/20/2002