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

常用数据文件备份与恢复

常用数据文件备份与恢复
 
普通数据文件备份与恢复:
 
普通数据文件指 非 system表空间、udo表空间、临时表空间、只读表空间的文件。普通数据文件的恢复可用采用高可用恢复策略,
        即能够在OPEN状态下恢复。
        1、实例启动时,如果普通数据文件丢失、无法访问、头部损坏,只能启动到 mount 状态
        2、实例运行时,普通数据文件头损坏,在发生检查点之后,由于检查点无法在数据文件头部更新,此数据文件的状态在控制文件
               中会被自动设置为 离线,同时警告日志中会记录由于检查点失败导致该数据文件离线的记录。
        3、实例运行时,如果普通数据文件非头部数据块损坏,将导致需要访问受损数据块的命令失败,数据文件自身不会被自动 离线。
  
      备份的方式 同 关键性数据文件备份一样。       
      
      恢复普通数据文件的核心步骤: 令损坏的数据文件 离线、从备份还原(report 或switch)、使用增量备份或重做日志恢复(recovery),
                                                            最后令数据文件 上线。普通数据文件的恢复 既可以在 mount 状态下恢复 又可以在 open 状态下恢复。
                                                            
       非数据文件头部损坏修复:低可用恢复策略(mount)、高可用恢复策略(open)
       低可用恢复策略:
       1、使用 shutdown abort 关闭实例
       2、使用 startup mount 进入 MOUNT状态
       3、用 restore  或  switch 命令 还原损坏的普通数据文件
       4、使用 recover database 命令 利用归档日志和在线日志恢复数据文件
       5、执行 alter database open  打开数据库,恢复完成。
       RUN
       {
        SHUTDOWN ABORT;
        STARTUP MOUNT;
        RESTORE DATAFILE 'PATH';
        RECOVER DATABASE;
        ALTER DATABASE OPEN;
       }
            
     高可用恢复策略:
     1、将数据文件 离线 alter database datafile 'path' offline;
     2、执行 restore 或 switch 命令还原受损坏的普通数据文件;
     3、执行 recover  tablespace 或 recover datafile 命令,利用归档日志和在线日志恢复数据文件;
     4、执行 alter database datafile 'path' online ;将已恢复完成的数据文件上线,恢复完成。
     run
     {
     sql 'alter database datafile 5 offline';
     restore datafile 5;
     recover datafile 5;
     sql 'alter database datafile 5 online';
     }
     如果实例已停止 则
     run
     {
     startup  mount;
     sql 'alter database datafile 5 offline';
     alter database open;
     restore datafile 5;
     recover datafile 5;
     sql 'alter database datafile 5 on line';
     }

    文件头部损坏后的恢复
    
        数据文件头部损坏后的恢复步骤为:在低可用恢复策略与 高可用恢复策略的基础上,再根据相关数据文件是否已下线
        而进行恢复。 未下线 低可用恢复策略、已下线低可用恢复策略与高可用恢复策略。
        
        未下线低可用恢复策略的步骤:
            1、使用 shutdown abort 关闭实例
            2、使用 startup mount 启动到 mount 状态;
            3、执行 restore  或 switch 命令还原损坏的普通数据文件
            4、执行 recover database 命令利用归档日志和在线日志恢复数据文件;
            5、执行 alter database open 命令打开数据,恢复完成
            RUN
            {
            shutdown abort;
            startup mount;
            restore datafile 5;
            recover datafile 5;
            alter database open;
            }
            
        已下线低可用恢复策略步骤
        1、使用 shutdown abort 关闭实例
        2、执行 startup mount 命令将实例带入 mount 状态
        3、执行 alter database datafile 'path' online 命令将数据文件在控制文件中的状态修改为 上线
        4、执行 restore  或 switch 命令还原损坏的普通数据文件
        5、执行 recover database 利用归档日志和在线日志恢复数据文件
        6、执行 alter database open 打开数据,恢复完成
        run
        {
            shutdown abort;
            startup mount;
            alter database datafile 5 online;
            restore datafile 5;
            recover database;
            alter database open;
            }
            
       高可用恢复策略 需要首先删除头部损坏的数据文件才可做 restore 操作。恢复步骤为:
       1、删除头部损坏的数据文件;
       2、若实例已停止,使用 startup mount 将实例带到mount 状态。如果数据处在 OPEN 状态则忽略该过程。
       3、使用 alter database  命令将损坏的数据文件 下线(offline)
       4、如果实例已停止,并用 startup mount 带到了mount 状态,使用 alter database open 打开数据。否则忽略该过程
       5、执行 restore 或 switch 命令还原损坏的普通数据文件;
       6、执行 recover tablespace 或 recover datafile 命令,利用归档日志和在线日志恢复数据文件;
       7、执行 alter database 命令将完成恢复的数据文件重新上线,恢复完成
       实例未停止
       删除 受损坏的数据文件( rm /'path')
       run
       {
        sql 'alter database datafile 5 offline';
        restore datafile 5;
        recover datafile 5;
        sql 'alter database datafile 5 online';
        )
        实例已停止
        删除 受损坏的数据文件( rm /'path')
        run
        {
        startup mount;
        sql 'atler database datafile 5 offline';
        alter database open;
        restore datafile 5 ;
        recover datafile 5;
        sql 'alter database datafile 5 online';
        }
       



