zoukankan      html  css  js  c++  java
  • oracle重建控制文件

    根据已有数据库创建新的控制文件
    #数据库必须是mounted或open状态

    sql> alter database backup controlfile to trace;
    

    可以使用以下快捷方式找到对应的trace文件

    sql> alter database backup controlfile to trace;
    sql> oradebug setmypid;
    sql> oradebug tracefile_name;
    

    从trace文件中要找出以下内容,保存到脚本controlfile.sql:

    CREATE CONTROLFILE REUSE DATABASE "DB11" NORESETLOGS  NOARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 '/u01/app/oracle/oradata/db11/redo01.log'  SIZE 50M BLOCKSIZE 512,
      GROUP 2 '/u01/app/oracle/oradata/db11/redo02.log'  SIZE 50M BLOCKSIZE 512,
      GROUP 3 '/u01/app/oracle/oradata/db11/redo03.log'  SIZE 50M BLOCKSIZE 512
    -- STANDBY LOGFILE
    DATAFILE
      '/u01/app/oracle/oradata/db11/system01.dbf',
      '/u01/app/oracle/oradata/db11/sysaux01.dbf',
      '/u01/app/oracle/oradata/db11/undotbs01.dbf',
      '/u01/app/oracle/oradata/db11/users01.dbf',
      '/u01/app/oracle/oradata/db11/example01.dbf',
      '/u01/app/oracle/oradata/db11/test01.dbf'
    CHARACTER SET AL32UTF8
    ;
    

    正式创建控制文件

    sql> shutdown immediate
    sql> startup nomount
    sql> @controlfile.sql #创建完成后,数据库会自动到mounted状态
    

    #创建控制文件后,记得添加临时文件

    sql> alter tablespace temp add tempfile '/u01/app/oracle/oradata/db11/temp01.db' reuse;
    

    如果是以resetlogs打开数据库,建议尽快做一个数据库备份。

    如果数据库已经无法mount,比如需要还原数据库时,则需要手工写创建脚本了。
    脚本必须以:
    create controlfile reuse database "dbname" noresetlogs archivelog
    开始。

    其它步骤类似。

  • 相关阅读:
    开发微博应用7构思草图
    微博应用研究【2】
    跟着Artech学习WCF扩展(4) 扩展MessageInspector
    ASP.NET开源MVC框架VICI 测试的便利性
    第一次踏出.net后花园(一)
    回忆被三层架构忽悠的日子,上当的同学自觉举手
    微博应用开发10
    开发微博应用【5】应用的使用频率
    微博应用研究(4)
    微博应用研究(3)
  • 原文地址:https://www.cnblogs.com/abclife/p/5770338.html
Copyright © 2011-2022 走看看