控制文件全部损坏,重建方法

创建生成控制文件脚本
【将当前controlfile文件的创建语句放到了trace文件中】备份控制文件
alter database backup controlfile to trace as 'E:\bak_controlfile.txt';
如果已经无法备份控制文件,可在其他库创建一个控制文件,只需修改路径及实例名即可,格式都是一样的。

根据生成的 bak_controlfile.txt文件将重建控制文件的脚本create_cfile.sql写好放到E盘下

SQL> shutdown immediate
SQL> startup nomount
SQL>@e:\create_file.sql

如果使用的语句是 NORESETLOGS  NOARCHIVELOG

SQL>ALTER DATABASE OPEN;   --启库
--重建临时表空间
SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF'
SIZE 314572800  REUSE AUTOEXTEND ON NEXT 52428800  MAXSIZE 32767M;

如果使用的语句是 RESETLOGS  NOARCHIVELOG

SQL>ALTER DATABASE OPEN RESETLOGS;
--重建临时表空间
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF'
SIZE 314572800  REUSE AUTOEXTEND ON NEXT 52428800  MAXSIZE 32767M;

完成后查看日志文件,临时表空间文件,数据文件
select * from v$logfile;
select * from v$tempfile;
select * from v$datafile;

重建 控制文件的脚本 例子:
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
DATAFILE
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EMR01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EMPI01.DBF'
CHARACTER SET ZHS16GBK
;

注意:
E:\bak_controlfile.txt里创建语句中有一句 -- STANDBY LOGFILE 这句虽然注释掉了,但是也要删除,否则执行的时候会报错。

凭借此方法半小时给公司赚到4000大洋费用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29578568/viewspace-2152775/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29578568/viewspace-2152775/

你可能感兴趣的:(数据库)