从Undo, Redo, DataFile看Oracle中的事务过程
2009-06-12 11:51:00 来源:WEB开发网这篇文章中,我们将通过Undo, Redo, DataFile的dump来看看Oracle中一个transaction过程。
1:提交当前session中的pending transaction,
SQL> show autocommit;
autocommit OFF
SQL> commit;
Commit complete.
2:确定transaction前的scn,
SQL> connect sys/coffee@testdb as sysdba;
Connected.
SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe;
MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)
------------------------------------
41683588
3:数据更新
SQL> connect system/coffee@testdb;
Connected.
SQL> update undo_test set id=456 where id=123;
1 row updated.
4:查看刚刚操作的transaction及回滚段信息
SQL> select xidusn, xidslot, xidsqn,ubafil,ubablk,ubasqn,ubarec from v$transaction;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC
---------- ---------- ---------- ---------- ---------- ---------- ----------
10 27 20807 2 1375 1473 45
XIDUSN:回滚段Number
XIDSLOT:事务槽号
XIDSQN:事务序列号
UBAFIL:UBA所在文件号
UBABLK:UBA所在块号
UBASQN:UBA序列号
UBAREC:UBA在Block中的位置
更多精彩
赞助商链接