暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

丢失所有文件、拥有全备份,缺少后增加的文件

原创 eygle 2004-10-14
625

演示几种情况,不做过多说明.


归档模式


拥有所有归档文件及日志文件,丢失所有数据文件及控制文件,后增加的文件无备份,丢失这个文件,拥有控制文件及所有其他文件的历史
备份,以下是一种恢复情况.



1.测试,移除当前所有文件


从备份中恢复数据文件及控制文件(丢失后增加的文件)






 
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 47259136 bytes
Fixed Size 454144 bytes
Variable Size 29360128 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> archive log start;
已处理的语句
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 e:\\oracle\\ora92\\RDBMS
最早的概要日志序列 30
下一个存档日志序列 32
当前日志序列 32
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\\ORACLE\\ORADATA\\EYGLE\\SYSTEM01.DBF
E:\\ORACLE\\ORADATA\\EYGLE\\UNDOTBS01.DBF
E:\\ORACLE\\ORADATA\\EYGLE\\EYGLE01.DBF
SQL> create tablespace test datafile 'e:\\oracle\\oradata\\eygle\\test01.dbf'
2 size 5m;
表空间已创建。
SQL> alter system switch logfile;
系统已更改。
SQL> create table t tablespace test as select * from dba_users;
表已创建。
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production中断开
E:\\Oracle\\oradata\\eygle>mv TEST01.DBF bak
E:\\Oracle\\oradata\\eygle>mkdir bak2
E:\\Oracle\\oradata\\eygle>mv *.* bak2
E:\\Oracle\\oradata\\eygle>ls
bak bak2
E:\\Oracle\\oradata\\eygle>mv bak\\*.* . --从备份中恢复
E:\\Oracle\\oradata\\eygle>ls
CONTROL01.CTL CONTROL03.CTL REDO01.LOG REDO03.LOG TEMP01.DBF UNDOTBS01.DBF bak2
CONTROL02.CTL EYGLE01.DBF REDO02.LOG SYSTEM01.DBF TEST01.DBF bak sqlnet.log
E:\\Oracle\\oradata\\eygle>mv TEST01.DBF bak --移除后增加的这个文件
E:\\Oracle\\oradata\\eygle>ls
CONTROL01.CTL CONTROL03.CTL REDO01.LOG REDO03.LOG TEMP01.DBF bak sqlnet.log
CONTROL02.CTL EYGLE01.DBF REDO02.LOG SYSTEM01.DBF UNDOTBS01.DBF bak2

 


2.开始恢复


 






 

E:\\Oracle\\oradata\\eygle>sqlplus "sys/oracle as sysdba"
SQL*Plus: Release 9.2.0.5.0 - Production on 星期三 10月 13 23:50:06 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 47259136 bytes
Fixed Size 454144 bytes
Variable Size 29360128 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 134694 (在 10/13/2004 22:14:13 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\\ORACLE\\ORA92\\RDBMS\\ARC00032.001
ORA-00280: 更改 134694 对于线程 1 是按序列 # 32 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00283: 恢复会话因错误而取消
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
ORA-01110: 数据文件 4: 'E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF'

ORA-01112: 未启动介质恢复
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\\ORACLE\\ORADATA\\EYGLE\\SYSTEM01.DBF
E:\\ORACLE\\ORADATA\\EYGLE\\UNDOTBS01.DBF
E:\\ORACLE\\ORADATA\\EYGLE\\EYGLE01.DBF
E:\\ORACLE\\ORA92\\DATABASE\\UNNAMED00004

 


注意:由于使用的是备份的控制文件进行恢复,该文件中不包含后增加的文件,恢复过程中会缺省的赋予一个文件名,本案例时:UNNAMED00004


3.更改文件名称继续恢复






 

 
SQL> alter database create datafile 'E:\\ORACLE\\ORA92\\DATABASE\\UNNAMED00004'
as 'E:\\ORACLE\\ORADATA\\EYGLE\\TEST01.DBF';

数据库已更改。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 134923 (在 10/13/2004 22:40:10 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\\ORACLE\\ORA92\\RDBMS\\ARC00032.001
ORA-00280: 更改 134923 对于线程 1 是按序列 # 32 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 134967 (在 10/13/2004 22:40:40 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\\ORACLE\\ORA92\\RDBMS\\ARC00033.001
ORA-00280: 更改 134967 对于线程 1 是按序列 # 33 进行的
ORA-00278: 此恢复不再需要日志文件 'E:\\ORACLE\\ORA92\\RDBMS\\ARC00032.001'
指定日志: {=suggested | filename | AUTO | CANCEL}
E:\\Oracle\\oradata\\eygle\\bak2\\REDO03.LOG
ORA-00279: 更改 134998 (在 10/13/2004 22:41:05 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\\ORACLE\\ORA92\\RDBMS\\ARC00034.001
ORA-00280: 更改 134998 对于线程 1 是按序列 # 34 进行的
ORA-00278: 此恢复不再需要日志文件 'E:\\Oracle\\oradata\\eygle\\bak2\\REDO03.LOG'
指定日志: {=suggested | filename | AUTO | CANCEL}
E:\\Oracle\\oradata\\eygle\\bak2\\REDO01.LOG
ORA-00279: 更改 155020 (在 10/13/2004 22:44:30 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\\ORACLE\\ORA92\\RDBMS\\ARC00035.001
ORA-00280: 更改 155020 对于线程 1 是按序列 # 35 进行的
ORA-00278: 此恢复不再需要日志文件 'E:\\Oracle\\oradata\\eygle\\bak2\\REDO01.LOG'
指定日志: {=suggested | filename | AUTO | CANCEL}
E:\\Oracle\\oradata\\eygle\\bak2\\REDO02.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL>

总结:


此案例丢失控制文件,从备份控制文件进行恢复,在进行恢复中,会向控制文件中以缺省规则增加文件,我们可以通过CREATE AS方式修改控制文件中记录.
继续应用所有归档和日志文件可以完成恢复.


 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论