首页 > 数据库 > Oracle > Instance Recover步骤
http://hi.baidu.com/zwfha/blog/item/d11b70c2fa2f5d36e5dd3bf8.html
这个文章很好
[@more@]mount到open状态时:
各个数据文件头的stop SCN值应该与控制文件中记录的数据文件最后SCN相同。
Instance recovery
注1:
回滚操作并不像大多数人想像的那样将数据库恢复到事务开始前的样子,实际上,仅仅是逻辑的将事物回滚,而数据库级所做的一些操作不会回到事务开始前的状态(比如,一个事务导致了某个段空间的扩展,数据库为这个段分区了新的extents,rollback操作不会把这些已经分配的块回收)
看下面示例:
SQL> create table t as select *from all_objects where 1=0;
表已创建。
SQL> select segment_name,extents,blocks from user_segments where segment_name='T';
SEGMENT_NA EXTENTS BLOCKS
---------- ---------- ----------T 1 8
SQL> set autotrace on statistic
SQL>SQL> select * from t;
未选定行
统计信息
------------------------------------------------------263 recursive calls0 db block gets
30 consistent gets
0 physical reads0 redo sizeSQL> insert into t select *from all_objects;
已创建5643行。
SQL> /已创建5643行。
SQL> select segment_name,extents,blocks from user_segments
SEGMENT_NA EXTENTS BLOCKS
---------- ---------- ----------T 17 256
SQL> rollback;
回退已完成。
SQL> select * from t;
未选定行
统计信息
----------------------------------------------------------29 recursive calls1 db block gets
255 consistent gets
0 physical reads176 redo sizeSQL> select segment_name,extents,blocks from user_segments;
SEGMENT_NA EXTENTS BLOCKS
---------- ---------- ----------T 17 256
刚创建表的时候分配1个extents,8个block,select是产生30 consistent gets经历30次IO操作
经历一次事务后回滚
回滚后,extents为17,block为256,select产生255 consistent gets经历255次IO操作
可见,rollback操作,实际上仅仅是对表做了逻辑rollback操作,分配给表的空间并不会回收,HWM升高。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/450962/viewspace-1027870/ ,如需转载,请注明出处,否则将追究法律责任。