Oracle中flush buffer cache和x$bh

news/2024/4/20 21:27:41/文章来源:https://blog.csdn.net/jnrjian/article/details/129133292

对oracle数据库执行alter system flush buffer_cache;指令发现,x$bh表中已经存在的信息并不会被清除。

实验环境:
1.操作系统

  1. [oracle@oracle ~]$ uname -a
  2. Linux oracle.example.com 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
  3. [oracle@oracle ~]$ lsb_release -a
  4. LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
  5. Distributor ID: RedHatEnterpriseServer
  6. Description:    Red Hat Enterprise Linux Server release 6.5 (Santiago)
  7. Release:        6.5
  8. Codename:       Santiago

2.数据库版本

  1. SYS@proc> select * from v$version where rownum=1;
  2. BANNER
  3. --------------------------------------------------------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production


实验过程:

  1. SYS@proc> drop table test purge;
  2. Table dropped.
  3. SYS@proc> create table test as select * from dba_objects;
  4. Table created.
  5. SYS@proc> select file#,dbablk,state from x$bh where obj=(select data_object_id from dba_objects where owner='SYS' and object_name='TEST') order by dbablk;
  6.      FILE#     DBABLK      STATE
  7. ---------- ---------- ----------
  8.          1      93952          1
  9. SYS@proc> shutdown immediate;
  10. Database closed.
  11. Database dismounted.
  12. ORACLE instance shut down.
  13. SYS@proc> startup;
  14. ORACLE instance started.
  15. Total System Global Area 521936896 bytes
  16. Fixed Size                 2254824 bytes
  17. Variable Size            159385624 bytes
  18. Database Buffers         356515840 bytes
  19. Redo Buffers               3780608 bytes
  20. Database mounted.
  21. Database opened.
  22. SYS@proc> select file#,dbablk,state from x$bh where obj=(select data_object_id from dba_objects where owner='SYS' and object_name='TEST') order by dbablk;
  23. no rows selected
  24. SYS@proc> select count(*) from test;
  25.   COUNT(*)
  26. ----------
  27.      86991
  28. SYS@proc> select file#,dbablk,state from x$bh where obj=(select data_object_id from dba_objects where owner='SYS' and object_name='TEST') order by dbablk;
  29.      FILE#     DBABLK      STATE
  30. ---------- ---------- ----------
  31.          1      93952          1
  32.          1      93952          3
  33.          1      93952          3
  34.          1      94668          1
  35. ...省略部分内容...
  36.      FILE#     DBABLK      STATE
  37. ---------- ---------- ----------
  38.          1      97609          1
  39.          1      97743          1
  40.          1      97744          1
  41.          1      97745          1
  42. 318 rows selected.
  43. SYS@proc> alter system flush buffer_cache;
  44. System altered.
  45. SYS@proc> select file#,dbablk,state from x$bh where obj=(select data_object_id from dba_objects where owner='SYS' and object_name='TEST') order by dbablk;
  46.      FILE#     DBABLK      STATE
  47. ---------- ---------- ----------
  48.          1      93952          0
  49.          1      93952          0
  50.          1      93952          0
  51.          1      94668          0
  52. ...省略部分内容...
  53.      FILE#     DBABLK      STATE
  54. ---------- ---------- ----------
  55.          1      97609          0
  56.          1      97654          0
  57.          1      97738          0
  58.          1      97739          0


需要注意的地方:
select file # , dbablk , state from x$bh where obj = ( select data_object_id from dba_objects where owner = 'SYS' and object_name = 'TEST' ) order by dbablk ; 

这里的data_object_id在对表做move后不能替换成object_id。 index rebuild 后都会变化。 X$BH 使用data_object_id
 

实验结论:
oracle数据库执行alter system flush buffer_cache; 只能清除数据缓存,并不能清除BH信息。

并不是不清理,而是标记为0 进行释放

     1     170333           0
     1     170333           0
     1     170333           1
     1     170334           1
     1     170334           0
     1     170335           0
     1     170335           1
     1     170335           0
     1     170336           0
     1     170336           1

4424 rows selected.

sys@RPTTEST> 
 



其他资料:
The possible values of X$BH.STATE are:

0, FREE, no valid block image
1, XCUR, a current mode block, exclusive to this instance
2, SCUR, a current mode block, shared with other instances
3, CR,   a consistent read (stale) block image
4, READ, buffer is reserved for a block being read from disk
5, MREC, a block in media recovery mode
6, IREC, a block in instance (crash) recovery mode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71776.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虹科新闻 | 虹科与b-plus正式建立合作伙伴关系,共同致力于用于ADAS/AD系统开发的VV测量解决方案

虹科b-plus 携手共创未来! 近期,虹科与德国b-plus正式建立合作伙伴关系。未来,虹科与b-plus将共同致力于提供用于ADAS/AD系统开发的V&V测量解决方案。 合作寄语 虹科CEO陈秋苑女士表示:“虹科非常期待与b-plus合作&#x…

Microsoft Dynamics 365:导入License到服务层,通过Business Central Administration Shell

本文主要是Microsoft Dynamics 365的License导入的图解干货,不多赘述,直接上图:第一步:准备好的License文件放在你喜欢的目录下第二步:到开始程序里找到并打开 Business Central Administration Shell3.第三步&#xf…

Day895.MySql误删数据还原方案 -MySQL实战

MySql误删数据还原方案 Hi,我是阿昌,今天学习记录的是关于MySql误删数据还原方案的内容。 传统的高可用架构是不能预防误删数据的,因为主库的一个 drop table 命令,会通过 binlog 传给所有从库和级联从库,进而导致整…

