ALLSTARS_ORACLE 发表于 2017-4-13 16:07:37

现在只有数据文件和控制文件,能恢复吗?


服务器有两个硬盘,突然宕机,导致服务器主板和一块硬盘损坏,现在不能开机。

好的硬盘上有数据库软件、部分数据文件、控制文件。
但联机日志、归档日志都在损坏硬盘上,同时还有个用户自己创建的数据文件也在损坏硬盘上。

现在操作如下:

oracle 9.2.0.5

1.在另一台电脑上,同目录安装数据库软件,并创建数据库;

2.复制 未损坏硬盘 上的数据文件、控制文件,到新数据库对应目录下。

3.因为有一个数据文件找不到,所以重建:

SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  873538888 bytes
Fixed Size                   456008 bytes
Variable Size             335544320 bytes
Database Buffers          536870912 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01157: 无法标识/锁定数据文件 37 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 37: 'H:\ORA_DATAFILE\STU_APPLY.DBF'

SQL> alter database create datafile 37;
数据库已更改。
SQL>
复制代码

4.做恢复:

C:\Documents and Settings\Administrator>rman target /
恢复管理器: 版本9.2.0.5.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
连接到目标数据库: ZLWST (DBID=4009927990)
RMAN> recover database noredo;
启动 recover 于 20-1月 -15
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=10 devtype=DISK
完成 recover 于 20-1月 -15
RMAN>
复制代码

5.启动:

SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  873538888 bytes
Fixed Size                   456008 bytes
Variable Size             335544320 bytes
Database Buffers          536870912 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01113: 文件 37 需要介质恢复
ORA-01110: 数据文件 37: 'H:\ORA_DATAFILE\STU_APPLY.DBF'
复制代码

6.没法启动,将新建的数据文件offline:

SQL> alter database datafile 37 offline;
数据库已更改。
复制代码

7.再开:---------在sqlplus下执行

SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'H:\ORA_LOG\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

SQL> recover database noredo;
ORA-00905: 缺少关键字
复制代码

8.不能操作,在rman下操作:

RMAN> recover database noredo;
启动 recover 于 20-1月 -15
使用通道 ORA_DISK_1
完成 recover 于 20-1月 -15
RMAN> alter database open resetlogs;
RMAN-00571: ====================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ========
RMAN-00571: ====================================================
RMAN-03002: failure of alter db command at 01/20/2015 20:01:17
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
RMAN> alter database open;
RMAN-00571: ====================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ========
RMAN-00571: ====================================================
RMAN-03002: failure of alter db command at 01/20/2015 20:01:24
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'H:\ORA_LOG\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
RMAN>
复制代码

也不行,请问各位,最后这如何操作呢?


请问 控制文件如何处理呢?直接用之前的控制文件覆盖现在新库的控制文件?



SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\ZLWST\SYSTEM01.DBF'

现在报这个错呢?
因为发现有个数据文件在坏了的磁盘上,所以我把控制文件重建了。排除了这个数据文件。这个是用户的数据文件,非系统数据文件。





不行。在open时报600错误崩溃了。
页: [1]
查看完整版本: 现在只有数据文件和控制文件,能恢复吗?