Domanda

Il database è OracleXE ed ecco il problema:

  • i dati vengono inseriti nelle tabelle
  • L'UPS non sopravvive alle scosse elettriche
  • Il server Oracle si riavvia dopo un'interruzione di corrente
  • tutto sembra normale
  • dopo qualche tempo ci rendiamo conto che mancano alcuni dati da alcune tabelle (va bene, perché tutti gli inserimenti sono avvenuti in una transazione) e alcuni dati sembrano impegnati a metà
  • paio di riavvii effettuati dal dipendente
  • cosa più strana, i dati impegnati a metà sono stati ripristinati alla normalità!

Suppongo che la perdita di dati sia possibile, ma è possibile perdere parte della transazione?

Oracle ha una sorta di recupero dopo queste situazioni?

Lo scenario è scritto sulla base dei registri delle mie app e dei registri Oracle perché è un sistema remoto.

[EDIT] Il mio DBA è a casa malato.

listener.log sembra ok e non sono un grande lettore di alert_xe.log :) Immagino che si tratti di informazioni pertinenti:

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:] " Scrivi nella cache " è stato lasciato per errore. Ciò spiega la perdita di dati.

È stato utile?

Soluzione

Mi sembra molto strano. I dati sono o non sono stati sottoposti a commit. Ho il sospetto che una delle tue colleghe sospetti di imbrogli.

Altri suggerimenti

Dal registro degli avvisi, sembra un normale ripristino automatico dell'istanza. Le ultime due righe mi indicano che il database è aperto e sta scrivendo i registri di ripetizione. Non credo che esistesse una transazione parziale. O è commesso o meno - non esiste uno stato intermedio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top