One day, the Oracle production database server went down abnormally. the following error was reported when the server was restarted to enable the database:
SQL> startup
ORACLE instance started.
Total System Global Area 1.6911E + 10 bytes
Fixed Size 2113696 bytes
Variable Size 8472498016 bytes
Database Buffers 8422162432 bytes
Redo Buffers 14659584 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/oracle/PRD/data1/system_1/system. data1'
There is a solution like this:
SQL> RECOVER DATAFILE '/oracle/PRD/data1/system_1/system. data1'
Restore damaged files.
SQL> recover tablespace system; // not necessarily required. You can open the database directly when prompted that the restoration is not required.
Restore the system tablespace.
SQL> RECOVER DATABASE;
Restore the database.
SQL> ALTER DATABASE OPEN;
Database altered.
This type of operation may fail. Therefore, you must first back up all data files, control files, and log files in the current state, first to protect the site, and then try other.
After Cold backup, this method cannot be used. After consulting Dbsnake, try to recover the exception and forcibly open the database.
# Su-oracle
$ Vi/oracle/PRD/data1/init. ora modify initialization parameters
*. _ Allow_resetlogs_uption = FALSE
Change to *. _ allow_resetlogs_uption = TRUE (# change to the original value FALSE after normal database startup)
(This parameter can be enabled when data is inconsistent)
*. Undo_management = 'auto'
Change to *. undo_management = 'manual' (# change to the original value AUTO after the database is started normally)
(This parameter enables the UNDO tablespace to be automatically managed and manually managed)
Add this sentence
*. _ Uploupted_rollback_segments = (_ SYSSMU12 $) (# Remove this sentence after normal database startup)
(Block the wrong transaction rollback segment, according to the ALERT prompt ORA-01555: snapshot too old: rollback segment number 12 with name "_ SYSSMU12 $" too small)
Save the parameter file and open the database again. Check the ALERT Log and find that the SCN numbers are inconsistent. Next, push forward the SCN value.