[20150130]块清理(block cleanout).txt

[20150130]块清理(block cleanout).txt

1.建立测试环境:

create table t2 as select * from dept ;
SCOTT@test> select rowid,t2.* from t2;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AAAOQdAAEAAAAGGAAA           10 ACCOUNTING     NEW YORK
AAAOQdAAEAAAAGGAAB           20 RESEARCH       DALLAS
AAAOQdAAEAAAAGGAAC           30 SALES          CHICAGO
AAAOQdAAEAAAAGGAAD           40 OPERATIONS     BOSTON

SCOTT@test> @ &r/lookup_rowid AAAOQdAAEAAAAGGAAA
OBJECT         FILE        BLOCK          ROW DBA    TEXT
------- ------------ ------------ ------------ ------ ----------------------------------------
  58397            4          390            0 4,390  alter system dump datafile 4 block 390 ;

SCOTT@test> update t2 set loc=upper(loc) where deptno=10;
1 row updated.

SCOTT@test> alter system checkpoint ;
System altered.

SCOTT@test> alter system flush BUFFER_CACHE;
System altered.

SCOTT@test> alter system dump datafile 4 block 390;
System altered.
---注意没有提交.

Block header dump:  0x01000186
Object id on Block? Y
seg/obj: 0xe41d  csc: 0x02.cb061ba3  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1000181 ver: 0x01 opc: 0
     inc: 0  exflg: 0

Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.01e.00001452  0x00801638.09ca.20  C---    0  scn 0x0002.cb061a46
0x02   0x000a.026.00001450  0x0080163b.09ca.03  ----    1  fsc 0x0000.00000000

2.执行提交以后:

--提交以后:
SCOTT@test> commit ;
Commit complete.

SCOTT@test> alter system checkpoint ;
System altered.

SCOTT@test> alter system flush BUFFER_CACHE;
System altered.

SCOTT@test> alter system dump datafile 4 block 390;
System altered.

Block header dump:  0x01000186
Object id on Block? Y
seg/obj: 0xe41d  csc: 0x02.cb061ba3  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1000181 ver: 0x01 opc: 0
     inc: 0  exflg: 0

Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.01e.00001452  0x00801638.09ca.20  C---    0  scn 0x0002.cb061a46
0x02   0x000a.026.00001450  0x0080163b.09ca.03  ----    1  fsc 0x0000.00000000

--因为数据已经在磁盘,提交并没有改写块的内容.对比没有变化.

3.执行select看看:

SCOTT@test> select * from t2 where deptno=10 ;
      DEPTNO DNAME          LOC
------------ -------------- -------------
          10 ACCOUNTING     NEW YORK

SCOTT@test> alter system flush BUFFER_CACHE;
System altered.

SCOTT@test> alter system checkpoint ;
System altered.

SCOTT@test> alter system dump datafile 4 block 390;
System altered.

Block header dump:  0x01000186
Object id on Block? Y
seg/obj: 0xe41d  csc: 0x02.cb061c51  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x1000181 ver: 0x01 opc: 0
     inc: 0  exflg: 0

Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.01e.00001452  0x00801638.09ca.20  C---    0  scn 0x0002.cb061a46
0x02   0x000a.026.00001450  0x0080163b.09ca.03  C---    0  scn 0x0002.cb061be7

--使用diff比较:

$  diff -Nur /tmp/a1.txt /tmp/a3.txt
--- /tmp/a1.txt 2015-01-30 10:07:23.340509813 +0800
+++ /tmp/a3.txt 2015-01-30 10:14:48.975510120 +0800
@@ -1,12 +1,12 @@
Block header dump:  0x01000186
  Object id on Block? Y
- seg/obj: 0xe41d  csc: 0x02.cb061ba3  itc: 2  flg: E  typ: 1 - DATA
+ seg/obj: 0xe41d  csc: 0x02.cb061c51  itc: 2  flg: E  typ: 1 - DATA
      brn: 0  bdba: 0x1000181 ver: 0x01 opc: 0
      inc: 0  exflg: 0

  Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.01e.00001452  0x00801638.09ca.20  C---    0  scn 0x0002.cb061a46
-0x02   0x000a.026.00001450  0x0080163b.09ca.03  ----    1  fsc 0x0000.00000000
+0x02   0x000a.026.00001450  0x0080163b.09ca.03  C---    0  scn 0x0002.cb061be7

