Redolog File Block Corruption Database Recovery Without Any Backup


First Error with oracle database -

UDE-01034: operation generated ORACLE error 1034
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Solaris-AMD64 Error: 2: No such file or directory
UDE-00003: all allowable logon attempts failed

Related memory error in alert.log file
-------------------------------------

Starting ORACLE instance (normal)
WARNING: The system does not seem to be configured
optimally. Creating a segment of size 0x000000004c000000
failed. Please change the shm parameters so that
a segment can be created for this size. While this is
not a fatal issue, creating one segment may improve
performance


We check the memory because of kernel parameters not configured properly.

oracle@xxxx:/data/oracle:>prtconf | grep Mem
Memory size: 4096 Megabytes

oracle@xxxx:/data/oracle:>id -p
uid=610(oracle) gid=610(dba) projid=100(user.oracle)




oracle@xxxx::/data/oracle:> prctl -n project.max-shm-memory -i project 100
project: 100: user.oracle
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
        privileged      1022MB      -   deny                                 -
        system          16.0EB    max   deny                                 -

Total SGA memory was greater than 1022 MB ,so we decreased the memory parameters in init.ora file.Or we could change the kernel parameters.



When startup database we encountered redo log file block corruption . (alert log detail )


Started redo scan
Incomplete read from log member '/data/oradata/TestDB/redo07.log'. Trying next member.
Aborting crash recovery due to error 333
Errors in file /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/trace/TestDB_ora_8048.trc:
ORA-00333: redo log read error block 837208 count 8105
Errors in file /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/trace/TestDB_ora_8048.trc:
ORA-00333: redo log read error block 837208 count 8105
ORA-333 signalled during: alter database open...

We tried fake media recovery .
 

SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/data/oradata/TestDB/system01.dbf'


SQL > ALTER DATABASE RECOVER  database using backup controlfile

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/data/oradata/TestDB/system01.dbf'


SQL> startup;
ORACLE instance started.

Total System Global Area  985427968 bytes
Fixed Size                  2232032 bytes
Variable Size             457179424 bytes
Database Buffers          520093696 bytes
Redo Buffers                5922816 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open



Fake media recovery didn't succeeded.We tried to add redo log file and drop corrupted redo file.But we missed in mount mode log file switch operation does not occur :)  .


Below parameter set in init.ora , but database not opened again.
_allow_resetlogs_corruption=true

SQL> startup
ORACLE instance started.

Total System Global Area  985427968 bytes
Fixed Size                  2232032 bytes
Variable Size             457179424 bytes
Database Buffers          520093696 bytes
Redo Buffers                5922816 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-01555: snapshot too old: rollback segment number 8 with name
"_SYSSMU8_593855280$" too small
Process ID: 15304
Session ID: 416 Serial number: 3

Lastly added parameter (_allow_resetlogs_corruption=true)  removed and below parameter added to init.ora.This time different errors shown (ORA-600 ) in sqlplus.
result_cache_max_size    = 0

Errors in file /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/trace/TestDB_ora_15436.trc  (incident=58953):
ORA-00600: internal error code, arguments: [2662], [768], [2692150890], [768], [2692160474], [12583040], [], [], [], [], [], []
Incident details in: /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/incident/incdir_58953/TestDB_ora_15436_i58953.trc
Incremental checkpoint up to RBA [0x6.3.0], current log tail at RBA [0x6.3.0]
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/trace/TestDB_ora_15436.trc:
ORA-00600: internal error code, arguments: [2662], [768], [2692150890], [768], [2692160474], [12583040], [], [], [], [], [], []
Errors in file /data/oracle/app/oracle/diag/rdbms/TestDB/TestDB/trace/TestDB_ora_15436.trc:
ORA-00600: internal error code, arguments: [2662], [768], [2692150890], [768], [2692160474], [12583040], [], [], [], [], [], []
Error 600 happened during db open, shutting down database
USER (ospid: 15436): terminating the instance due to error 600

Finally "result_cache_max_size    = 0" has been removed and started database without errors.

Completed: ALTER DATABASE OPEN
Mon Aug 12 09:30:44 2013




0 yorum:

Yorum Gönder