近日,遇到数据库无法open的一个情况,在网上查了很久,找到了一个解决方法,记录一下
在进行sqlplus / as sysdba操作 alter database open resetlogs时发生了报错:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01245: offline file 1 will be lost if RESETLOGS is done
ORA-01110: data file 1: '/home/ora/oracle/oradata/hisdb/system01.dbf'
经查询发现,此问题为datafile 1 处于offline状态;
尝试进行恢复解决:
注意文中的oracle地址为自己所在路径
SQL> alter database datafile 1 online;
Database altered.
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> recover database using backup controlfile;
ORA-00279: change 830281 generated at 06/24/2021 01:00:11 needed for thread 1
ORA-00289: suggestion :
/home/ora/oracle/flash_recovery_area/HISDB/archivelog/2021_06_28/o1_mf_1_70_%u_.
arc
ORA-00280: change 830281 for thread 1 is in sequence #70
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/home/ora/oracle/oradata/hisdb/redo03.log
ORA-00310: archived log contains sequence 69; sequence 70 required
ORA-00334: archived log: '/home/ora/oracle/oradata/hisdb/redo03.log'
SQL> recover database using backup controlfile;
ORA-00279: change 830281 generated at 06/24/2021 01:00:11 needed for thread 1
ORA-00289: suggestion :
/home/ora/oracle/flash_recovery_area/HISDB/archivelog/2021_06_28/o1_mf_1_70_%u_.
arc
ORA-00280: change 830281 for thread 1 is in sequence #70
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/home/ora/oracle/oradata/hisdb/redo02.log
ORA-00310: archived log contains sequence 68; sequence 70 required
ORA-00334: archived log: '/home/ora/oracle/oradata/hisdb/redo02.log'
SQL> recover database using backup controlfile;
ORA-00279: change 830281 generated at 06/24/2021 01:00:11 needed for thread 1
ORA-00289: suggestion :
/home/ora/oracle/flash_recovery_area/HISDB/archivelog/2021_06_28/o1_mf_1_70_%u_.
arc
ORA-00280: change 830281 for thread 1 is in sequence #70
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/home/ora/oracle/oradata/hisdb/redo01.log
Log applied.
Media recovery complete.
SQL> recover database using backup controlfile;
ORA-00279: change 856355 generated at 06/24/2021 10:23:49 needed for thread 1
ORA-00289: suggestion :
/home/ora/oracle/flash_recovery_area/HISDB/archivelog/2021_06_28/o1_mf_1_70_%u_.
arc
ORA-00280: change 856355 for thread 1 is in sequence #70
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
Database altered.