当前位置:  数据库>oracle

Oracle 日志文件和控制文件损坏的恢复

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

    本文导语: Oracle日志文件和控制文件损坏的恢复: 恢复步骤: 1.加入_allow_resetlogs_corruption=true,_corrupted_rollback_segments=true,_offline_rollback_segments=true,启动到nomount 2.利用控制文件的备份,进行脚本重建,由于current状态redo损坏,所以要reset...

Oracle日志文件和控制文件损坏的恢复:
 
恢复步骤:
 
1.加入_allow_resetlogs_corruption=true,_corrupted_rollback_segments=true,_offline_rollback_segments=true,启动到nomount
 
2.利用控制文件的备份,进行脚本重建,由于current状态redo损坏,所以要resetlogs重建
 
3.重建后通过alter database open resetlogs;打开数据库,这种情况会丢失在redo中相关事务的数据
 

 

备份控制文件并模拟故障:
 
SQL> set linesize 150
 
SQL> alter database backup controlfile to trace as '/home/oracle/ctl.ctl' reuse;
 
Database altered.
 
SQL> insert into tb1 values (1);
 
1 row created.
 
SQL> COMMIT;
 
Commit complete.
 
SQL> select * from v$log;
 

 

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIME
 
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
 
        1          1          1  536870912          1 YES INACTIVE            1.2269E+11 2013-05-03 16:08:03
 
        2          1          2  536870912          1 YES INACTIVE            1.2269E+11 2013-05-03 16:23:48
 
        3          1          3  536870912          1 NO  CURRENT            1.2269E+11 2013-05-11 07:26:45
 
        4          1          0  536870912          1 YES UNUSED                      0
 
        5          1          0  536870912          1 YES UNUSED                      0
 
SQL> shutdown abort;       
 
oracle@readerlogdb-> rm -f redo03.log
 
oracle@readerlogdb-> rm -f control01.ctl control02.ctl control03.ctl
 

 

通过加入相关参数启动到nomount状态:
 
SQL> conn /as sysdba
 
Connected to an idle instance.
 
SQL> startup;
 
ORACLE instance started.
 
Total System Global Area 5049942016 bytes
 
Fixed Size                  2090880 bytes
 
Variable Size            1375733888 bytes
 
Database Buffers        3657433088 bytes
 
Redo Buffers              14684160 bytes
 
ORA-00205: error in identifying control file, check alert log for more info
 

 

SQL> create pfile='/home/oracle/pfile.ora' from spfile;
 
在备份的pfile中加入以下三行:
 
*._allow_resetlogs_corruption=true
 
*._corrupted_rollback_segments=true
 
*._offline_rollback_segments=true
 

 

NORESETLOGS和RESETLOGS在此实验中的区别:
 
SQL>CREATE CONTROLFILE REUSE DATABASE "SKYREAD" NORESETLOGS FORCE LOGGING ARCHIVELOG
 
    MAXLOGFILES 20
 
    MAXLOGMEMBERS 5
 
    MAXDATAFILES 1000
 
    MAXINSTANCES 8
 
    MAXLOGHISTORY 2337
 
LOGFILE
 
  GROUP 1 '/database/oradata/skyread/redo01.log'  SIZE 512M,
 
  GROUP 2 '/database/oradata/skyread/redo02.log'  SIZE 512M,
 
  GROUP 3 '/database/oradata/skyread/redo03.log'  SIZE 512M,
 
  GROUP 4 '/database/oradata/skyread/redo04.log'  SIZE 512M,
 
  GROUP 5 '/database/oradata/skyread/redo05.log'  SIZE 512M
 
DATAFILE
 
  '/database/oradata/skyread/system01.dbf',
 
  '/database/oradata/skyread/tbs_test.dbf',
 
  '/database/oradata/skyread/sysaux01.dbf',
 
  '/database/oradata/skyread/users01.dbf',
 
  '/database2/oradata/skyread/TBS_MRPMUSIC01.dbf',
 
  '/database/oradata/skyread/sf01.dbf',
 
  '/database2/oradata/skyread/undotbs02'
 
