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

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:54

如何查看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

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】