控制文件丢失,无备份,通过重建控制文件恢复数据库

本文介绍了一种解决Oracle数据库控制文件被误删的问题的方法。通过梳理数据文件情况,创建新的控制文件,并利用redo日志恢复数据库,最终实现数据库的正常启动。文中详细记录了SQL操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于系统磁盘空间紧张,开发人员删了一些文件,把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;
对于临时表空间,需要在重建控制文件后添加临时数据文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值