Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: When I COMMIT....
One of two things will typically happen, depending on the timing of
events...
when you updated data (insert/update/delete), the affected data blocks
will be updated in memory but not necessarily on the datafile itself
(this is not significant). The important part matching entries will be
added to redo log, initially to the redo log buffer, and eventually
flushed to the redolog OS file. The crucial part is that the change(s)
will be associated with a transaction number that is also recorded in
the redo log (buffer and later file). Note that various updates from
multiple transactions can be mixed together in the redolog buffer/file.
Your whole issue boils down to, was the commit recorded in the redolog
file (OS level).
If yes, then the database server comes back up, the transaction will be
re-applied to the data file(s). If the commit statement did not get
recorded, and say the data block had already been flushed from memory
to data file, then the change(s) will get rolled out / undone, when the
instance is brought back up.
I don't know if you would be able to mine the redolog file to see which
transactions were rolled back.
Also, you can turn logging off on a table, which would affect the above
described behaviour.
hth Received on Mon Nov 06 2006 - 09:36:07 CST
![]() |
![]() |