Oracle的控制文件丢失怎么办
如果有文本备的份控制文件就可以使用文本备份的控制文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO traceAS‘路径/文件名’;
SQL> alter database backup controlfile to trace as ‘/oracle/cont.txt’;
在文本控制文件里面有这些内容,如果文本文件丢失了,启动不到mount状态就要使用下面这些语句,使用下面这些语句在SQL下面执行。
STARTUP NOMOUNT–由于控制文件丢失或者损害,数据库启动不到mount状态,可以先将数据库启动到nomount状态。
之后执行这些语句就会创建新的控制文件,如果redo文件没有损坏就使用NORESETLOGS
如果损坏了就使用RESETLOGS。
CREATE CONTROLFILE REUSE DATABASE “ORADB” NORESETLOGS ARCHIVELOG
MAXLOGFILES 20
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
‘/u01/app/oracle/oradata/oradb/redo01.log’,
‘/oracle/redobackup/redo02.log’
) SIZE 50M BLOCKSIZE 512,
GROUP 2 ‘/u01/app/oracle/oradata/oradb/redo02.log’ SIZE 50M BLOCKSIZE 512,
GROUP 3 ‘/u01/app/oracle/oradata/oradb/redo03.log’ SIZE 50M BLOCKSIZE 512,
GROUP 4 ‘/oracle/redobackup/redo01.log’ SIZE 20M BLOCKSIZE 512
— STANDBY LOGFILE
DATAFILE
‘/u01/app/oracle/oradata/oradb/system01.dbf’,
‘/u01/app/oracle/oradata/oradb/sysaux01.dbf’,
‘/u01/app/oracle/oradata/oradb/undotbs01.dbf’,
‘/u01/app/oracle/oradata/oradb/user01.dbf’,
‘/u01/app/oraclermants.dbf’
CHARACTER SET ZHS16GBK;
注意使用上面的方法要在数据库结构没有改变,比如没有新增加表空间和数据文件。