views:

185

answers:

2

Database is OracleXE and here is the problem:

  • data gets entered in tables
  • UPS does not survive power shock
  • Oracle server reboots after power failure
  • everything seems normal
  • after some time we realize that some data is missing from few tables (this is ok, because all inserts happened in one transaction), and some data seems like half-committed
  • couple of reboots done by employee
  • strangest thing, half-committed data recovered to normal!

I guess data loss is possible, but is it possible to loose some part of transaction?

Does Oracle have some sort of recovery after these situations?

Scenario is written on the basis of my app logs and Oracle logs because it's remote system.

[EDIT] My DBA is at home sick.

listener.log seems ok and I'm not much of a reader of alert_xe.log :) I guess this is relevant info:

Oracle Data Guard is not available in this edition of Oracle. 
Thu Oct 15 10:52:05 2009
alter database mount exclusive
Thu Oct 15 10:52:09 2009
Setting recovery target incarnation to 2
Thu Oct 15 10:52:09 2009
Successful mount of redo thread 1, with mount id 2581406229
Thu Oct 15 10:52:09 2009
Database mounted in Exclusive Mode
Completed: alter database mount exclusive
Thu Oct 15 10:52:09 2009
alter database open
Thu Oct 15 10:52:10 2009
Beginning crash recovery of 1 threads
Thu Oct 15 10:52:10 2009
Started redo scan
Thu Oct 15 10:52:10 2009
Completed redo scan
 3923 redo blocks read, 520 data blocks need recovery
Thu Oct 15 10:52:10 2009
Started redo application at
 Thread 1: logseq 649, block 88330
Thu Oct 15 10:52:12 2009
Recovery of Online Redo Log: Thread 1 Group 2 Seq 649 Reading mem 0
  Mem# 0 errs 0: C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_558PBOPG_.LOG
Thu Oct 15 10:52:14 2009
Completed redo application
Thu Oct 15 10:52:14 2009
Completed crash recovery at
 Thread 1: logseq 649, block 92253, scn 7229931
 520 data blocks read, 498 data blocks written, 3923 redo blocks read
Thu Oct 15 10:52:15 2009
Thread 1 advanced to log sequence 650
Thread 1 opened at log sequence 650

[EDIT:] "Write Caching" was left by mistake. That explains data loss.

+2  A: 

Sounds very odd to me. Data either is or is not commited. I suspect skulduggery by one of your collegues.

David Aldridge
+1 I've learned a new word. Sounds like somebody not wanting to say they made a mistake.
Robert Merkwürdigeliebe
It seems this is the case.I'm investigating.:)
Chobicus
A: 

From your alert log, it looks like a normal automatic instance recovery. The last two lines indicate to me that the database is open and writing redo logs. There's no way I'd believe that a partial transaction existed. It's either committed or not - no in-between state exists.

DCookie