- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2017-4-13 16:07:37
|
查看: 1240 |
回复: 0
服务器有两个硬盘,突然宕机,导致服务器主板和一块硬盘损坏,现在不能开机。
好的硬盘上有数据库软件、部分数据文件、控制文件。
但联机日志、归档日志都在损坏硬盘上,同时还有个用户自己创建的数据文件也在损坏硬盘上。
现在操作如下:
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错误崩溃了。
|
|