CHARACTER SET UTF8;
 

 

CREATE CONTROLFILE REUSE DATABASE "SKYREAD" NORESETLOGS FORCE LOGGING ARCHIVELOG
 
*
 
ERROR at line 1:
 
ORA-01503: CREATE CONTROLFILE failed
 
ORA-01565: error in identifying file '/database/oradata/skyread/redo03.log'
 
ORA-27037: unable to obtain file status
 
Linux-x86_64 Error: 2: No such file or directory
 
Additional information: 3
 

 

SQL>CREATE CONTROLFILE REUSE DATABASE "SKYREAD" RESETLOGS FORCE LOGGING ARCHIVELOG
 
    MAXLOGFILES 20
 
    MAXLOGMEMBERS 5
 
    MAXDATAFILES 1000
 
    MAXINSTANCES 8
 
    MAXLOGHISTORY 2337
 
LOGFILE
 
  GROUP 1 '/database/oradata/skyread/redo01.log'  SIZE 512M,
 
  GROUP 2 '/database/oradata/skyread/redo02.log'  SIZE 512M,
 
  GROUP 3 '/database/oradata/skyread/redo03.log'  SIZE 512M,
 
  GROUP 4 '/database/oradata/skyread/redo04.log'  SIZE 512M,
 
  GROUP 5 '/database/oradata/skyread/redo05.log'  SIZE 512M
 
DATAFILE
 
  '/database/oradata/skyread/system01.dbf',
 
  '/database/oradata/skyread/tbs_test.dbf',
 
  '/database/oradata/skyread/sysaux01.dbf',
 
  '/database/oradata/skyread/users01.dbf',
 
  '/database2/oradata/skyread/TBS_MRPMUSIC01.dbf',
 
  '/database/oradata/skyread/sf01.dbf',
 
  '/database2/oradata/skyread/undotbs02'
 
CHARACTER SET UTF8;
 

 

重建控制文件后,重置日志打开数据库,但是丢失之前插入的数据:
 
SQL> alter database open resetlogs;
 
Database altered.
 
SQL> select * from tb1;
 
此时tb1的表中插入的1不存在


    
 
 

您可能感兴趣的文章:

  • Linux平台下Oracle 密码文件重建
  • Oracle数据库访问参数文件的顺序
  • Oracle 对数据文件大小的限制
  • Oracle移动数据文件到新分区步骤分析
  • 在jsp文件中怎么设置oracle的路径:很简单的,只是因为我不会;
  • Oracle的spfile参数文件
  • linux下通过对文件读取方式查询oracle的版本信息
  • 求高手指点shell导入.dat文件到ORACLE数据库
  • jsp文件连接oracle失败
  • linux 安装 oracle 运行./runinstall 提示没有这个文件
  • oracle删除文件后数据库启动不了的处理方法
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • Oracle控制文件多元化处理
  • Oracle数据库逻辑备份的SH文件
  • 利用多个转储文件导出大量Oracle数据
  • 50分的题:如何给oracle减肥?在linux多目录的环境下查找体积最大的单个文件??
  • 用oracle pl/sql 从A unix机器,去读取B unix机器上的一个文件,怎么实现?
  • 读取oracle数据库表写文件慢
  • 如何向oracle中写入一个大文件?谢谢!
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • Oracle中修复数据块的损坏
  • Oracle重做日志文件损坏或丢失后的恢复
  • [Oracle] 解析在没有备份的情况下undo损坏怎么办
  • Oracle中模拟及修复数据块损坏
  • Oracle控制文件的损坏或完全丢失的恢复办法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 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如何恢复被覆盖的存储过程
  • javascript开源软件 iis7站长之家
  • oracle数据库创建备份与恢复脚本整理
  • ORACLE 数据库RMAN备份恢复
  • 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,