ORA-01157 error along with ORA-01110 in alert log file means that a datafile that DBWR is trying to access (to read or write) is no longer available. One reason coule be that this file was accidentally removed, or file permissions were accidentally changed, thus hindering oracle processes to read/write this datafile. Another reason could be the file system - where this dataifle existed - is no longer mounted or available.
Application will also not
able to work properly if it needs data from this datafile and errors would be
returned. If this datafile belongs to SYSTEM or current UNDO tablespace,
database may also go down and would not come up until the file is made
available.
Alert log would show entries similar to the following.
Thu
May 03 03:52:58 2018 |
In order to resolve ths
issue, make the datafile available. After making datafile available, it may
require a recovery. If datafile was recently gone unavailable, and then made
available (without any corruption), you may just simply execute “recover
datafile” command to have data in redo logs applied to it and then bring
datafile online. In case datafile was missing for a long period of time,
issuing recovery command may show you archived redo logs sequence numbers
needed to recover this datafile. You may restore required archived logs from
the backup and issue RECOVER command to perform datafile recovery.
If datafile was
temporarily unavailable and then becomes available, take it offline, perform
recovery, and bring it online.
SQL>
alter database datafile '/u05/oracle/oradata/mydata01.dbf’ offline; |
Remember that if this
datafile belongs to SYSTEM or UNDO tablespace, database instance may crash. You
would need to bring database to mount and perform the recovery (datafile would
not need to be taken offline in this case, just RECOVER command should suffice
during mount mode).
If this datafile was
accidentally deleted or is corrupt, you would need to perform restore and recovery
of this datafile form a valid backup.
RMAN>
RESTORE DATAFILE '/u05/oracle/oradata/mydata01.dbf’; RMAN>
RECOVER DATAFILE '/u05/oracle/oradata/mydata01.dbf’; |
No comments:
Post a Comment