[转帖]恢复之重建数据文件_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4381 | 回复: 0   主题: [转帖]恢复之重建数据文件        下一篇 
kim
注册用户
等级:中校
经验:1729
发帖:222
精华:0
注册:2011-7-21
状态:离线
发送短消息息给kim 加好友    发送短消息息给kim 发消息
发表于: IP:您无权察看 2011-9-21 7:52:13 | [全部帖] [楼主帖] 楼主

当碰到损坏的数据文件没有备份,或者备份文件也被损坏的情况。如果数据库是处于归档模式下,且保留着所有的从表空间建立时到现在的归档日志,则可以通过重建数据文件的方式进行恢复。

这种恢复方式首先建立一个新的空数据文件,然后完全利用归档日志来恢复表空间中的数据。

SQL> SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM TEST
*


ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 5
ORA-01110: 数据文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'

SQL> SELECT * FROM V$RECOVER_FILE;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- -------------------
5 OFFLINE OFFLINE 45089058 2006-02-08 20:33:06
SQL> SELECT D.NAME, T.NAME AS TABLESPACE_NAME
2 FROM V$DATAFILE D, V$TABLESPACE T
3 WHERE T.TS# = D.TS#
4 AND D.FILE# = 5;
NAME TABLESPACE_NAME
---------------------------------------- ------------------------------
F:ORACLEORADATATESTUSERS01.DBF USERS
SQL> ALTER DATABASE CREATE DATAFILE 'F:ORACLEORADATATESTUSERS01.DBF'
2 AS 'F:ORACLEORADATATESTUSERS02.DBF';


数据库已更改。

SQL> RECOVER DATAFILE 'F:ORACLEORADATATESTUSERS02.DBF';
ORA-00279: 更改 45038775 (在 02/08/2006 01:49:56 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00026.001
ORA-00280: 更改 45038775 对于线程 1 是按序列 # 26 进行的

指定日志: {<RET>=suggested filename AUTO CANCEL}
AUTO
已应用的日志。
完成介质恢复。

SQL> ALTER DATABASE DATAFILE 'F:ORACLEORADATATESTUSERS02.DBF' ONLINE;


数据库已更改。

SQL> SELECT COUNT(*) FROM TEST;
COUNT(*)
----------
6288


这个操作需要注意的是:需要表空间创建后所有的归档日志,且控制文件中必须包含受损文件名。另外,这种方式的恢复不能用于SYSTEM表空间。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论