一般来说,只要数据库处于归档模式,都是可以恢复的。可以采用Recover命令来恢复
先冷备份数据库所有的数据库文件(日志文件,数据文件,控制文件等) SVRMGR> set autorecovery on
SVRMGR> recover datafile 'd:\WIN2000\ORACLE\DATABASE\SYS1IRCL.ORA';
SVRMGR> alter database open; 因为用RECOVER恢复启动数据库是要从新写日志的,如果不成功还可以用备份
来用其他的方法: 如果不成功,可以再试试下面的方案
SVRMGRL> connect internal;
SVRMGRL> SHUTDOWN IMMEDIATE;
SVRMGRL> STARTUP MOUNT;
SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'数据库能正常启动的近一次的时间'
SVRMGRL> ALTER DATABASE OPEN resetlogs; 如果日志里有足够的信息,一般情况下都能正常恢复:(因为我们只要这几个日志文件
,所以为什么不要在做太多操作,先备份,每做一次检查点都会写日志)。 分数拿来Oracle小王子
先冷备份数据库所有的数据库文件(日志文件,数据文件,控制文件等) SVRMGR> set autorecovery on
SVRMGR> recover datafile 'd:\WIN2000\ORACLE\DATABASE\SYS1IRCL.ORA';
SVRMGR> alter database open; 因为用RECOVER恢复启动数据库是要从新写日志的,如果不成功还可以用备份
来用其他的方法: 如果不成功,可以再试试下面的方案
SVRMGRL> connect internal;
SVRMGRL> SHUTDOWN IMMEDIATE;
SVRMGRL> STARTUP MOUNT;
SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'数据库能正常启动的近一次的时间'
SVRMGRL> ALTER DATABASE OPEN resetlogs; 如果日志里有足够的信息,一般情况下都能正常恢复:(因为我们只要这几个日志文件
,所以为什么不要在做太多操作,先备份,每做一次检查点都会写日志)。 分数拿来Oracle小王子
修改init.ora 文件,使无法使用的控制文件不在control_files参数中定义即可恢复 svrmgrl>connect internal
svrmgrl>shutdown abort 修改init.ora
例如:
修改前
control_files = ("C:\Oracle\oradata\oradb\control01.ctl", "C:\Oracle\oradata\oradb\control02.ctl",
"C:\Oracle\oradata\oradb\control03.ctl") 修改后
control_files = ("C:\Oracle\oradata\oradb\control01.ctl", "C:\Oracle\oradata\oradb\control02.ctl") svrmgrl>startup
这样就可以了分数再拿来
oracle小王子
按照您的方法做了,提示如下:Autorecovery ON
SVRMGR> CONNECT INTERNAL
Password:
Connected.
SVRMGR> recover datafile 'D:\ORANT\DATABASE\SYS1ORCL.ORA';
ORA-00283: recovery session canceled due to errors
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: 'D:\ORANT\DATABASE\SYS1ORCL.ORA'
ORA-01207: file is more recent than controlfile - old controlfile