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

利用备份恢复的第一步就是从备份中还原数据文件。

还原数据文件的动作很简单,就是利用操作系统命令将备份的数据文件拷贝到数据文件的位置。需要注意的是这个动作的准备动作。

首先需要确定哪些数据文件需要还原,然后确定合适的备份,这个备份一般是最近的备份,但也有可能需要从以前的备份恢复。

在下面的步骤中,为了模拟数据库打开状态下数据文件的损坏,使用了Ultraedit修改了USERS表空间的数据文件。

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


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

首先查询V$RECOVER_FILE视图,这个视图中会包括需要恢复的数据文件的名称,已经数据文件的错误类型。注意,从备份中恢复的控制文件或通过CREATE CONTROLFILE重新创建的控制文件不会包含损坏的数据文件的信息。

SQL> SELECT * FROM V$RECOVER_FILE;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- -------------------- ---------- -------------------
5 OFFLINE OFFLINE CORRUPT HEADER 1109606706 2006-02-08 02:05:11


然后确定该数据文件的物理位置:

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 TABLESPACE USERS OFFLINE IMMEDIATE;


表空间已更改。

SQL> HOST COPY F:ORACLEBACKUPTEST20060207USERS01.DBF F:ORACLEORADATATESTUSERS01.DBF
SQL> RECOVER TABLESPACE USERS;


完成介质恢复。

SQL> ALTER TABLESPACE USERS ONLINE;


表空间已更改。

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




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