ORA-01113: file 8 needs media recovery【数据文件的OFFLINE操作造成】
来源:互联网 发布:河南省大数据谷是哪里 编辑:程序博客网 时间:2024/06/02 23:42
在让一个数据文件上线的时候,突然报错:“ORA-01113: file 8 needs media recovery”
SQL> alter database datafile 'D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF' online;alter database datafile 'D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF' online*ERROR at line 1:ORA-01113: file 8 needs media recoveryORA-01110: data file 8: 'D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF'
一、修复过程:
第一步:启动RMAN,同时连接恢复目录和目标数据库
SQL> host rmanRecovery Manager: Release 11.2.0.1.0 - Production on Mon Aug 19 21:59:56 2013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.RMAN> connect catalog rman/123456@catalog;connected to recovery catalog databaseRMAN> connect target sys/123456@warehouse;connected to target database: WAREHOUS (DBID=4011143137)
第二步:分析
RMAN> list failure;starting full resync of recovery catalogfull resync completeList of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------782 HIGH OPEN 19-AUG-13 One or more non-system datafiles need media recoveryRMAN> advise failure;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------782 HIGH OPEN 19-AUG-13 One or more non-system datafiles need media recoveryanalyzing automatic repair options; this may take some timeallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=140 device type=DISKanalyzing automatic repair options completeMandatory Manual Actions========================no manual actions availableOptional Manual Actions=======================1. If you restored the wrong version of data file D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF, then replace it with the correct oneAutomated Repair Options========================Option Repair Description------ ------------------1 Recover datafile 8 Strategy: The repair includes complete media recovery with no data loss Repair script: d:\app\asus\diag\rdbms\warehouse\warehouse\hm\reco_32960388.hmstarting full resync of recovery catalogfull resync complete
第三步,修复数据文件
RMAN> run2> {3> sql 'alter database datafile 8 offline';4> recover datafile 8;5> sql 'alter database datafile 8 online';6> }
另外,还可以使用SQL语句来进行修复:
SQL>alter database datafile 8 offline;SQL>alter database recover datafile 8;SQL>alter database datafile 8 online;
二、原因分析
查了一下oracle的技术文档,造成该数据文件进行物理修复的原因,是之前的offline操作造成的。因为,如果进行OFFLINE操作的时候数据库是处于OPEN状态的话,该操作进行的时候不会发出检查点,也就是说不会把该数据文件在内存中可能存在的脏数据块刷新到物理文件中。所以,下次把该数据文件ONLINE的时候,必须进行物理修复。
另外,注意到了一个比较特别的情况,就是把该数据文件离线之后,该数据文件的状态不是OFFLINE,而是RECOVER。这个应该是修复的时候,为什么先执行:sql 'alter database datafile 8 offline';的原因吧。
SQL> select a.file#,b.name ,a.status from v$datafile a,v$tablespace b where a.ts#=b.ts# and b.name='TEST01'; FILE# NAME STATUS---------- ------------------------------ ------- 6 TEST01 ONLINE 8 TEST01 RECOVER
三、拓展
另外,alter tablespace ...offline的时候,也有可能出现类似的问题。
alter tablespace ....offline有三种选项:normal,temporary,immediate
normal:让表空间offline之前会发出检查点,刷新所有属于该表空间但还在内存中的脏数据块到物理文件中。之后的ONLINE操作不需要进行物理恢复。此为,默认设置。
temporary:对所有的online数据文件发出检查点,注意不包括OFFLINE的数据文件,因此,OFFLINE的数据文件在之后表空间被ONLINE或自身ONLINE之前,必须先进行物理修复。这也是数据文件OFFLINE操作的时候没有发出检查点的原因。
immediate:不发出检查点,之后online的时候必须进行物理修复。
需要注意的是,如果表空间已经数据文件offline,则就不能使用normal方式让表空间离线了,只能使用temporary或immediate.否则会报错:
SQL> alter tablespace test01 offline normal;alter tablespace test01 offline normal*ERROR at line 1:ORA-01191: file 8 is already offline - cannot do a normal offlineORA-01110: data file 8: 'D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF'下面,以immediate介绍其恢复过程:
SQL> alter tablespace test01 offline immediate;Tablespace altered.SQL> alter tablespace test01 online;alter tablespace test01 online*ERROR at line 1:ORA-01113: file 6 needs media recoveryORA-01110: data file 6: 'D:\APP\ASUS\ORADATA\WAREHOUSE\TEST01.DBF'SQL> select a.file#,b.name ,a.status from v$datafile a,v$tablespace b where a.ts#=b.ts# and b.name='TEST01'; FILE# NAME STATUS---------- ------------------------------ ------- 6 TEST01 RECOVER 8 TEST01 RECOVERSQL> select tablespace_name ,status from dba_tablespaces where tablespace_name='TEST01';TABLESPACE_NAME STATUS------------------------------ ---------TEST01 OFFLINESQL> host rmanRecovery Manager: Release 11.2.0.1.0 - Production on Mon Aug 19 23:31:39 2013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.RMAN> connect catalog rman/123456@catalog;connected to recovery catalog databaseRMAN> connect target sys/123456@warehouse;connected to target database: WAREHOUS (DBID=4011143137)RMAN> list failure;starting full resync of recovery catalogfull resync completeList of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------782 HIGH OPEN 19-AUG-13 One or more non-system datafiles need media recovery939 HIGH OPEN 19-AUG-13 Tablespace 7: 'TEST01' is offlineRMAN> advise failure;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------782 HIGH OPEN 19-AUG-13 One or more non-system datafiles need media recovery939 HIGH OPEN 19-AUG-13 Tablespace 7: 'TEST01' is offlineanalyzing automatic repair options; this may take some timeallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=148 device type=DISKanalyzing automatic repair options completeNot all specified failures can currently be repaired.The following failures must be repaired before advise for others can be given.Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------782 HIGH OPEN 19-AUG-13 One or more non-system datafiles need media recoveryMandatory Manual Actions========================no manual actions availableOptional Manual Actions=======================1. If you restored the wrong version of data file D:\APP\ASUS\ORADATA\WAREHOUSE\TEST03.DBF, then replace it with the correct one2. If you restored the wrong version of data file D:\APP\ASUS\ORADATA\WAREHOUSE\TEST01.DBF, then replace it with the correct oneAutomated Repair Options========================Option Repair Description------ ------------------1 Recover datafile 8; Recover datafile 6 Strategy: The repair includes complete media recovery with no data loss Repair script: d:\app\asus\diag\rdbms\warehouse\warehouse\hm\reco_3771496276.hmSQL> alter database recover tablespace test01;Database altered.SQL> select tablespace_name ,status from dba_tablespaces where tablespace_name='TEST01';TABLESPACE_NAME STATUS------------------------------ ---------TEST01 OFFLINESQL> alter tablespace test01 online;Tablespace altered.
- ORA-01113: file 8 needs media recovery【数据文件的OFFLINE操作造成】
- ORA-01113: file 2 needs media recovery
- ORA-01113: file 7 needs media recovery
- ORA-01113: file 7 needs media recovery
- ORA-01113: file 1 needs media recovery
- 【Vegas原创】ORA-01113: file 1 needs media recovery解决
- 【Vegas原创】ORA-01113: file 1 needs media recovery解决
- 【Oracle问题集2】ORA-01113: file 7 needs media recovery
- ORA-01145: offline immediate disallowed unless media recovery enabled问题解决
- ORA-01194: file 1 needs more recovery to be consistent
- ORA-01196: file 1 is inconsistent due to a failed media recovery session
- Crash Recovery 和 Media Recovery 的区别
- Crash Recovery 和 Media Recovery 的区别
- 表空间offline,数据文件offline 的区别(转载)
- 表空间offline,数据文件offline 的区别(转载)
- 采用offline的方式更改数据文件位置
- 非归档数据文件offline的恢复
- 测试使数据文件offline的情景
- 黑马程序员——基本数据类型对象包装类
- qDebug调试基本应用
- 自动化测试管理平台ATMS(V2.0.2_8.19)下载
- linux内存管理浅析
- Nginx-ngx_list
- ORA-01113: file 8 needs media recovery【数据文件的OFFLINE操作造成】
- NYOJ 题目119 士兵杀敌(三)(线段树,区间最值)
- CSS实例(六):实现网页固定大小三态图形按钮简单方法
- 三周C# 总结4 函数
- Java集合类详解
- hibernate hbm.xml 配置文件中的主键生成策略
- winsocket 之收发数据出问题
- JS微信打飞机游戏(四)
- C#中使Label控件中的文字实现从左到右滚动效果