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

    其它步骤类似。

  • 相关阅读:
    html websocket
    使用公钥进行远程登录主机/远程执行命令
    cropper.js 跨域问题
    利用PhantomJS生成网站截图
    Windows下的MySQL删除data文件夹后……
    快速设置环境变量
    压缩JS时生成source_map
    调试android chrome web page简明备忘
    CURL 简介【转载】
    一些同形异码字符
  • 原文地址:https://www.cnblogs.com/abclife/p/5770338.html
Copyright © 2011-2022 走看看