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
    开始。

    其它步骤类似。

  • 相关阅读:
    P2660 zzc 种田
    ie发[e]的单词,ea发[e]的单词,e发i:的单词
    从员工表和部门表联合查询的不同方式看CBO对不同SQL的优化
    Delete..In.. 删除语句的优化再次探讨
    【Vue】第一个Vue例子
    再度思索:从配送表中选出订单号和配送者相同时的最新记录
    datx 编译打包命令
    kube-proxy iptables 模式源码分析
    kube-proxy ipvs 模式源码分析
    go json 反解析接口
  • 原文地址:https://www.cnblogs.com/abclife/p/5770338.html
Copyright © 2011-2022 走看看