ORACLE异步写实验
2015-01-25 11:05
288 查看
----------修改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只是把日志写到了磁盘上,脏块不一定写到了磁盘中
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只是把日志写到了磁盘上,脏块不一定写到了磁盘中
相关文章推荐
- Oracle8i 函数索引实验
- [Oracle Streams] 初步实验Oracle Streams
- 【实验】【CUBE】oracle分组函数之CUBE演示及与ROLLUP的比较
- Oracle DataGuard 数据备份方案实验
- oracleRMAN备份与恢复实验
- 配置oracle的同步和异步I/O
- oracle dataguard 实验(单数据库环境+物理standby)
- 转:oracle10g新功能,log error的实验
- oracle 日志恢复实验
- [Oracle Streams] 初步实验Oracle Streams
- Oracle恢复实验笔记
- Oracle 10g Flashback实验
- 11月17日Oracle实验内容
- [转]Oracle DataGuard学习、实验笔记
- Oracle恢复实验一:使用添加数据文件之前的控制文件
- Oracle的选择函数索引实验
- oracle 实验三 单表查询
- oracle rman 实验(oracle rman Cumulative累积增量备份和恢复)
- 虚拟机增加硬盘以及更改ORACLE DB_RECOVERY_FILE_DEST参数实验
- 关于Oracle事务的一些实验