求助:
我也碰到这个问题
但是很棘手的是
我缺失的文件是d:oradatam202data.ora,这个文件不在了
而且也没有备份
刚才库正常起来了
但是查一些表的时候报ora-00376,ora-01110
问题
无头绪,不知道无法恢复
如果您有时间
在PUB内也可发站内短信
首页 > Linux操作系统 > Linux操作系统 > 恢复之数据库打开时的完全恢复
对于非系统表空间或数据文件的恢复,可以在数据库打开时进行,但是表空间或数据文件必须处于脱机状态。
通过ULTRAEDIT修改在线数据文件的方式来模拟联机情况下数据文件的损坏。
SQL> ALTER SYSTEM CHECKPOINT;
系统已更改。
SQL> SELECT * FROM TTT WHERE OBJECT_ID = 932;
SELECT * FROM TTT WHERE OBJECT_ID = 932
*
ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 5
ORA-01110: 数据文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'
修改了TOOLS表空间数据文件的文件头信息,同时修改了USERS01.DBF中的数据信息。
SQL> SELECT NAME, STATUS FROM V$DATAFILE;
NAME STATUS
-------------------------------------------------- -------
F:ORACLEORADATATESTSYSTEM01.DBF SYSTEM
F:ORACLEORADATATESTUNDOTBS01.DBF ONLINE
F:ORACLEORADATATESTINDX01.DBF ONLINE
F:ORACLEORADATATESTTOOLS01.DBF RECOVER
F:ORACLEORADATATESTUSERS01.DBF RECOVER
F:ORACLEORADATATESTYANGTK01.DBF ONLINE
已选择6行。
SQL> UPDATE TTT SET OBJECT_NAME = 'AAA' WHERE OBJECT_ID = 932;
UPDATE TTT SET OBJECT_NAME = 'AAA' WHERE OBJECT_ID = 932
*
ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 5
ORA-01110: 数据文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'
SQL> SELECT NAME, STATUS FROM V$DATAFILE;
NAME STATUS
-------------------------------------------------- -------
F:ORACLEORADATATESTSYSTEM01.DBF SYSTEM
F:ORACLEORADATATESTUNDOTBS01.DBF ONLINE
F:ORACLEORADATATESTINDX01.DBF ONLINE
F:ORACLEORADATATESTTOOLS01.DBF RECOVER
F:ORACLEORADATATESTUSERS01.DBF RECOVER
F:ORACLEORADATATESTYANGTK01.DBF ONLINE
已选择6行。
SQL> SELECT NAME, ONLINE_STATUS, ERROR
2 FROM V$DATAFILE A, V$RECOVER_FILE B
3 WHERE A.FILE# = B.FILE#;
NAME ONLINE_ ERROR
-------------------------------------------------- ------- -----------------
F:ORACLEORADATATESTTOOLS01.DBF OFFLINE FILE NOT FOUND
F:ORACLEORADATATESTUSERS01.DBF OFFLINE
在进行恢复之前,需要将联机的表空间处于脱机状态,注意,这个时候NORMAL方式可能无法将表空间脱机,需要使用TEMPORARY或IMMEDIATE。
SQL> SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
INDX ONLINE
TOOLS ONLINE
USERS ONLINE
YANGTK ONLINE
已选择7行。
SQL> ALTER TABLESPACE USERS OFFLINE;
ALTER TABLESPACE USERS OFFLINE
*
ERROR 位于第 1 行:
ORA-01191: 文件5已经脱机 - 无法进行正常脱机
ORA-01110: 数据文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'
SQL> ALTER TABLESPACE USERS OFFLINE TEMPORARY;
表空间已更改。
SQL> ALTER TABLESPACE TOOLS OFFLINE IMMEDIATE;
表空间已更改。
下面对需要恢复的数据文件进行还原。假设TOOLS表空间所在磁盘损坏,无法将备份恢复到原来的位置,需要使用ALTER DATABASE RENAME FILE命令将其改名,移植到新的位置:
注意,不要还原控制文件、联机日志文件和没有损坏的数据文件。
SQL> HOST COPY F:ORACLEBACKUPTEST20060219USERS01.DBF F:ORACLEORADATATEST
SQL> HOST COPY F:ORACLEBACKUPTEST20060219TOOLS01.DBF F:ORACLEORADATATESTTOOLS02.DBF
SQL> ALTER DATABASE RENAME FILE 'F:ORACLEORADATATESTTOOLS01.DBF'
2 TO 'F:ORACLEORADATATESTTOOLS02.DBF';
数据库已更改。
最后执行表空间的恢复就可以了:
SQL> SET AUTORECOVERY ON
SQL> RECOVER TABLESPACE USERS, TOOLS
ORA-00279: 更改 45822812 (在 02/19/2006 03:07:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00001.001
ORA-00280: 更改 45822812 对于线程 1 是按序列 # 1 进行的
ORA-00279: 更改 45843504 (在 02/19/2006 10:39:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00002.001
ORA-00280: 更改 45843504 对于线程 1 是按序列 # 2 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00001.001'
ORA-00279: 更改 45858111 (在 02/19/2006 22:11:29 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00003.001
ORA-00280: 更改 45858111 对于线程 1 是按序列 # 3 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00002.001'
已应用的日志。
完成介质恢复。
SQL> ALTER TABLESPACE USERS ONLINE;
表空间已更改。
SQL> ALTER TABLESPACE TOOLS ONLINE;
表空间已更改。
求助:
我也碰到这个问题
但是很棘手的是
我缺失的文件是d:oradatam202data.ora,这个文件不在了
而且也没有备份
刚才库正常起来了
但是查一些表的时候报ora-00376,ora-01110
问题
无头绪,不知道无法恢复
如果您有时间
在PUB内也可发站内短信
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/235507/viewspace-548691/ ,如需转载,请注明出处,否则将追究法律责任。