当前位置:  数据库>oracle

Oracle 文件损坏及恢复的过程

    来源: 互联网  发布时间:2017-04-16

    本文导语: 一、基本情况     OS:RHEL 3     CPU:4个Intel(R) Xeon(TM) MP CPU 2.70GHz     Mem:8G     Swap:16G     Disk:120G     Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 二、备份方式     数据库以archive模式运行,RMAN多级增量备份。策略如...

一、基本情况

    OS:RHEL 3

    CPU:4个Intel(R) Xeon(TM) MP CPU 2.70GHz

    Mem:8G

    Swap:16G

    Disk:120G

    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0

二、备份方式

    数据库以archive模式运行,RMAN多级增量备份。策略如下:

    设置控制文件自动备份。

    每三个月做一个数据库的全备份(包括所有得数据库和只读表空间),并备份归档日志。

    每一个月做一次零级备份(不包含只读表空间),并备份归档日志。

    每周做一次一级备份,并备份归档日志。

    每天做一次二级备份,并备份归档日志。

 

三、 恢复案例

    所有恢复的前提:已经做过数据库全备份(包括归档日志),控制文件和spfile自动备份。

1. 损坏一个数据文件

    (1)故障模拟

        删除数据文件:rm /u02/oradata/dbnms/users01.dbf

        关闭数据库:shutdown immediate;

        ORA-01116: error in opening database file 4

        ORA-01110: data file 4: '/u02/oradata/dbnms/users01.dbf'

        ORA-27041: unable to open file

        Linux Error: 2: No such file or directory

        Additional information: 3

        强行关闭:sutdown abort;

        启动数据库:startup;

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

        ORA-01110: data file 4: '/u02/oradata/dbnms/users01.dbf'

    (2)恢复步骤

        rman target sys@dbnms catalog rmanuser@cata

        run{

            allocate channel c1 type disk;

            restore datafile 4;

            recover datafile 4;

            sql 'alter database datafile 4 online';

            sql 'alter database open';

            release channel c1;

            }

        sqlplus sys as sysdba

        select instance_name,status from v$instance;

        INSTANCE_NAME STATUS

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

        dbnms OPEN

恢复成功

如果:数据空间没有备份,又要强行启动数据库

Sql> shutdown immediate;

Sql>startup mount;

Sql>alter database datafile '/oradata/test.dbf'' offline drop;

Sql>alter database open;

2. 损坏全部数据文件

    (1)故障模拟

        删除数据文件:rm /u02/oradata/dbnms/*.dbf

        强行关闭:sutdown abort;

        启动数据库:startup;

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

        ORA-01110: data file 1: '/u02/oradata/dbnms/system01.dbf'

    (2)恢复步骤

        rman target sys@dbnms catalog rmanuser@cata

        run{

            allocate channel c1 type disk;

            restore database;

            recover database;

            sql 'alter database open';

            release channel c1;

            }

        sqlplus sys as sysdba

        select instance_name,status from v$instance;

        INSTANCE_NAME STATUS

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

        dbnms OPEN

        恢复临时文件:

        alter database tempfile '/u02/oradata/dbnms/temp01.dbf' drop;

        alter tablespace temp add tempfile '/u02/oradata/dbnms/temp01.dbf' size 50M autoextend on next 5M maxsize unlimited;

恢复成功

3. 损坏非当前联机日志成员

    (1)故障模拟

         删除日志文件:rm /u02/oradata/dbnms/redo01.log

        关闭数据库:shutdown immediate;

        启动数据库:startup;

        select * from v$logfile;--可以考虑从v$log视图中去查找

        GROUP# STATUS TYPE MEMBER IS_

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

        3 ONLINE /u02/oradata/dbnms/redo03.log NO

        2 STALE ONLINE /u02/oradata/dbnms/redo02.log NO

        1 INVALID ONLINE /u02/oradata/dbnms/redo01.log NO

        1 STALE ONLINE /u02/oradata/dbnms/redo11.log NO

        1 STALE ONLINE /u02/oradata/dbnms/redo21.log NO

        2 STALE ONLINE /u02/oradata/dbnms/redo12.log NO

        3 ONLINE /u02/oradata/dbnms/redo13.log NO

        2 STALE ONLINE /u02/oradata/dbnms/redo22.log NO

        3 ONLINE /u02/oradata/dbnms/redo23.log NO

        4 ONLINE /u02/oradata/dbnms/redo31.log NO

        4 ONLINE /u02/oradata/dbnms/redo32.log NO

        GROUP# STATUS TYPE MEMBER IS_

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

        4 ONLINE /u02/oradata/dbnms/redo33.log NO

    (2)恢复步骤

        alter database drop logfile member '/u02/oradata/dbnms/redo01.log';

        alter database add logfile member '/u02/oradata/dbnms/redo01.log' to group 1;

恢复成功


    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • oracle分页存储过程 oracle存储过程实例
  • shell调用oracle储存过程,怎么判断储存过程执行结果是否正确
  • Oracle存储过程调试简述
  • Oracle事务!使用游标提交过程
  • oracle sql执行过程(流程图)
  • oracle的存储过程实例讲解
  • Oracle存储过程如何返回一个结果集&如何获取
  • oracle 10g在红旗桌面版6.2的安装过程
  • 操作系统 iis7站长之家
  • Oracle建表过程初学
  • 关于SHELL调用oracle存储过程出现的一个小问题
  • oracle数据库中查看系统存储过程的方法
  • Oracle利用存储过程造数据
  • 求教:shell 脚本怎么获取ORACLE存储过程的返回值?
  • Oracle Enterprise Linux安装过程
  • Oracle创建用户权限的过程
  • Linux主机下配置Oracle 10G自动启动过程记
  • java调oracle过程的出了问题,求助!帮忙看看
  • 急!!!linux9下安装oracle9i在configuration Tool过程出现错误,在线等待,解决立即给分!
  • UNIX服务器上使用“kill"命令终止"Oracle”过程
  • 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网格技术介绍


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3