Link to home
Start Free TrialLog in
Avatar of mgferg
mgferg

asked on

Recover Oracle data without a backup

Hi all. We have a working database that accidentally had some data changed and was committed. Is there any way to restore a system archive from yesterday without any proper backup in place - i.e. relying on inherent Oracle saving.

System is Oracle 10g on Solaris
Avatar of jerrypd
jerrypd
Flag of United States of America image

not that I am aware of - - the transaction logs have probably already been applied at this point, and even if you were to delete them, the data would become "inconsistent".
when you say no backup, no offsite or enterprise backup? what about exports? or snapshots? All would be configured and are not automatic so you would know if they are configured.

If the answer is no, then you are up a creek... sorry
Avatar of slightwv (䄆 Netminder)
slightwv (䄆 Netminder)

Had you caught this early enough you might have been able to use flashback query.  You can try it but I doubt it will work.

I cannot remember if logminer shows before images or not but if you have the archived redo logs around you might check it out.
Avatar of mgferg

ASKER

thanks - how can I check was is possibly available?

next option is to restore the db somewhere else and save the data from their - any pointers on how thi sis done please - ie copy the db file to a different location then what?
To restore the database somewhere else you need a backup.

There might be some low level queries to see the last available SCN or timestamp the the online redo logs but I don't know of it.

Easiest way is to try a flashback query from the time before the delete/commit.  It will either work or it won't.

To see what logminer provides, check the docs.
Avatar of mgferg

ASKER

So what I want to know is - if I restore the db directory somewhere else- how can I load this in conjunction with the db that is currently running?

i.e. the directoy with all the .ctl, .log, .dbf - the main db file is in this dir, call it mydata.dbf - how can this be "mounted" so I can retrieve the valid data, that can then be used to update the current productionon one?

Worst case I could replace this file with the backup, but not sure if I should restore all files, or just the db file is ok (?). Assuming all files ...

Thanks - this is a production system, so would really appreciate some help that I'm out of my depth with.

Regards,
Mark
I am not sure if i understand but you DO have a backup? It would help to understand what kind of backup you have.

 If you want to clone the current db there are a few ways. 1) shut production db, fully copy all the files onto another box.
2) install on a new box and apply exports of the data you want.
3) If your prod db is running in archival log mode you can back it up, take the DBFs and apply the archive logs.

Then you can restore your backup. But again depending on your backup strategy it may be as simple as installing oracle somewhere and importing your backup then grabbing the data.
ASKER CERTIFIED SOLUTION
Avatar of Praveen Kumar Chandrashekatr
Praveen Kumar Chandrashekatr
Flag of India image

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
Avatar of mgferg

ASKER

It does, thanks so much for the help. We've managed in the interim to recover data a different way. I would like to test this though (and document), should this happen again.

(btw, the backup we have is the entire db directory with all the file extensions as listed above)