O.S-windows vista enterprise(Personal PC),
Oracle 11.1.0.2.0
I am getting the following error, please help to fix
I am unable to recover datafile &open database.
SQL> conn sys as sysdba
Enter password
Connected to an idle instance.
SQL> startup open
Oracle instance started.
Total System Global Area 644468736 bytes
Fixed Size 1376520 bytes
Variable Size 251662072 bytes
Database Buffers 385875968 bytes
Redo Buffers 5554176 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 665)
ORA-01110: data file 1: 'C:\ORACLE\ORADATA\GIRO\SYSTEM01.DBF'
Process ID: 6132
Session ID: 767 Serial number: 3
SQL> recover datafile 'C:\ORACLE\ORADATA\GIRO\SYSTEM01.DBF';
ERROR
ORA-03114: not connected to ORACLE
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
Answer
You cannot recover media failure in NOARCHIVELOG mode. The best you can do is use a data recovery service like PRM-DULDBRECOVER for OracleOr Oracle's expensive service unless you get lucky and Aman's suggestion works. Support might have some help since it is the system datafile, but I wouldn't hold my breath.
This is why you take backups.
If all the data you need is character type, you might try the unix strings command.
DBRECOVER Recovery Options
For Oracle incidents, start with the DBRECOVER for Oracle trial to verify table visibility, row previews, and export readiness on copied datafiles. For MySQL and InnoDB incidents, DBRECOVER for MySQL is free software and can inspect.ibd files, ibdata1, and database directories locally.
When the case is urgent, preserve the original files first, work from copies, and contact paid emergency support with the database version, platform, error messages, file list, and recovery objective.