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;     打开数据库 ; 即使出现错误也可以正常使用。

  • 相关阅读:
    Windows Server 2003下ASP.NET无法识别IE11的解决方法
    SQL Server2005中使用XML-数据类型、查询与修改
    连接SQLServer时提示“但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0
    无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法。
    C# WinForm使用Aspose.Cells.dll 导出导入Excel/Doc 完整实例教程
    技巧 获取电脑硬件信息 -转发
    浏览器无需下载插件 解决网页长截图的小技巧 -转发
    note 9 列表、时间复杂度、排序
    note 8 字符串
    note 7 递归函数
  • 原文地址:https://www.cnblogs.com/emanlee/p/2253294.html
Copyright © 2011-2022 走看看