存储 频道

ORACLE数据库的恢复(1)

ORACLE可能的数据恢复模式
概述
 
仅仅丢失一个普通用户数据文件的恢复
能恢复到上次Commit 的状态
Shut down 状态无关
shutdown immedate,恢复全部数据文件(不包括controlredo)
能恢复到上次Commit的状态(Shutdown Immediate
Shutdown immediate
shutdown abort的情况,恢复全部控制文件和数据文件(不包括redo)
能恢复到上次Commit的状态
Shutdown abort
仅仅丢失一个普通用户数据文件的恢复B(脱机恢复
能恢复到上次Commit 的状态
不停数据库情况下恢复
Shut down 状态无关
shutdown abort后,丢失全部文件(除了archive loginit.ora)即,丢失了全部数据文件、控制文件和redo log file
能恢复到ARCHIVE 的状态,上次备份中redo中的数据丢失
Shutdown Abort
shutdown abort的情况,恢复一个控制文件(不包括数据文件和redo)
Copy 其他的控制文件该名称
 
shutdown abort的情况,恢复全部控制文件(不包括数据文件和redo)
能恢复到ARCHIVE 的状态
redo数据丢失
Shutdown abort
${PageNumber}
仅仅丢失一个普通用户数据文件的恢复A(联机恢复) 
(例如,丢失D:\BACKUPDB\USERS01.DBF) 
准备工作, 通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2); 
 
SQL> conn lunar/lunar 
SQL> select * from tab; 
TESTBACKUP3 TABLE 
SQL> create table test1 (a number); 
SQL> insert into test1 values(1); 
SQL> alter system switch logfile; 
SQL> commit; 
SQL> alter system switch logfile; 
SQL> insert into test1 values(2); 
SQL> commit; 
SQL> alter system switch logfile; 
SQL> conn internal
SQL> archive log list
数据库日志模式 存档模式 
自动存档 启用 
存档终点 d:\BACKUPDB\archive 
最早的概要信息日志序列 3 
下一个存档日志序列 5 
当前日志序列 5 
shutdown abort关闭例程,模拟数据文件丢失 
SQL> shutdown abort 
ORACLE 例程已经关闭。 
Mount数据库 
SQL> startup mount  
数据库装载完毕。 
 
使损坏的数据文件脱机 
SQL> alter database datafile 'D:\BACKUPDB\USERS01.DBF' offline; 
打开数据库 
SQL> alter database open; 
拷贝刚才热备的数据文件(USERS01.DBF) 
恢复损坏的数据文件 
SQL> recover datafile 'D:\BACKUPDB\USERS01.DBF'; 
ORA-00279: ?? 424116 (? 10/20/2002 20:42:04 ??) ???? 1 ???? 
ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC 
ORA-00280: ?? 424116 ???? 1 ???? # 1 ??? 
 
指定日志: {<RET>=suggested | filename | AUTO | CANCEL} 
auto 
ORA-00279: ?? 424125 (? 10/20/2002 20:44:14 ??) ???? 1 ???? 
ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARC 
ORA-00280: ?? 424125 ???? 1 ???? # 2 ??? 
ORA-00278: ??????????? 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC' 
⋯⋯⋯⋯⋯⋯⋯⋯..
已应用的日志。 
完成介质恢复。${PageNumber}
shutdown immedate,恢复全部数据文件(不包括control和redo) 
(把热备的数据文件拷贝回来,不包括control和redo) 
SQL> conn internal 
SQL> shutdown immediate; 
 
复制全部热备的数据文件过来(完全恢复成功!)
mount数据库
SQL> startup mount
 
完全恢复数据库 
SQL> recover database; 
ORA-00279: change 424112 generated at 10/20/2002 20:40:52 needed for thread 1 
ORA-00289: suggestion : D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC 
ORA-00280: change 424112 for thread 1 is in sequence #1 
 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
auto 
ORA-00279: change 424125 generated at 10/20/2002 20:44:14 needed for thread 1 
ORA-00289: suggestion : D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARC 
ORA-00280: change 424125 for thread 1 is in sequence #2 
ORA-00278: log file 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC' no longer needed 
for this recovery 
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..
Log applied. 
Media recovery complete. 
打开数据库 
SQL> alter database open; 
 
验证恢复结果:完全恢复 
SQL> conn lunar/lunar 
SQL> select * from test1; 
 
完全恢复成功! 
说明: 
1. 复制全部热备的数据文件过来 
2. mount数据库   
3. 完全恢复数据库   
4. 打开数据库
0
相关文章