当前位置:操作系统 > Unix/Linux >>

核心数据文件备份与恢复(system表空间数据文件)

核心数据文件备份与恢复(system表空间数据文件)
 
关键性数据文件分为:SYSTEM表空间的数据文件 和  UNDO_TABLESPACE 撤销表空间的数据文件
   undo_tablespace 自动撤销表空间的数据文件可以通过查询参数 undo_tablespace 指向的撤销表空间。
   
   system 表空间的数据文件默认就是 1号数据文件,其内部保存的是 oracle数据库系统表即数据字典,是对数据库本身的
   描述,是数据库正常运行的基本保障。系统回滚段(以名为sys.system的撤销段)能够保存数据字典变更的撤销数据。也是
   1号数据文件的内容。
   system表空间 1号数据文件的损坏分为:数据文件丢失、文件头损坏、数据字典损坏、sys.system撤销段损坏。
   1、文件丢失或不能访问:启动oracle时只能讲实例带到mount状态
   2、文件头损坏:运行检查点发起后实例会崩溃,启动oracle时也只能带到mount状态。
   3、数据字段损坏:数据库内的对象定义系统、名称解析系统、用户账号系统、权限管理系统等基础设施将出现部分或全部崩溃。
   4、以名为 sys.system的撤销段损坏:如果实例在运行时sys.system 撤销段与 undo_tablespace 表空间撤销段同时损坏,实例运行的
                                                                DDL及对SYSTEM表空间内的任意DML 都将失败;在启动实例阶段SYS.SYSTEM撤销段头部损坏
                                                                实例被强行中断。 连NOMOUNT 状态也进不了,必须用 “startup mount” 才能进入MOUNT状态。
  
    在发生检查点时,若数据文件 或 撤销表空间数据文件头部损坏,实例会被强行中止。这也可作为判断该文件是否为关键数据文件的一个指标。
    但是 检查点CKPT进程不会因为普通文件头部损坏而中止实例。
    
    undo_tablespace 数据文件损坏
    udo数据文件是用来保存所有的变更类命令所产生的撤销数据。
    udo数据文件损坏分为 3种:
    1、udo数据文件丢失或不能访问,实例只能启动到 mount状态
    2、udo数据文件头部损坏,也只能启动到mount状态,运行检查点发起后实例崩溃。
    3、udo表空间某些撤销段损坏,DML命令可能失败;oracle启动时任意一个撤销段头部损坏,实例将被强制关闭,必须 startup mount才能
        进入 mount 状态。撤销段的拥有者是 SYS。实例启动时对撤销段损坏进行 零容忍,有一个撤销段损坏就崩溃。
        
  备份
        使用 BACKUP DATABASE、  backup tablespace  、  backup datafile  、backup as copy  数据文件镜像复制  都可以备份数据文件。
    
 恢复
        恢复的核心步骤是:将数据库进入到mount状态、从备份还原(即restore 或 switch命令)、使用增量备份或重做日志恢复(recovery)
                                          打开数据库。关键数据文件的恢复整个过程都是在 MOUNT状态下完成的。即不能在OPEN状态下进行恢复,也就是
                                          说 关键数据文件不可采用 高可用恢复策略。mount状态需要打开控制文件。
        
     恢复的流程为:
        1、如果实例在运行,则使用 shutdown  abort 关闭实例或 KILL 系统命令关闭实例;
        2、startup mount  ;进入到 MOUNT状态(即打开控制文件);
        3、使用RMAN 执行 restore  或  switch 命令还原损坏的关键数据文件;
        4、使用 recover database 命令利用归档日志和在线重做日志恢复数据文件;
        5、执行 alter  database   open  命令打开数据库,恢复完成。
        
        RUN
        {
            STARTUP  MOUNT;
            RESTORE TABLESPACE SPACE_NAME;
            RECOVER DATABASE;
            ALTER DATABASE OPEN;
        }

 

        当数据文件的镜像复制处于磁盘上时,使用 switch 命令取代restore命令将控制文件中的数据文件名立即换成镜像复制文件名,
            这样恢复的速度更快。 SWITCH命令的作用是将当前数据文件与镜像复制文件互换。
        STARTUP MOUNT;
        ---以下两步不是必须的
        LIST DATAFILECOPY ALL; 
        validate datafilecopy all;
        ---以上两步不是必须的    
        RUN
        {
            SWITCH DATAFILE 1 TO DATAFILECOPY 'PATH';
            RECOVER DATABASE;
            ALTER DATABASE OPEN;
        }

 


CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,