当数据库的control file及其镜像文件同时损坏时,我们可以通过备份的控制文件来进行恢复数据 recover database using backup controlfile; 最后alter database open restlogs; 打开数据库
另外一种方法就是手工重建控制文件。(数据文件及日志文件未损坏的情况下,恢复玩控制文件就可以直接打开数据库)
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'D:\ORADATA\TEST\REDO01.LOG',
'D:\ORADATA\TEST\LOG\REDO01.LOG'
) SIZE 50M BLOCKSIZE 512,
GROUP 2 (
'D:\ORADATA\TEST\REDO02.LOG',
'D:\ORADATA\TEST\LOG\REDO02.LOG'
) SIZE 50M BLOCKSIZE 512,
GROUP 3 (
'D:\ORADATA\TEST\REDO03.LOG',
'D:\ORADATA\TEST\LOG\REDO03.LOG'
) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'D:\ORADATA\TEST\SYSTEM01.DBF',
'D:\ORADATA\TEST\SYSAUX01.DBF',
'D:\ORADATA\TEST\UNDOTBS01.DBF',
'D:\ORADATA\TEST\USERS01.DBF',
'D:\ORADATA\TEST\EXAMPLE01.DBF',
'D:\ORADATA\TEST\OCP.DBF',
'D:\ORADATA\TEST\TEST01.DBF'
CHARACTER SET ZHS16GBK
;
/******这段代码可以在trace文件中找到,
alter database backup controlfile to trace;****************/
最后alter database open restlogs; 打开数据库;