ASE20N60-ASEMI的MOS管ASE20N60

编辑-Z ASE20N60在TO-247封装里的静态漏极源导通电阻(RDS(ON))为0.4Ω,是一款N沟道高压MOS管。ASE20N60的最大脉冲正向电流ISM为80A,零栅极电压漏极电流(IDSS)为10uA,其工作时耐温度范围为-55~150摄氏度。ASE20N60功耗…

UVM实战--加法器

前言 这里以UVM实战(张强)第二章为基础修改原有的DUT,将DUT修改为加法器,从而修改代码以使得更加深入的了解各个组件的类型和使用。 一. 组件的基本框架 和第二章的平台的主要区别点 (1)有两个transactio…

我的三周年创作纪念日——学习不止,创作不停

机缘 最开始写文章博客,是为了用输出倒逼自己输入。 从校园离开后,才逐渐意识到学习的不容易。没有写好的教材课程、没有画好的考点重点,没有一起学习的同学,更没有明确的学习方向和路径。 数据分析方向可以学的东西太多了&…

P18 PyTorch 感知机的梯度推导

前言这里面简单介绍一下单层感知机和多层感知机的模型参考:https://www.bilibili.com/video/BV17e4y1q7NG?p41一 单层感知机模型输入: k 代表网络层数,i 代表输入节点的编号前向传播: 权重系数k: 层数i: 前一层输入节点编号j: 当前层输出节点编号这里&a…

软件工程学习

文章目录前言软件特点分类软件工程软件危机项目管理工具总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 软件 软件的定义 软件不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 特点 …

windows 安装Qt

下载 下载地址https://download.qt.io/,此文已5.7.0为例子。 根据图片依次选择即可。 安装 安装过程参考另一篇文章Ubuntu 安装 Qt5.7.0即可 配置环境变量 ps:我就是之前没配置环境变量,直接使用创建项目,项目源码直接运行是…

CentOS7安装MariaDB步骤

文章目录1.配置MariaDB yum源2.安装MariaDBMariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 CentOS 6 或早期的版…

数据结构与算法基础(王卓)(11):栈的定义及其基础操作(顺序表和链表的初始化、求长度,是否为空,清空和销毁、出栈、压栈)

栈的定义: stack:一堆,一摞;堆;垛; 顺序栈和链栈的设计参考: 数据结构与算法基础(王卓)(7):小结:关于链表和线性表的定义及操作_宇 -Yu的博客-C…

备考软考系统分析师-1

系统分析师教程网盘资源:链接: https://pan.baidu.com/s/1ekHuCJJ3o5RrW1xeMkxhdA 提取码: 6666 信息系统战略规划 信息系统开发方法: 结构化法 瀑布模型 原型法 自顶向下 用于需求阶段较多 面向对象 自底向上 面向服务的方法 系统建模 政府信息…

MyBatis-Plus——代码生成器(3.5.1+版本)

文章目录配置数据源配置(DataSource)全局配置(GlobalConfig)包配置(PackageConfig)策略配置(StrategyConfig)模板引擎配置(TemplateEngine)代码生成器测试样例…

【2】MYSQL数据的导入与导出

文章目录 MYSQL-库(相同库名称)的导入导出MYSQL-库(不同库名称)的导入导出MYSQL-表的导入导出MYSQL-表的指定查询记录导入导出前提: 客户端工具是:SQLyog MYSQL-库(相同库名称)的导入导出 1、选中指定库——右键,选择【将数据库复制到不同的主机/数据库】 2、选中指…

客户服务知识库的最佳实践7个步骤

每个公司的声誉都依赖于客户,如果客户因为想要购买你的产品找到你,但是了解到你的客户服务做的不好,可能也会放弃你的产品,就像市场营销依赖于潜在客户的关系一样,公司的服务部门也需要依赖于现有客户的关系&#xff0…

arxiv2017 | 用于分子神经网络建模的数据增强 SMILES Enumeration

论文标题:SMILES Enumeration as Data Augmentation for Neural Network Modeling of Molecules论文地址:https://arxiv.org/abs/1703.07076代码地址:https://github.com/Ebjerrum/SMILES-enumeration一、摘要摘要中明显提出:先指…

AI又进化了,突破性革命来了

大家好,我是 Jack。 2023 年,AI 真的杀疯了。短短不到一年的时间,当我们还在感慨 AI 一键生成的二次元画作精美万分的时候,它已经进化到了写实美照也能手到擒来的地步。 更多的效果,可以看刚刚发布的视频,…

总是跳转到国内版(cn.bing.com)?New Bing使用全攻略

你是否想要使用强大的(被削后大嘘)New Bing? 你是否已经获得了New Bing的使用资格? 你是否在访问www.bing.com/new时提示页面不存在? 你是否在访问www.bing.com时总是重定向到cn.bing.com而使用不了New Bing? New Bi…

RocketMQ之(一)RocketMQ入门

一、RocketMQ入门一、RocketMQ 介绍1.1 RocketMQ 是什么?1.2 RocketMQ 应用场景01、应用解耦02、流量削峰03、数据分发1.3 RocketMQ 核心组成01、NameServer02、Broker03、Producer04、Consumer1.6 运转流程1.5 RocketMQ 架构01、NameServer 集群02、Broker 集群03、…

Linux docker(03)可使用GPU渲染的x11docker实战总结

该系列文章的目的旨在之前的章节基础上,使用x11docker构建一个可以使用GPU的docker容器。该容器可以用于3D图形渲染/XR 等使用GPU渲染的程序调试和运行。 0 why docker 为什么非要用x11docker,而不是其他的docker呢? 因为一般的docker是不…