Heim  >  Artikel  >  Datenbank  >  Oracle Undo的一些理解

Oracle Undo的一些理解

WBOY
WBOYOriginal
2016-06-07 17:31:58982Durchsuche

undo只是使数据库逻辑的恢复到原来的样子,所有修改都被逻辑的取消,但是数据库的结构和数据库块本身在回滚之后可能大不相同。

今天早上看到有一本上讲到undo的一些知识点,跟着做了一下,把过程记录下来

总结:undo只是使数据库逻辑的恢复到原来的样子,所有修改都被逻辑的取消,但是数据库的结构和数据库块本身在回滚之后可能大不相同。

  因为对于Oracle来说,回滚时,它就是做与前逻辑相反的工作,insert 对应delete,

      update对应 一个反的update

实验环境是oracle 11.1.0.3

1.创建一个空表

create table t as select * from all_objects where 1=0;

2.启动sqlplus的autotrace
SQL> set autotrace traceonly statistics

3.查询空表

SQL> select * from t;

no rows selected

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads
          0  redo size
      1183  bytes sent via SQL*Net to client
        409  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

我们看到只有3个逻辑读。(说明如果oracle的版本是11GR2之后的版本这个会是0,因为在R2有一个新特性--延迟段创建,概念是在create table表的时候不能分配任何的区段,只有在insert的时候才会创建段,,在R2中默认就是启用延迟段创建的)

4.插入数据

SQL> insert into t select * from all_objects;

5.Rollback

SQL> rollback;
6.查看IO

 SQL> select * from t;

no rows selected

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
      1025  consistent gets
          0  physical reads
          0  redo size
      1183  bytes sent via SQL*Net to client
        409  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

可以看到已经有大量的逻辑读了。因为insert的时候已经产生了高水位线了。

相关阅读:

Oracle Undo 镜像数据探究

Oracle 回滚(ROLLBACK)和撤销(Undo) 

Undo 表空间损坏导致无法open

Undo表空间失败的处理方法

Oracle Undo表空间重建与恢复

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Redis集群明细文档Nächster Artikel:Redis 代理服务Twemproxy