data_block_dump,data header at 0x6976c64
===============
@@ -30,7 +30,7 @@
0x18:pri[3] offs=0x1f80
block_row_dump:
tab 0, row 0, @0x1f3c
-tl: 26 fb: --H-FL-- lb: 0x2  cc: 3
+tl: 26 fb: --H-FL-- lb: 0x0  cc: 3
col  0: [ 2]  c1 0b
col  1: [10]  41 43 43 4f 55 4e 54 49 4e 47
col  2: [ 8]  4e 45 57 20 59 4f 52 4b

--对比很容易知道两者的变化.

时间: 2024-10-23 10:25:21

[20150130]块清理(block cleanout).txt的相关文章

[20150225]Delayed Block Cleanout.txt

[20150225]Delayed Block Cleanout.txt --主要原因是buffer太小或者修改的信息太大,大于buffer 的10%,出现一些块在dml时已经不在buffer.这样在提交时剩下的block不触 --摸,仅仅修改undo段的提交标志,表示事务已经结束. --这样仅仅在下次select或者操作相应的数据块是在修改itl槽以及块内的信息,清除lb标识. --昨天看了Apress.Oracle.Database.Transactions.and.Locking.Reve

[20150228]Delayed Block Cleanout 2.txt

[20150228]Delayed Block Cleanout 2.txt --前几天我自己做了1次Delayed Block Cleanout的例子,我一直有一个疑问. --链接如下:http://blog.itpub.net/267265/viewspace-1441526/ --如果我很久不查询这些块,scn会是多少呢?这个一直是我的疑问,重复测试: 1.建立测试环境: SCOTT@test> @ver1 PORT_STRING                    VERSION   

[20170611]关于数据块地址的计算.txt

[20170611]关于数据块地址的计算.txt --//如果数据库出现一些问题,会在alert或者跟踪文件,或者屏幕出现一些错误提示.例如: ORA-00600: internal error code, arguments: [2662], [3], [392066208], [3], [392066212], [4194825], [], [], [], [], [], [] ORA-600 [2662] [a] [b] {c} [d] [e] Arg [a] Current SCN WR

[20150518]关于块转储问题2.txt

[20150518]关于块转储问题2.txt --我自己在学习oracle有时候使用块转储时,发现转储的内容跟我自己的想象不一样. --正好前一阵子ITPUB有人也遇到类似的问题,自己做一个简单探究,参考链接如下: http://blog.itpub.net/267265/viewspace-1655497/ -- 我前面提到块转储alter system dump datafile 4 block 1523;,仅仅从数据文件读取.无论在何种情况下. -- 昨天看了相关文档,可以使用如下: AL

[20121016]坏块处理以及数据恢复.txt

[20121016]坏块处理以及数据恢复.txt 如果产生坏块,在没有备份的情况下,如何最大程度的恢复信息,减少损失. SQL> select * from v$version ; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produ

[20111223]索引键值在B tree索引块中的顺序.txt

[20111223]索引键值在B tree索引块中的顺序.txt 参考链接:http://www.adellera.it/blog/2009/05/24/order-keys-inside-index-blocks/ 自己为了加强理解重复一下对方的测试! 1.建立测试表以及索引 SQL> select * from v$version; BANNER -------------------------------------------------------------------------

内联元素(inline element)和块元素(block element)

文章简介:CSS里有哪些常见的块级元素和行内元素?  根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为"block",成为"块级"元素(block-level):而span元素的默认display属性值为"inline",称为"行内"元素. div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高

块元素block element和内联元素inline element_CSS/HTML

内联级元素(inline-level element)中试图插入块级(block-level element)元素.这样做是不允许的.唯一的能在内联元素中插入块级元素的例外是object标签.那么什么是内联级元素(inline-level element)和块级(block-level element)元素呢?. 块元素(block element)一般是其他元素的容器元素,块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签''P"."form"这个

[20150130]关于flashback补充3.txt

[20150130]关于flashback补充3.txt --昨天写了http://blog.itpub.net/267265/viewspace-1418458/,听别人实际上只要只要recover database,就可以不需要open --restelogs打开. 看来自己老了,忘记了基本的东西,重复测试看看. SYS@test> shutdown immediate ; Database closed. Database dismounted. ORACLE instance shut