When Trying to open the database,The following error occurred.
SQL> startup
Total System Global Area 536870912 bytes
Fixed Size 1262812 bytes
Variable Size 524290852 bytes
Database Buffers 8388608 bytes
Redo Buffers 2928640 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/oracle/oradata/monster/system01.dbf'
Try to do media recovery and open
SQL> recover database;
Media recovery complete.
SQL> alter database open;
alter database open
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
It seems not easily to be solved.Check the consistence of the datafile and init file.
SQL> conn / as syd sdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 536870912 bytes
Fixed Size 1262812 bytes
Variable Size 524290852 bytes
Database Buffers 8388608 bytes
Redo Buffers 2928640 bytes
Database mounted.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/oracle/oradata/monster/system01.dbf
/oracle/oradata/monster/test01.dbf
/oracle/oradata/monster/sysaux01.dbf
/oracle/oradata/monster/users01.dbf
/oracle/oradata/monster/undotbs02.dbf
SQL> show parameter undo
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
undo_management string
AUTO
undo_retention integer
900
undo_tablespace string
UNDOTBS01
SQL> s
SQL>
SQL> set linesize 200
SQL>
SQL> show pare ameter undo
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS01
SQL>
SQL>
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
spfile string
The Undo tablespace is inconsistent with the init file.
So we change the init file and also because the undo tablespace is corrupted we must
change the undo management to 'manual' and use *._corrupted_rollback_segments='TRUE'
option to open the database.
or the following error will come to alert log:
ORA-00600: internal error code, arguments: [4194], [27], [4], [], [],
The init file is changed as follows:
.undo_management='manual'
.undo_tablespace='UNDOTBS02'
._corrupted_rollback_segments='TRUE'
SQL> startup pfile=$ORACLE_HOME/dbs/initmonster.ora
ORACLE instance started.
Total System Global Area 536870912 bytes
Fixed Size 1262812 bytes
Variable Size 524290852 bytes
Database Buffers 8388608 bytes
Redo Buffers 2928640 bytes
Database mounted.
Database opened.
SQL> select status from v$instance;
STATUS
------------------------
OPEN
SQL> set linesize 200
SQL>
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS02
We can exp the data since the database is open.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/77357/viewspace-616024/
,如需转载,请注明出处,否则将追究法律责任。