只读数据文件备份与恢复
    
    只读数据文件是只读表空间的数据文件。
    备份:
        备份只读数据文件方式 和备份其他数据文件的方式一样。
        
     恢复:
     由于只读文件没有 “写(更改)”的操作,所有就不用归档日志和重做日志恢复了。只需 还原即可。
      在MOUNT状态下的 低可用恢复策略的恢复 步骤:
     1、执行 startup mount 进入 MOUNT 状态
     2、执行 restore 或 switch 命令还原数据文件
     3、执行 alter database open 命令打开数据库,恢复完成

     在OPEN状态下的高可用恢复策略的恢复步骤:
     1、执行 alter database 命令让受损坏的只读数据文件下线
     2、执行 restore force  或 switch 命令还原数据文件
     3、执行 alter database datafile 5 online 命令使数据文件上线。
     
   低可用恢复 需要 参数文件和控制文件必须就位。 高可用恢复 还需要关键数据库文件必须就位。
   
   控制文件无损情况下的恢复
    指:只读数据文件损坏时控制文件没有损坏。
    ---如果数据块损坏,通道认为只读数据文件还存在,无须还原,这时必须用 restore datafile  5 force命令还原
    run
    {sql 'alter databae datafile 5 offline';
    restore datafile 5 force;
    sql' alter database datafile 5 online';
    }
    使用镜像复制就不必使用 force关键字
    run
    {
        sql' alter database datafile 5 offline';
        switch datafile 5 to datafilecopy 'path';
        sql' alter database datafile 5 online';
    }
    
  控制文件损坏情况下的恢复
    指:只读数据文件与控制文件一并损坏时的恢复。其恢复步骤包括 恢复控制文件与只读数据文件
    1、将数据库启动至 NOMOUNT状态
    2、用 restore 命令还原控制文件
    3、将数据库启动到 MOUNT 状态
    4、用 restore 命令还原只读数据文件
    5、用 recover 命令恢复整个数据
    6、用 resetlogs 方式打开数据库
    run
    {
        restore controlfile from autobackup;
        mount database;
        restore datafile 5;
        recover database;
        ---如果只读数据文件改为 读写状态后,没有备份,这时数据文件和控制文件都损坏,则需再加一次 recover databae,否则不需要
        recover database;
          ---如果只读数据文件改为 读写状态后,没有备份,这时数据文件和控制文件都损坏,则需再加一次 recover databae
        alter database open resetlogs;
    }

 


CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,