1. 首页 > ITPUX技术网 > 正文

如何查看buffer cache的脏数据是否写回磁盘

如何查看buffer cache的脏数据是否写回磁盘

paul@TEST(192.168.1.117)> select file_id,block_id from dba_extents where segment_name=’TEST1′ and ow
ner=’PAUL’;

FILE_ID BLOCK_ID
———- ———-
6 273

已用时间: 00: 00: 00.00
paul@TEST(192.168.1.117)> insert into test1 values(4);

已创建 1 行。

已用时间: 00: 00: 00.00
paul@TEST(192.168.1.117)> commit;

提交完成。

已用时间: 00: 00: 00.00
paul@TEST(192.168.1.117)> select file#,block#,dirty from v$bh where file#=6 and block#>273;

FILE# BLOCK# D
———- ———- –
6 274 N
6 275 N
6 276 Y –这个就是刚刚产生的数据,可以看commit后没有把数据写入磁盘
6 277 N
6 278 N
6 279 N
6 280 N

已选择7行。

已用时间: 00: 00: 00.00

paul@TEST(192.168.1.117)> alter system switch logfile;
还有alter system checkpoint
–日志切换,触发检查点,调用dbwr进程将脏数据写回磁盘

系统已更改。

已用时间: 00: 00: 00.01
paul@TEST(192.168.1.117)> select file#,block#,dirty from v$bh where file#=6 and block#>273;

FILE# BLOCK# D
———- ———- –
6 274 N
6 275 N
6 276 N –已经写回磁盘
6 277 N
6 278 N
6 279 N
6 280 N

已选择7行。

已用时间: 00: 00: 00.00
paul@TEST(192.168.1.117)>
有时我们做了 alter system switch logfile,后,看到的还是y,那是因为checkpoint start还未complete

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息