Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> rollback and redo questions
I jus ran a canned script on my rollback segments and got the following
info
at the bottom of the report:
"Rollback contention for system undo header = 0% (Total requests = 36)
Rollback contention for system undo block = 0% (Total requests = 36)
Rollback contention for undo header = 100% (Total requests =
36)
Rollback contention for undo block = 0% (Total requests = 36)
If percentage is more than 1%, create more rollback segments "
Question: What's with the undo header, and what is it? Can anyone
explain
why it's contention is sitting at 100%, whereas the others are at 0?
Also, supplementary question - as a transaction begins, it grabs a
rollback
segment, right? At the same time, it places this uncommitted
information in
whatever is the current redo log file, right? Now, if you should lose
the database,
it will make use of any redo information in the redo log file, rollback
any uncommitted
transactions, and roll forward any committed transactions, right? So,
if the redo
log is smaller than the rollback segment which I'll assume is being
maxed out,
can't you potentially lose information IF, you have written a committed
transaction
to a redo log, there is a log switch for the write of the uncommitted
transaction (using the rollback segment), and the checkpoint is not
complete, and the database goes down, right?
I know that sounds somewhat convaluted, but hopefully someone will know
what
I mean. Just to confirm my understanding, when a transaction commits,
it will sit
in the redo logs until a checkpoint occurs, at which point it is made
permanent, right?
So, I guess what I'm asking here is , under what circumstance of the
above events
could you actually lose something, if you get my intention.