Oracle重建控制文件(无备份)

将数据库控制文件全部删除,模拟数据库控制文件全部丢失且没有备份,然后启动数据

SQL> startup;
ORACLE instance started.

Total System Global Area 1252663296 bytes
Fixed Size                  2252824 bytes
Variable Size             704647144 bytes
Database Buffers          536870912 bytes
Redo Buffers                8892416 bytes
ORA-00205: error in identifying control file, check alert log for more info


SQL> shutdown immediate;

alert日志提示

ALTER DATABASE   MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oradata/eheng/control02.ctl'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/oradata/eheng/control01.ctl'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-205 signalled during: ALTER DATABASE   MOUNT...

从提示中可以看出数据库在mount阶段找不到控制文件而报错

通过手动创建控制文件来拉起数据库,查看数据文件、redo日志文件

[root@eheng eheng]# ls -lsa
total 5115400
      4 drwxr-x---. 2 oracle oinstall       4096 Aug 24 09:32 .
      4 drwxr-xr-x. 7 oracle oinstall       4096 Aug 24 09:31 ..
 524296 -rw-r-----. 1 oracle oinstall  536871424 Aug 24 09:33 redo01.log
 524296 -rw-r-----. 1 oracle oinstall  536871424 Aug 24 09:33 redo02.log
 524296 -rw-r-----. 1 oracle oinstall  536871424 Aug 24 09:33 redo03.log
 524296 -rw-r-----. 1 oracle oinstall  536871424 Aug 24 09:33 redo04.log
 524296 -rw-r-----. 1 oracle oinstall  536871424 Aug 24 09:43 redo05.log
1048588 -rw-r-----. 1 oracle oinstall 1073750016 Aug 24 09:33 roobbin01.dbf
 522252 -rw-r-----. 1 oracle oinstall  534781952 Aug 24 09:38 sysaux01.dbf
 757772 -rw-r-----. 1 oracle oinstall  775954432 Aug 24 09:43 system01.dbf
   1024 -rw-r-----. 1 oracle oinstall   30416896 Aug 24 09:39 temp01.dbf
  76812 -rw-r-----. 1 oracle oinstall   78651392 Aug 24 09:38 undotbs01.dbf
   5128 -rw-r-----. 1 oracle oinstall    5251072 Aug 24 09:33 users01.dbf

将数据库启动到nomount状态,重建控制文件

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 1252663296 bytes
Fixed Size                  2252824 bytes
Variable Size             704647144 bytes
Database Buffers          536870912 bytes
Redo Buffers                8892416 bytes
--重建控制文件不需要临时数据文件,控制文件重建成功重用临时数据文件即可
CREATE CONTROLFILE REUSE DATABASE "EHENG" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 8192
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/oradata/eheng/redo01.log'  SIZE 512M BLOCKSIZE 512,
  GROUP 2 '/oradata/eheng/redo02.log'  SIZE 512M BLOCKSIZE 512,
  GROUP 3 '/oradata/eheng/redo03.log'  SIZE 512M BLOCKSIZE 512,
  GROUP 4 '/oradata/eheng/redo04.log'  SIZE 512M BLOCKSIZE 512,
  GROUP 5 '/oradata/eheng/redo05.log'  SIZE 512M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '/oradata/eheng/system01.dbf',
  '/oradata/eheng/sysaux01.dbf',
  '/oradata/eheng/undotbs01.dbf',
  '/oradata/eheng/users01.dbf',
  '/oradata/eheng/roobbin01.dbf'
CHARACTER SET ZHS16GBK
;

Control file created.
--打开数据库
SQL> alter database open;
Database altered.
--重用临时文件
SQL> alter tablespace temp add tempfile '/oradata/eheng/temp01.dbf' reuse;
Tablespace altered.

至此,控制文件手动创建成功, 数据库正常启动

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ---------------------------------------------
eheng            OPEN

SQL> 

 

posted @ 2022-08-24 09:56  小年青。  阅读(536)  评论(0编辑  收藏  举报