由于系统磁盘空间紧张,开发人员删了一些文件,把oracle的控制文件也给删除了,数据库也被停掉。
根据库上的信息,梳理了下控制文件中数据文件的情况,新建控制文件,应用redo日志,数据库正常打开。
具体步骤如下:
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2252824 bytes
Variable Size 402657256 bytes
Database Buffers 838860800 bytes
Redo Buffers 8892416 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/u01/oradata/orcl/redo01.dbf' SIZE 100M BLOCKSIZE 512,
9 GROUP 2 '/u01/oradata/orcl/redo02.dbf' SIZE 100M BLOCKSIZE 512,
10 GROUP 3 '/u01/oradata/orcl/redo03.dbf' SIZE 100M BLOCKSIZE 512,
11 DATAFILE
12 '/u01/oradata/orcl/system01.dbf',
13 '/u01/oradata/orcl/sysaux01.dbf',
14 '/u01/oradata/orcl/undo01.dbf',
15 '/u01/oradata/orcl/TBS_RTS_DATA.DBF'
16 CHARACTER SET ZHS16GBK
17 ;
Control file created.
SQL> recover database using backup controlfile;
ORA-00279: change 8842373 generated at 02/23/2017 08:48:23 needed for thread 1
ORA-00289: suggestion :
/u01/flash_recovery_area/ORCL/archivelog/2017_02_23/o1_mf_1_601_%u_.arc
ORA-00280: change 8842373 for thread 1 is in sequence #601
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/oradata/orcl/redo01.dbf
Log applied.
Media recovery complete.
SQL>
SQL>
SQL> alter database open resetlogs;
Database altered.
临时表空间
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oradata/orcl/temp01.dbf' resue;
对于临时表空间,需要在重建控制文件后添加临时数据文件。