zoukankan      html  css  js  c++  java
  • ORA01207:文件比控制文件更新 旧的控制文件

    根据oracle文档的解释:
    Cause: The control file change sequence number in the datafile is greater than the number in the control file. This implies that the wrong control file is being used. Note that repeatedly causing this error can make it stop happening without correcting the real problem. Every attempt to open the database will advance the control file change sequence number until it is great enough.
    Action: Use the current control file or do BACKUP CONTROLFILE RECOVERY to make the control file current. Be sure to follow all restrictions on doing a BACKUP CONTROLFILE RECOVERY.
    Solution:
    1. Check alert file,kill monitor process
    2. Startup mount,
    3. “alter database backup control to trace”
    4. Find the trace file,and open it
    5. Startup nomount
    6. recreate controlfile using resetlogs
    7. “recover database using backup controlfile”
    8. “alter database open resetlogs;”
    9. “alter tablespace temp add tempfile '.dbf' reuse;”

    以下再详细步骤:

    oracle…

    oarcle\ora92\bin\sqlplus /nolog

    1.SQL> connect /as sysdba

    2.SQL> shutdown abort   如果数据库是打开状态,强行关闭

    3.SQL> startup
    ORACLE 例程已经启动。
    Total System Global Area 293601280 bytes
    Fixed Size 1248624 bytes
    Variable Size 121635472 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 2945024 bytes
    数据库装载完毕。
    ORA-01122: 数据库文件 1 验证失败
    ORA-01110: 数据文件 1:
    'F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\ORCLDW\SYSTEM01.DBF'
    ORA-01207: 文件比控制文件更新 - 旧的控制文件
    4.SQL> alter database backup controlfile to trace as 'e:\controlfile';
    数据库已更改。
    5.SQL> shutdown immediate    如果数据库是打开状态,则关闭
    ORA-01109: 数据库未打开
    已经卸载数据库
    6.SQL> startup nomount;
    ORACLE 例程已经启动。
    Total System Global Area 105979576 bytes
    Fixed Size 454328 bytes
    Variable Size 79691776 bytes
    Database Buffers 25165824 bytes
    Redo Buffers 667648 bytes

     
    7.Editplus之类的编辑器打开在第4步生成的e:\controlfile'文件;
    其实在这个文件中的已经告诉你咋样恢复你的数据库了,找到STARTUP NOMOUNT字样(有好几处),然后下面可以看到类似语句,这个文件有好几个类似的生成控制文件语句,主要针对不同的环境执行不同的语句,象我的数据库没有做任何备份,也不是在归档模式,就执行这句(删除其中的注释行,删除不需要的数据文件,中间不要有任何空行; 碰到错误执行SQL> shutdown abort ;SQL> startup nomount; )
    SQL>

    CREATE CONTROLFILE REUSE DATABASE "ZFXFZB" RESETLOGS  NOARCHIVELOG
        MAXLOGFILES 50
        MAXLOGMEMBERS 5
        MAXDATAFILES 100
        MAXINSTANCES 1
        MAXLOGHISTORY 680
    LOGFILE
      GROUP 1 'E:\ORACLE\ORADATA\ZFXFZB\REDO01.LOG'  SIZE 100M,
      GROUP 2 'E:\ORACLE\ORADATA\ZFXFZB\REDO02.LOG'  SIZE 100M,
      GROUP 3 'E:\ORACLE\ORADATA\ZFXFZB\REDO03.LOG'  SIZE 100M
    DATAFILE
      'E:\ORACLE\ORADATA\ZFXFZB\SYSTEM01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\UNDOTBS01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\CWMLITE01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\DRSYS01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\EXAMPLE01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\INDX01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\ODM01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\TOOLS01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\USERS01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\XDB01.DBF',
      'E:\ORACLE\ORADATA\ZFXFZB\ZFXFZB.ORA'
    CHARACTER SET ZHS16GBK
    ;

    执行上面这段语句,这个语句重建控制文件,然后你可以看着e:\controlfile'文件完成下面的恢复工作了,
    8.SQL>RECOVER DATABASE    (恢复指定表空间、数据文件或整个数据库) ; 即使出现错误也可以正常使用。

        SQL>ALTER DATABASE OPEN resetlogs;      ; 即使出现错误也可以正常使用。
    9.SQL>ALTER DATABASE OPEN;     打开数据库 ; 即使出现错误也可以正常使用。

  • 相关阅读:
    docker as engitor及云构建devops选型
    elmlang:一种编码和可视化调试支持内置的语言系统
    engitor:基于jupyter,一个一体化的语言,IDE及通用分布式架构环境
    【Heritrix基础教程之3】Heritrix的基本架构
    Eclipse 快捷键大全
    【Heritrix基础教程之2】Heritrix基本内容介绍
    【Heritrix基础教程之1】在Eclipse中配置Heritrix
    Berkeley DB基础教程
    【搜索引擎Jediael开发笔记】v0.1完整代码
    【搜索引擎Jediael开发笔记】V0.1完整代码
  • 原文地址:https://www.cnblogs.com/emanlee/p/2253294.html
Copyright © 2011-2022 走看看