当前位置:  数据库>oracle

Oracle联机日志恢复案例

    来源: 互联网  发布时间:2017-05-24

    本文导语: 案例一:在多路化的日志成员中,单个成员丢失 这种情况很好解决,只需将没损坏的联机日志拷贝到那个坏的日志去就行。 案例二:非current的联机日志所有成员丢失 模拟环境: 1.查看联机日志状态信息 sys@SIQIAN11>select group#,sequ...

案例一:在多路化的日志成员中,单个成员丢失

这种情况很好解决,只需将没损坏的联机日志拷贝到那个坏的日志去就行。

案例二:非current的联机日志所有成员丢失

模拟环境:

1.查看联机日志状态信息

sys@SIQIAN11>select group#,sequence#,archived,status from v$log;

        1          4 NO  CURRENT

        2          2 YES INACTIVE

        3          3 YES INACTIVE

sys@SIQIAN11>select member from v$logfile;

/u01/oradata/siqian11g/redo01.log

/u01/oradata/siqian11g/redo03.log

/u01/oradata/siqian11g/redo02.log

2.关闭数据库并删除非当前联机日志

shutdown immediate

[Oracle@siqian siqian11g]$ rm -f /u01/oradata/siqian11g/redo02.log

3.启动数据库并查看出错信息

ORA-00313: open failed for members of log group 2 of thread 1

ORA-00312: online log 2 thread 1: '/u01/oradata/siqian11g/redo02.log'

4.清理第二组日志

sys@SIQIAN11>alter database clear logfile group 2;

5.打开数据库

alter database open;

案例三:current的联机日志所有成员丢失

模拟环境:

1.查看联机日志状态信息

sys@SIQIAN11>select group#,sequence#,archived,status from v$log;

    GROUP#  SEQUENCE# ARC STATUS

-------------------- --- ----------------

        1          7 NO  CURRENT

        2          5 YES INACTIVE

        3          6 YES ACTIVE

2.关闭数据库并删除所有第一组的联机日志

shutdown immediate

[oracle@siqian siqian11g]$ rm -f redo01.log

3.启动数据库并查看错误信息

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/oradata/siqian11g/redo01.log'

4.尝试用上面的方法清理第一组日志

sys@SIQIAN11>alter database clear logfile group 1;

alter database clear logfile group 1

*

ERROR at line 1:

ORA-00350: log 1 of instance siqian11g (thread 1) needs to be archived

ORA-00312: online log 1 thread 1: '/u01/oradata/siqian11g/redo01.log'

5.不完全恢复数据库

sys@SIQIAN11>recover database until cancel;

Media recovery complete.

6.以resetlogs方式打开数据库

sys@SIQIAN11>alter database open resetlogs;

7.冷备

案例四:数据文件和当前日志组全部丢失

模拟环境:

1.查看当前日志信息

sys@SIQIAN11>select group#,sequence#,archived,status from v$log;

    GROUP#  SEQUENCE# ARC STATUS

-------------------- --- ----------------

        1          7 YES ACTIVE

        2          8 YES ACTIVE

        3          9 NO  CURRENT

2.用test用户登录并向t01表加若干数据

test@SIQIAN11>select count(*) from t01;

  COUNT(*)

----------

       10

test@SIQIAN11>begin

  2  for i in 11..15

  3  loop

  4  insert into t01 values(i);

  5  end loop;

  6  end;

  7  /

PL/SQL procedure successfully completed.

commit;

test@SIQIAN11>select count(*) from t01;

  COUNT(*)

----------

        15

3.关闭数据库并删除数据文件与当前日志文件

shutdown immediate

[oracle@siqian siqian11g]$ rm -f redo03.log

[oracle@siqian siqian11g]$ rm -f *.dbf

4.启动数据库并查看出错信息

startup

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

ORA-01110: data file 1: '/u01/oradata/siqian11g/system01.dbf'

sys@SIQIAN11>select file#,error from v$recover_file;

    FILE# ERROR

---------------------------------------------------------------------------

        1 FILE NOT FOUND

        2 FILE NOT FOUND

        3 FILE NOT FOUND

        4 FILE NOT FOUND

        5 FILE NOT FOUND

        6 FILE NOT FOUND

        7 FILE NOT FOUND

        8 FILE NOT FOUND

 

8 rows selected.

5.还原数据文件

[oracle@siqian siqian11g]$ cp /backup/cold/ *.dbf /u01/oradata/siqian11g/

6.查看控制文件和数据文件中的SCN信息

sys@SIQIAN11>select file#,checkpoint_change# from v$datafile;

    FILE# CHECKPOINT_CHANGE#

----------------------------

        1            2267395

        2            2267395

        3            2267395

        4            2267395

         5           2267395

        6            2267395

        7            2267395

        8            2267395

8 rows selected.

sys@SIQIAN11>select file#,checkpoint_change# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#

----------------------------

        1            2266285

        2            2266285

        3            2266285

        4            2266285

        5            2266285

        6            2266285

        7            2266285

        8            2266285

 

8 rows selected.

发现控制文件中的SCN号比较新,因为数据文件是从冷备那边拷贝来的。

7.尝试恢复数据库

sys@SIQIAN11>recover database;

ORA-00283: recovery session canceled due to errors

ORA-00313: open failed for members of log group 3 of thread 1

ORA-00312: online log 3 thread 1: '/u01/oradata/siqian11g/redo03.log'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

刚才把当前的日志删除了,所以找不到日志来恢复

8.用until cancel方式来恢复数据库

sys@SIQIAN11>recover database until cancel;

ORA-00279: change 2266772 generated at 06/30/2013 10:14:43 needed for thread 1

ORA-00289: suggestion : /backup/arch/arch_1_819452646_9.log

ORA-00280: change 2266772 for thread 1 is in sequence #9

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log '/backup/arch/arch_1_819452646_9.log'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

查看当前日志信息

sys@SIQIAN11>select group#,sequence#,archived,status from v$log;

    GROUP#  SEQUENCE# ARC STATUS

-------------------- --- ----------------

        1          7 YES INACTIVE

        3          9 NO  CURRENT

        2          8 YES INACTIVE

9.通过基于cancel的不完全恢复来恢复数据库

sys@SIQIAN11>recover database until cancel;

ORA-00279: change 2266772 generated at 06/30/2013 10:14:43 needed for thread 1

ORA-00289: suggestion : /backup/arch/arch_1_819452646_9.log

ORA-00280: change 2266772 for thread 1 is in sequence #9

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel

Media recovery cancelled.

10.以resetlogs方式打开数据库

sys@SIQIAN11>alter database open resetlogs;

11.验证

test@SIQIAN11>select count(*) from t01;

  COUNT(*)

----------

        10

可见只能恢复到上一次归档的模样。

12.冷备


    
 
 

您可能感兴趣的文章:

  • oracle联机数据库备份详解
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  • Oracle数据库备份恢复最佳实践
  • oracle如何恢复被覆盖的存储过程
  • rman恢复方案和oracle异机恢复
  • sqlserver iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 浅析基于Oracle案例知识库设计
  • oracle使用sql脚本生成csv文件案例学习
  • Oracle案例:分析10053跟踪文件
  • Linux下Oracle常见安装错误总结及参考案例
  • Oracle PL/SQL入门案例实践
  • oracle—SQL技巧之(一)连续记录查询sql案例测试
  • Oracle案例详细分析:Job任务停止执行
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,