您的位置:首页 > 其它

undo只是逻辑还原

2012-05-29 09:29 134 查看
undo只是逻辑还原数据库而不是物理的还原:

测试:

1.新建一个空表

create table t1

(

sid int not null primary key,

sname varchar2(10)

)tablespace test;

create table t2

(

sid int not null primary key,

sname varchar2(10)

)tablespace test;

select * from t2;

2.做全表扫描并查看I/O数量

set autotrace traceonly statistics;

select * from t2;

统计信息

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

0 recursive calls

0 db block gets

3 consistent gets

0 physical reads

0 redo size

399 bytes sent via SQL*Net to client

509 bytes received via SQL*Net from client

1 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

0 rows processed

set autotrace off;

--循环导入数据

declare

maxrecords constant int:=20000;

i int :=1;

begin

for i in 1..maxrecords loop

insert into t1 values(i,'ocpyang');

end loop;

dbms_output.put_line(' 成功录入数据! ');

commit;

end;

/

insert into t2 select * from t1;

rollback;



set autotrace traceonly statistics;

select * from t2;

统计信息

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

0 recursive calls

0 db block gets

53 consistent gets

0 physical reads

0 redo size

399 bytes sent via SQL*Net to client

509 bytes received via SQL*Net from client

1 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

0 rows processed

虽然数据rollback但是insert的操作还是导致表的高水位线,这些数据块并

没有因为rollback而回滚.

验证了数据库并没有物理完全恢复,仅仅是逻辑恢复!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: