加快数据表空间恢复
2012-02-19 18:21
99 查看
在表空间进行恢复时,最耗时的就是往回复制备份文件的操作。为此可以把相应的表空间备份到一个本地硬盘上,在出问题的时候直接把相应表空间的位置重新指定到该备份上,然后用recover命令就Ok了,前提条件是数据库需运行在archivelog模式;
查看数据库是否运行在archivelog模式语句: archive log list
以下是一个在本地磁盘上恢复表空间的例子(在sqlplus中用sys用户操作):
首先查看实例中所有的数据文件及所在的位置 :
select file_id ,file_name, tablespace_name fromdba_data_files;
对相应表空间进行联机热备:
alter tablespace mdm begin backup;(如果数据库运行在noarchivelog模式就会出现ORA-01123错误)
用操作系统命令备份此表空间文件:
host copy e:\oracle\product\10.2.0\oradata\orcl\mdm.dbf d:\oracle\test_backup\;
结束热备:alter tablespace mdm end backup;
这时立即关闭数据库:shutdown immediate;
然后在操作系统中删除mdm表中间中的数据文件e:\oracle\product\10.2.0\oradata\orcl\mdm.dbf
接着启动数据库:startup;
这时在提示“数据库加载完毕”的情况下出现
"ora-01157”和 "ora-01110"错误(无法标示\锁定数据文件6 -请参阅dbwr跟踪文件......)
刚才数据库已经启动到mount状态了,在此状态下把错误提示中文件号为6的数据文件脱机:
alter database datafile 6 offline;
把数据库状态改为打开:alter database open;
查看数据文件号为6的是否处于脱机状态: select file#,name,status from v$datafile;
重新制定表空间的数据文件到刚才热备的文件:alter tablespace rename datafile
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\MDM.DBF' TO 'D:\ORACLE\TEST_BACKUP\MDM.DBF';
(注意,这里引号里的字符要大写)
然后对此文件进行恢复操作: recover datafile 6;
提示“完成介质恢复”。
最后把文件号为6的数据文件修改为联机:alter database datafile 6 online;
查看联机后的情况:select file#,name,status from v$datafile;
至此,搞定。
相关文章推荐
- 核心数据文件备份与恢复(system表空间数据文件)
- ArcSDE 8.1中空间数据的备份与恢复
- Oracle数据恢复:SYSTEM表空间的重要性
- db_file损坏恢复 之 用户表空间的数据文件损坏
- ORACLE 数据备份、恢复以及导入时表空间不存在的解决方案
- Oracle exp imp备份、恢复表空间数据步骤
- ArcSDE中空间数据的备份与恢复
- RMAN数据库恢复之恢复表空间和数据文件
- ArcSDE 8.1中空间数据的备份与恢复
- Oracle 备份、恢复表空间数据步骤
- ArcSDE 中空间数据的备份与恢复 [转载]
- 使用RMAN恢复全库、表空间、数据文件的方法总结
- oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)
- Oracle 备份、恢复表空间数据步骤
- 模拟工业场景:数据库的用户被删除掉了,表空间,数据文件都在的 能否恢复?
- ORACLE 恢复单个数据文件 非SYSTEM表空间或者撤销表空间
- 问题8:如何在应用表空间中的数据文件损坏或者丢失的情况下进行恢复?
- oracle 12c 多租户 pdb 恢复(单个pdb数据文件、非系统pdb表空间、整个pdb数据库)
- Oracle以TSPITR方式恢复表空间数据一例
- 表空间数据文件丢失的恢复