Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1268997
  • 博文数量: 125
  • 博客积分: 4372
  • 博客等级: 上校
  • 技术积分: 1055
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-12 09:53
文章分类

全部博文(125)

文章存档

2019年(3)

2018年(2)

2017年(1)

2016年(2)

2015年(4)

2014年(11)

2013年(5)

2012年(4)

2011年(12)

2010年(10)

2009年(17)

2008年(17)

2007年(25)

2006年(12)

分类: Oracle

2012-07-30 21:21:59

1.以system用户登录SQL*Plus。
 
2.禁用检查点调整功能。
 
 SQL>alter system set fast_start_mttr_target=0;
 
3.创建一个表和启动一个事务,从而模拟一个工作负荷。
 
  SQL>create table t1 as select * from all_objects where 1=2;
 
  where 1=2 恒为假,但是会输出查询表的所有列,单没有任何行,以上就创建了一个表建构。
 
  SQL>insert into t1 select * from all_objects;
 
4.运行如下查询,查看此时出现奔溃时的情况下恢复实例需要完成的工作。
 
SQL> select recovery_estimated_ios,actual_redo_blks,estimated_mttr from v$instance_recovery;
RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS ESTIMATED_MTTR
---------------------- ---------------- --------------
                   101            12510             19
SQL>
 
  这个查询会显示实例恢复期间需要在数据文件上进行的读/写操作数以及必须处理的重做数据块,此外,estimated_mttr列显示了以秒为单位的实例恢复时间。
 
5.提交这个事务,然后重新执行上面的查询,看到变化不大,说明commit命令不会对DBWn进程产生影响,并且不会迁移检查点位置。
SQL> commit;
Commit complete.
SQL> select recovery_estimated_ios,actual_redo_blks,estimated_mttr from v$instance_recovery;
RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS ESTIMATED_MTTR
---------------------- ---------------- --------------
                   106            12529             19
SQL>
 
6.手动执行检查点进程。
 
 SQL>alter system checkpoint;
 
 因为DBWn进程需要将所有变化的数据块都写至磁盘,所以这个操作将会在数秒中后结束。
 
7.重新执行上面的查询。
 
SQL> select recovery_estimated_ios,actual_redo_blks,estimated_mttr from v$instance_recovery;
RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS ESTIMATED_MTTR
---------------------- ---------------- --------------
                     0                0             19
SQL>
  可以看到recovery_estimated_ios,actual_redo_blks被彻底清除(可能全部为零),ESTIMATED_MTTR列中的值可能不会变小,这是因为该列的内容不会被实时更新。
 
8.最后删除创建的表。
 
 SQL>drop table t1;
 
 
阅读(1805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~