zoukankan      html  css  js  c++  java
  • 非系统数据文件损坏,rman备份恢复

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

    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;

  • 相关阅读:
    Leetcode 16.25 LRU缓存 哈希表与双向链表的组合
    Leetcode437 路径总和 III 双递归与前缀和
    leetcode 0404 二叉树检查平衡性 DFS
    Leetcode 1219 黄金矿工 暴力回溯
    Leetcode1218 最长定差子序列 哈希表优化DP
    Leetcode 91 解码方法
    Leetcode 129 求根到叶子节点数字之和 DFS优化
    Leetcode 125 验证回文串 双指针
    Docker安装Mysql记录
    vmware虚拟机---Liunx配置静态IP
  • 原文地址:https://www.cnblogs.com/andy6/p/6756404.html
Copyright © 2011-2022 走看看