默认是1
最大255(从Oracle10g开始不能更改)
select INI_TRANS,MAX_TRANS from dba_tables where table_name='T2'
对数据块进行更改的时候
首先对事务槽进行处理(1、写入事务ID 2、写入UBA(回滚块地址))
create table t10(id number(5),name char(2000));
insert into t10 values(1,'aa');
insert into t10 values(2,'bb');
insert into t10 values(3,'bb');
insert into t10 values(4,'cc');
insert into t10 values(5,'dd');
commit;
select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid),id from t10;
DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ID
------------------------------------ ------------------------------------ ----------
1 67362 1
1 67362 2
1 67362 3
1 67363 4
1 67363 5
update t10 set name='abcd' where id=1;
SQL> select ubafil,ubablk,xidusn,xidslot,xidsqn,start_scnb from v$transaction;
UBAFIL UBABLK XIDUSN(回滚段编号) XIDSLOT(事务表编号) XIDSQN(被覆盖次数) START_SCNB
---------- ---------- ---------- ---------- ---------- ----------
2 (回滚块文件) 20 (回滚块) 3 39 852 2227264
SQL> select * from v$rollname;
USN NAME
---------- ------------------------------
0 SYSTEM
1 _SYSSMU1$
2 _SYSSMU2$
3 _SYSSMU3$
4 _SYSSMU4$
5 _SYSSMU5$
6 _SYSSMU6$
7 _SYSSMU7$
8 _SYSSMU8$
9 _SYSSMU9$
10 _SYSSMU10$
11 rows selected.
SQL>
alter system dump undo header '_SYSSMU3$';//转储回滚段头
alter system dump datafile 2 block 20;
alter system dump datafile 1 block 67362;
SQL> select spid from v$process where addr in (select paddr from v$session where
sid=(select sid from v$mystat where rownum=1));
SPID
------------
4716
SQL>
[oracle@czjie ~]$ cd $ORACLE_BASE;
[oracle@czjie ora10g]$ ls
admin flash_recovery_area oradata oraInventory product
[oracle@czjie ora10g]$ cd admin
[oracle@czjie admin]$ ls
ORCL
[oracle@czjie admin]$ cd ORCL
[oracle@czjie ORCL]$ ls
adump bdump cdump dpdump pfile udump
[oracle@czjie ORCL]$ cd udump
[oracle@czjie udump]$ ls *4716*
orcl_ora_4716.trc
[oracle@czjie udump]$
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0007.016.0000031e 0x008003d8.0177.0e C--- 0 scn 0x0000.0021fc27
0x02 0x0003.027.00000354 0x00800014.034d.03 ---- 1 fsc 0x0000.00000000
IMU BUFFER
1、日志是从sharepool直接写入到redolog
2、IMUbuffer写满的时候要写入(buffercache)undobuffer里面,然后写入磁盘。
3 事务在获取undoblock的变快
4、CR读的时候速度变快
5、rac环境中是被禁止的
select * from v$sysstat where name like '%IMU%';
************
读一致性
一个数据块的undo数据可以找到这个数据块的所有undo数据
本文深入探讨了数据库中事务槽ITL的作用、数据块更改时的事务处理流程,并通过示例展示了如何操作和查询数据块信息。同时,文章还介绍了IMU缓冲区的工作原理及其对事务的影响,最后通过SQL查询展示了事务处理过程中的关键信息。
2

被折叠的 条评论
为什么被折叠?



