Link to home
Start Free TrialLog in
Avatar of Hope4U
Hope4U

asked on

Newbie: Want to get an export(or equivalant) or copy done on a broken oracle datafile

Hi:

I have a problem with a datafile in my oracle database which runs on top of Linux.  The problem is that when I try to copy or cat the 'sys01XXXX.dbf' file i get this error:
"cp: reading `/home2/sys01XXXX.dbf': Input/output error"
and
"cat: /home2/sys01XXXX.dbf: Input/output error"

Note:
The other 5 datfiles are ok; the system has been functioning ok for over a year with this underlying problem;  I can do a full system export of the database. If possible, I don't want to have to drop everything and Import everything in again.

What I would like to achieve:
(i) Do some operation that would produce a good copy of the '/sys01XXXX.dbf' or a file that can be imported back into the database.
(ii) Transfer the other datafiles; log files; control files to a new system.
(iii) Import or copy the fixed 'sys01XXXX.dbf' into the database on the new system.
(iv) Start the database on the  new system.

Any solutions that fit close to the above would be appreciated?

Rem: I am a newbie.
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

I don't think any of your options are possible.

sys01XXXX.dbf is likely your system tablespace.  This is what hold the data dictionary.

Without this, you cannot open your database so any form of export is out of the question.

Without a proper backup of the database and configuration, you are likely out of luck.

Please confirm that your database doesn't open.
It is possible that you got extremely lucky and that whatever is corrupted is in free space.

I would run dbv on the file to see if Oracle picks up the corruption (it should because it is an I/O error).  The documentation for that utility is here:

http://download.oracle.com/docs/cd/E11882_01/server.112/e22490/dbverify.htm#i1006970

From there, you should be able to determine where the corruption is.

In all likelihood, no matter where the corruption is, you are going to have to recreate the database.
The owner of this file is the Oracle user. Possibly you run intoprivileges problem.
Also you have to stop the instance before you try to archive these files.
This will the so called "cold backup". The alternative is complex.

If you can bounce (startup the instance) the alternative of the physical backup/restore approach will be the logical export/import.

Be aware that Linux is very unstable system with a very bad file system. So try to use export (if possible).
ASKER CERTIFIED SOLUTION
Avatar of Hope4U
Hope4U

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial