ORACLE异步写实验

----------修改dept1表中的一行数据并提交

SQL> select deptno,dname,loc,rowid from dept1;

 

    DEPTNO   DNAME                      LOC                    ROWID

    ----------     -------------------          -------------            ------------------

10     ACCOUNTING          NEW YORK        AAALNOAAFAAAAA8AAA

20     RESEARCH                DALLAS              AAALNOAAFAAAAA8AAB

30     SALES                         CHICAGO          AAALNOAAFAAAAA8AAC

40     OPERATIONS           BOSTON            AAALNOAAFAAAAA8AAD

 

SQL> update dept1 set deptno=12 where loc='NEW YORK';

 

1 row updated.

 

SQL> commit;

 

Commit complete.

 

----------通过rowid可以得到

1.对象号AAALNO

2.文件号AAF

3.块号AAAAA8

4.行号AAA

 


===================================================================================================================================================================================================
                                    A         B           C          D           E         F           G         H          I            J           K         L           M        N           O         P          Q          R           S          T          U          V         W          X          Y          Z

A~Z 0~25                   0          1           2          3           4          5          6          7          8           9         10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25

a~z 26~51                26        27        28        29        30        31        32        33        34        35        36        37        38        39        40        41        42        43        44        45        46        47        48        49        50        51

0~9 52~61                52        53        54        55        56        57        58        59        60        61                                                                                                                                

+        62

/        63

===================================================================================================================================================================================================



 

AAALNO           select 11*64*64+13*64+14 from dual;                                

 

                            11*64*64+13*64+14

                            -----------------

                            45902

 

AAF                        4        就是文件编号    select file#,name from v$datafile;

FILE#           NAME

--------- ------------------------------------------------------------

     1 +DATA/prod/datafile/system.259.847900779

      2 +DATA/prod/datafile/undotbs1.260.847900791

      3 +DATA/prod/datafile/sysaux.261.847900795

      4 +DATA/prod/datafile/undotbs2.263.84790080

     5 +DATA/prod/datafile/users.264.847900809

 

AAAAA8                60

 

AAA                       row0

 

===================================================================================================================================================================================================

 

SQL> conn / as sysdba

Connected.

----------dump出内存中的块

SQL>  alter system dump datafile 5 block 60;

 

System altered.

----------dump出磁盘中的块

SQL> alter system dump datafile '+DATA/prod/datafile/users.264.847900809' block 60;

 

System altered.

 

----------dump内存中的块

 

block_row_dump:

tab 0, row 0, @0x1f66                                                     row0代表第一行

tl: 26 fb: --H-FL-- lb: 0x2  cc: 3

col  0: [ 2]  c1 0d                                                         col0第一列

col  1: [10]  41 43 43 4f 55 4e 54 49 4e 47

col  2: [ 8]  4e 45 57 20 59 4f 52 4b

tab 0, row 1, @0x1f50

tl: 22 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 15

col  1: [ 8]  52 45 53 45 41 52 43 48

col  2: [ 6]  44 41 4c 4c 41 53

tab 0, row 2, @0x1f3c

tl: 20 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 1f

col  1: [ 5]  53 41 4c 45 53

col  2: [ 7]  43 48 49 43 41 47 4f

tab 0, row 3, @0x1f24

tl: 24 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 29

col  1: [10]  4f 50 45 52 41 54 49 4f 4e 53

col  2: [ 6]  42 4f 53 54 4f 4e

end_of_block_dump

 

----------dump磁盘中的块

 

block_row_dump:

tab 0, row 0, @0x1f66

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

tab 0, row 1, @0x1f50

tl: 22 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 15

col  1: [ 8]  52 45 53 45 41 52 43 48

col  2: [ 6]  44 41 4c 4c 41 53

tab 0, row 2, @0x1f3c

tl: 20 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 1f

col  1: [ 5]  53 41 4c 45 53

col  2: [ 7]  43 48 49 43 41 47 4f

tab 0, row 3, @0x1f24

tl: 24 fb: --H-FL-- lb: 0x0  cc: 3

col  0: [ 2]  c1 29

col  1: [10]  4f 50 45 52 41 54 49 4f 4e 53

col  2: [ 6]  42 4f 53 54 4f 4e

end_of_block_dump

 

 

 

 select dump(10,'16') from dual;

 

DUMP(10,'16')

-----------------

Typ=2 Len=2: c1,b

 

 

select dump(12,'16') from dual;

 

DUMP(12,'16')

-----------------

Typ=2 Len=2: c1,d

 

 

 

可以看出内存中的块已经变成了12,而disk上的块还是10,所以commit只是把日志写到了磁盘上,脏块不一定写到了磁盘中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值