暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle提交写入重做,但不写入数据文件

askTom 2018-01-10
272

问题描述

嗨,汤姆,

我想验证一旦提交事务,只写入重做日志,但不写入数据文件。如何核实情况??

专家解答

我们可以做一个简单的演示

SQL> drop tablespace demo including contents and datafiles;

Tablespace dropped.

SQL>
SQL> create tablespace demo datafile 'C:\ORACLE\ORADATA\DB122\DEMO.DBF' size 2m autoextend on
  2  extent management local uniform size 1m;

Tablespace created.

SQL>
SQL> select to_char(ascii('X'),'XX') from dual;

TO_
---
 58
复制


因此,如果我在一列中创建一个包含很多 “X” 字符的表,我希望在数据文件中看到很多十六进制代码58。

SQL> create table t tablespace demo
  2  as select rpad('X',100,'X') col
  3  from dual
  4  connect by level <= 1000;

Table created.

C:\> od -x | grep "58 "

...
...
4105200 5858 5858 5858 5858 5858 5858 5858 5858
*
4105320 5858 5858 5858 5858 5858 5858 002c 6401
4105340 5858 5858 5858 5858 5858 5858 5858 5858
*
4105500 5858 5858 002c 6401 5858 5858 5858 5858
4105520 5858 5858 5858 5858 5858 5858 5858 5858
*
4105640 5858 5858 5858 5858 5858 5858 002c 6401
4105660 5858 5858 5858 5858 5858 5858 5858 5858
*
4106020 5858 5858 002c 6401 5858 5858 5858 5858
4106040 5858 5858 5858 5858 5858 5858 5858 5858
*
4106160 5858 5858 5858 5858 5858 5858 002c 6401
4106200 5858 5858 5858 5858 5858 5858 5858 5858
*
4106340 5858 5858 002c 6401 5858 5858 5858 5858
4106360 5858 5858 5858 5858 5858 5858 5858 5858
*
4106500 5858 5858 5858 5858 5858 5858 002c 6401
4106520 5858 5858 5858 5858 5858 5858 5858 5858
*

...
...
复制


现在,我将更新 (并提交) 所有这些行的更改,以查看字符为 “a” (十六进制代码41)。在执行此操作之前,请让数据文件当前包含41:

C:\>od -x DEMO.DBF | grep "41 "
2020000 a200 0000 0041 0000 0000 0000 0000 0501
2020020 a741 0000 0000 0000 0000 0000 0000 0000

复制


几乎没有。现在我的更新来了:

SQL> update t
  2  set col = rpad('A',100,'A');

1000 rows updated.

SQL> commit;

Commit complete.
复制


然而数据文件仍然没有显示任何内容

C:\>od -x DEMO.DBF | grep "41 "
2020000 a200 0000 0041 0000 0000 0000 0000 0501
2020020 a741 0000 0000 0000 0000 0000 0000 0000

复制


现在我做一个检查点,或者刷新缓冲区缓存,或者只是等待一段时间,直到缓冲区被写出来

C:\>od -x DEMO.DBF | grep "41 "
0540020 d341 0000 0008 0000 0080 0934 0000 0000
2020000 a21e 0000 0041 0200 84cd 958c 0d79 0401
4003640 0000 0000 0000 0000 0000 0000 4141 4141
4003660 4141 4141 4141 4141 4141 4141 4141 4141
4003740 4141 4141 4141 4141 4141 4141 0000 0000
4023640 0000 0000 0000 0000 0000 0000 4141 4141
4023660 4141 4141 4141 4141 4141 4141 4141 4141
4023740 4141 4141 4141 4141 4141 4141 0000 0000
4102140 4141 4141 4141 4141 4141 4141 4141 4141
4102300 4141 4141 022c 6401 4141 4141 4141 4141
4102320 4141 4141 4141 4141 4141 4141 4141 4141
4102440 4141 4141 4141 4141 4141 4141 022c 6401
4102460 4141 4141 4141 4141 4141 4141 4141 4141
4102620 4141 4141 022c 6401 4141 4141 4141 4141
4102640 4141 4141 4141 4141 4141 4141 4141 4141
4102760 4141 4141 4141 4141 4141 4141 022c 6401
4103000 4141 4141 4141 4141 4141 4141 4141 4141
4103140 4141 4141 022c 6401 4141 4141 4141 4141
4103160 4141 4141 4141 4141 4141 4141 4141 4141
4103300 4141 4141 4141 4141 4141 4141 022c 6401
4103320 4141 4141 4141 4141 4141 4141 4141 4141
4103460 4141 4141 022c 6401 4141 4141 4141 4141
4103500 4141 4141 4141 4141 4141 4141 4141 4141
4103620 4141 4141 4141 4141 4141 4141 022c 6401
4103640 4141 4141 4141 4141 4141 4141 4141 4141
4104000 4141 4141 022c 6401 4141 4141 4141 4141
4104020 4141 4141 4141 4141 4141 4141 4141 4141
4104140 4141 4141 4141 4141 4141 4141 022c 6401
4104160 4141 4141 4141 4141 4141 4141 4141 4141
4104320 4141 4141 022c 6401 4141 4141 4141 4141
4104340 4141 4141 4141 4141 4141 4141 4141 4141
4104460 4141 4141 4141 4141 4141 4141 022c 6401
4104500 4141 4141 4141 4141 4141 4141 4141 4141
4104640 4141 4141 022c 6401 4141 4141 4141 4141
4104660 4141 4141 4141 4141 4141 4141 4141 4141
4105000 4141 4141 4141 4141 4141 4141 022c 6401
4105020 4141 4141 4141 4141 4141 4141 4141 4141
4105160 4141 4141 022c 6401 4141 4141 4141 4141
4105200 4141 4141 4141 4141 4141 4141 4141 4141
4105320 4141 4141 4141 4141 4141 4141 022c 6401
4105340 4141 4141 4141 4141 4141 4141 4141 4141
4105500 4141 4141 022c 6401 4141 4141 4141 4141
4105520 4141 4141 4141 4141 4141 4141 4141 4141
...
...
...
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论