Hello,
Could someone please clarify some aspects of data consistency and recovery
for me or point me toward an appropriate source of info? I've finished
reading the Oracle Server Concepts text and still have some questions
regarding transactions, rollback segments, redo logs, SCN's, etc.
Specifically:
- There is a 1-to-1 correspondence between a SCN and a transaction, yes?
- Are SCN's recorded anywhere besides the internal transaction table of the
transaction's associated rollback segment? Are SCN's indirectly recorded in
the online redo log since changes to rollback segments are recorded in the
online redo log? Isn't a transaction's SCN also written directly to the
online redo log upon transaction commit? Why is this?
- How does Oracle directly associate individual redo entries in the redo log
files w/specific transactions, or does Oracle do this at all? Is it not
necessary since this info resides in the rollback segment transaction tables,
which can be regenerated from the redo log?
- During a recovery operation, the first step is to roll forward from the
last full backup using the necessary (determined from the LSN's) redo log
files. What are the specifics here? All the redo log files are applied
before rollback, yes? Are absolutely all of the redo entries (committed and
uncommitted) applied? In the process of rolling forward, does Oracle grab
ALL of the undo information from rollback segment redo entries in order to
generate the deferred rollback segments? How does Oracle identify rollback
segment redo entries? What are the specifics of rolling back using the
deferred rollback segments? In what order are they checked, and what exactly
is done with them? Does Oracle simply search them for uncommitted
transactions and apply the undo info? If so, how does Oracle prevent the
undo-ing of an uncommitted transaction from affecting the same data modified
by a later committed transaction?
- What exactly happens when a user issues a ROLLBACK? I understand (more or
less) how the rollback segments are used to undo the SQL in the transaction.
Do the undo changes also generate redo entries in the redo log? This is my
understanding, but I would like confirmation.
I'm sorry about the length of this post, but I hope that there are others who
would benefit from the answers to these various questions. Thanks in advance.
Cary
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
Received on Wed Mar 10 1999 - 11:53:46 CST