实验前提:已经做好备份。

SQL>

col file_name for a50
select file_id,file_name from dba_data_files;
FILE_ID FILE_NAME
---------- --------------------------------------------------
4 /home/oracle/app/oradata/orcl/users01.dbf
2 /home/oracle/app/oradata/orcl/sysaux01.dbf
1 /home/oracle/app/oradata/orcl/system01.dbf
5 /home/oracle/app/oradata/orcl/tbtb01.dbf
6 /home/oracle/app/oradata/orcl/ogg01.dbf
7 /home/oracle/app/oradata/andy01.dbf
8 /home/oracle/app/oradata/orcl/bbb.dbf
9 /home/oracle/app/oradata/orcl/andy02.dbf
10 /home/oracle/app/oradata/orcl/andy03.dbf
11 /home/oracle/app/oradata/orcl/tts01.dbf
12 /home/oracle/app/oradata/orcl/ttsind01.dbf
FILE_ID FILE_NAME
---------- --------------------------------------------------
13 /home/oracle/app/oradata/orcl/fda01.dbf
14 /home/oracle/app/oradata/orcl/fda02.dbf
15 /home/oracle/app/oradata/orcl/undotbs02.dbf
14 rows selected.

--模拟数据文件损坏
[oracle@11g ~]$ mv /home/oracle/app/oradata/orcl/andy02.dbf /home/oracle/app/oradata/orcl/andy02.dbf.bak
SQL> alter system checkpoint;
alter system checkpoint
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 2432
Session ID: 1 Serial number: 5
-- 查看报错信息
[oracle@11g trace]$ cat alert_orcl.log |grep ORA-
ORA-01116: error in opening database file 9
ORA-01110: data file 9: '/home/oracle/app/oradata/orcl/andy02.dbf'
ORA-27041: unable to open file
ORA-63999: data file suffered media failure

SQL> startup mount;
SQL> set lin 400
SQL> col error for a40
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- ---------------------------------------- ---------- ---------
9 ONLINE ONLINE FILE NOT FOUND 0

--利用备份恢复
(如果数据文件损坏,发现及时,数据库没有宕机,则立刻offline对应文件,避免宕机。如果已经宕机,则可跳过offline)
RMAN> sql 'alter database datafile 9 offline';
RMAN> restore datafile 9;
RMAN> recover datafile 9;
RMAN> sql 'alter database datafile 9 online';
RMAN> alter database open;
database opened

补充:
在11.2.0.2之前,如果数据库运行在归档模式下,并且写错误发生在非SYSTEM表空间文件,则数据库会将发生错误的文件离线,在从11.2.0.2开始,数据库会Crash实例以替代Offline。注意:在非归档模式下或者SYSTEM遭受错误时,数据库会直接崩溃。
如果我们不想尝试这个新特性,可以通过将 _DATAFILE_WRITE_ERRORS_CRASH_INSTANCE 设置为FALSE来屏蔽该行为。
该参数是一个动态参数: alter system set "_datafile_write_errors_crash_instance"=false;

非系统数据文件损坏,rman备份恢复的更多相关文章

  1. Oracle RMAN备份恢复指导书

    目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库. ...

  2. MySQL实例多库某张表数据文件损坏导致xxx库无法访问故障恢复

    一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... ...

  3. MongoDB学习(三)数据导入导出及备份恢复

    这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...

  4. rman备份恢复命令之switch

    rman备份恢复命令之switch 一 switch 命令 1 switch命令用途 更新数据文件名为rman下镜像拷贝时指定的数据文件名 更新数据文件名为 set newname 命令指定的名字. ...

  5. Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法

    Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法 可能是误删文件导致在使用rman备份时候出现以下提示 RMAN-06169: could not read file hea ...

  6. rman备份/恢复

    全备脚本 cat rman_full.sh #!/bin/bash export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/pro ...

  7. (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  8. MDF文件损坏,如何恢复?(未解决)

    MDF文件损坏,如何恢复?MDF附加失败,数据库附加失败 1.附加时 2.用替换法设置后重建日志 (其实已经删掉日志了,确保操作之前没有日志,但是运行 alter database [test] Re ...

  9. apue学习笔记(第六章 系统数据文件和信息)

    UNIX系统的正常运作需要使用大量与系统有关的数据文件,例如,口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁使用的两个文件. 口令文件 UNIX系统口令文件包含如下字 ...

随机推荐

  1. spring;maven;github;ssm;分层;timestamp;mvn;

    [说明]本来还想今天可以基本搭建一个合适的ssm环境呢,结果发现,,太特么复杂了,网上的例子有好多,看了好多,下面的评论或多或少都有说自己运行产生问题的,搞的我也不敢好好下载运行 [说明]没办法,将目 ...

  2. [Catalan数]1086 栈、3112 二叉树计数、3134 Circle

    1086 栈 2003年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 栈是计算机中 ...

  3. mybatis相关

    1 namespace dao中使用namespace+id一起来完成对mapper中sql statement的调用. 2 关于resultMap和parameterType parameterTy ...

  4. CSS 布局实例系列(二)如何通过 CSS 实现一个左边固定宽度、右边自适应的两列布局

    最近在百度 IFE 训练营中看见的一道题目: 用两种不同的方法来实现一个两列布局,其中左侧部分宽度固定.右侧部分宽度随浏览器宽度的变化而自适应变化  个人总结出如下三种实现思路: 通过绝对定位实现 S ...

  5. LOJ#10064. 「一本通 3.1 例 1」黑暗城堡

    LOJ#10064. 「一本通 3.1 例 1」黑暗城堡 题目描述 你知道黑暗城堡有$N$个房间,$M$条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设$D_i$为如果 ...

  6. Cordova 教程 学习步骤-从零基础开始

    Cordova的技术交流新群

  7. 转。git 乌龟的使用安装

    TortoiseGit 简称 tgit, 中文名海龟Git. 海龟Git只支持神器 Windows 系统, 有一个前辈海龟SVN, TortoiseSVN和TortoiseGit都是非常优秀的开源的版 ...

  8. 批处理设置IP地址

    echo offecho 修改[本地连接]IP......netsh interface IP set address "本地连接" static 138.8.8.111 255. ...

  9. 常见数据挖掘算法的Map-Reduce策略(1)

           大数据这个名词是被炒得越来越火了,各种大数据技术层出不穷,做数据挖掘的也跟着火了一把,呵呵,现今机器学习算法常见的并行实现方式:MPI,Map-Reduce计算框架,GPU方面,grap ...

  10. 设置某个字段为null

    update 表名 set 字段名=null WHERE 条件如下例子 update dwtz set ggid=null WHERE name_of_invested_company='浙江海翔药业 ...