新装的oracle缺少很多文件夹,丢失所有文件、拥有全备份,缺少后增加的文件

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方式修改控制文件中记录.

继续应用所有归档和日志文件可以完成恢复.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部