[20231023]备库与alter system flush buffer_cache.txt

这篇具有很好参考价值的文章主要介绍了[20231023]备库与alter system flush buffer_cache.txt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[20231023]备库与alter system flush buffer_cache.txt

--//测试遇到的问题,在备库执行alter system flush buffer_cache;刷新数据缓存命令无效.
--//通过例子验证:

1.环境:
SYS@192.168.100.235:1521/orcl> @ ver1
SYS@192.168.100.235:1521/orcl> @ pr
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 19.0.0.0.0
BANNER                        : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
BANNER_LEGACY                 : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.
--//235 主库,237 备库、

2.建立测试例子:
create table t1  tablespace users pctfree 99 as select level id, lpad(level, 3500, 'T1') vc from dual connect by level <= 500 order by dbms_random.random;
--//建立的表T1非常特殊1块1条记录,这样便于后面的分析。

3.测试:
--//在备库测试:
SYS@192.168.100.237:1521/orcldg> select rowid,id,substr(vc,3498,3) from t1 where id=1;
ROWID                      ID SUBSTR
------------------ ---------- ------
AAA8CMAAHAAAErrAAA          1 1T1

SYS@192.168.100.237:1521/orcldg> @ rowid AAA8CMAAHAAAErrAAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
    245900          7      19179          0  0x1C04AEB           7,19179              alter system dump datafile 7 block 19179

SYS@192.168.100.237:1521/orcldg> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             5 mrec            0          0          0          0          0          0          0          0          0          0          0          0          0     524288          0          0          0 T1

SYS@192.168.100.237:1521/orcldg> alter system flush buffer_cache ;
System altered.

SYS@192.168.100.237:1521/orcldg> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             5 mrec            0          0          0          0          0          0          0          0          0          0          0          0          0     524288          0          0          0 T1
--//备库上记录的STATE1=mrec,也就是在备库执行alter system flush buffer_cache ;,根本无法刷新这些数据块从数据缓存。

--//在主库测试:
SYS@192.168.100.235:1521/orcl> select rowid,id,substr(vc,3498,3) from t1 where id=1;
ROWID                      ID SUBSTR
------------------ ---------- ------
AAA8CMAAHAAAErrAAA          1 1T1

SYS@192.168.100.235:1521/orcl> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             1 xcur            2          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0      65535 T1
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
--//STATE1=xcur

SYS@192.168.100.235:1521/orcl> alter system flush buffer_cache;
System altered.

SYS@192.168.100.235:1521/orcl> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
--//刷新数据缓存后变成了STATE1=free.

--//补充测试,经历几天,该数据块应该不再数据缓存,继续测试看看,验证是否是state1=mrec的原因。
SYS@192.168.100.237:1521/orcldg> @ bh1 7 19179
no rows selected

SYS@192.168.100.237:1521/orcldg> select rowid,id,substr(vc,3498,3) from t1 where id=1;
ROWID                      ID SUBSTR
------------------ ---------- ------
AAA8CMAAHAAAErrAAA          1 1T1

SYS@192.168.100.237:1521/orcldg> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             1 xcur            1          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0      65535 T1
--//注意看现在状态是xcur.

SYS@192.168.100.237:1521/orcldg> alter system flush buffer_cache ;
System altered.

SYS@192.168.100.237:1521/orcldg> @ bh1 7 19179
DBARFIL      DBABLK CLASS CLASS_TYPE         STATE STATE1        TCH CR_SCN_BAS CR_SCN_WRP CR_UBA_FIL CR_UBA_BLK CR_UBA_SEQ CR_UBA_REC CR_XID_USN CR_XID_SLT CR_XID_SQN CR_CLS_BAS CR_CLS_WRP   LRBA_SEQ   LRBA_BNO   HSCN_BAS   HSCN_WRP   HSUB_SCN OBJECT_NAME
------- ----------- ----- ------------------ ----- ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
      7       19179     1 data block             0 free            0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0 T1
--//可以发现state1=free,这样是可以刷新出共享池的.mrec状态的不行.

SYS@192.168.100.237:1521/orcldg> SELECT /*+ leading (t1 t2) use_nl(t2) */ t1.id,substr(t1.vc,3496,5) vc1,substr(t2.vc,3496,5) vc2 FROM t1 , t2 WHERE t1.id = t2.id AND t1.id between 1 and 10;
        ID VC1        VC2
---------- ---------- ----------
         1 1T1T1      2T2T1
         2 1T1T2      2T2T2
        10 1T110      2T210
         9 1T1T9      2T2T9
         3 1T1T3      2T2T3
         4 1T1T4      2T2T4
         5 1T1T5      2T2T5
         6 1T1T6      2T2T6
         7 1T1T7      2T2T7
         8 1T1T8      2T2T8
10 rows selected.
--//这样可以再现我链接遇到的情况.id=10,9在前面输出.
--// http://blog.itpub.net/267265/viewspace-2990586/ =>[20231020]为什么刷新缓存后输出记录顺序发生变化5.txt

SYS@192.168.100.237:1521/orcldg> select * from V$SESSION_WAIT_HISTORY where sid=1276 and event ='db file parallel read';
       SID       SEQ#     EVENT# EVENT                 P1TEXT      P1 P2TEXT      P2 P3TEXT      P3  WAIT_TIME WAIT_TIME_MICRO TIME_SINCE_LAST_WAIT_MICRO     CON_ID
---------- ---------- ---------- --------------------- ---------- --- ---------- --- ---------- --- ---------- --------------- -------------------------- ----------
      1276          1        184 db file parallel read files        1 blocks       7 requests     7          0              37                         94          0
      1276          4        184 db file parallel read files        1 blocks       8 requests     8          0              42                         70          0
--//确实会出现2次db file parallel read.

5.附上bh1.sql脚本:
 $ cat bh1.sql
set echo off
--------------------------------------------------------------------------------
-- @name: bh
-- @author: dion cho
-- @note: show block header
-- @usage: @bh f# b#
--------------------------------------------------------------------------------

col object_name format a12
col state1 format a6
col dbarfil format 999999
col dbablk  format 9999999999
col state format 99
col class format 99

select
  b.dbarfil,
  b.dbablk,
  b.class,
  decode(b.class,1,'data block',2,'sort block',3,'save undo block', 4,
  'segment header',5,'save undo header',6,'free list',7,'extent map',
  8,'1st level bmb',9,'2nd level bmb',10,'3rd level bmb', 11,'bitmap block',
  12,'bitmap index block',13,'file header block',14,'unused',
  15,'system undo header',16,'system undo block', 17,'undo header',
  18,'undo block') class_type,
  state,
  decode(state,0,'free',1,'xcur',2,'scur',3,'cr', 4,'read',5,'mrec',6,'irec',7,'write',8,'pi', 9,'memory',10,'mwrite',11,'donated') as state1,
  b.tch,
  cr_scn_bas,
  cr_scn_wrp,
  cr_uba_fil,
  cr_uba_blk,
  cr_uba_seq,
  cr_uba_rec,
  cr_xid_usn,
  cr_xid_slt,
  cr_xid_sqn,
  cr_cls_bas,
  cr_cls_wrp,
  lrba_seq,
  lrba_bno,
  hscn_bas,
  hscn_wrp,
  hsub_scn,
  (select object_name from dba_objects where object_id = b.obj) as object_name
from x$bh b
where
  dbarfil = &1 and
  dbablk = &2
;
--select b.*,
--  decode(b.state,0,'free',1,'xcur',2,'scur',3,'cr', 4,'read',5,'mrec',6,'irec',7,'write',8,'pi', 9,'memory',10,'mwrite',11,'donated') as state,
--  (select object_name from dba_objects where object_id = b.obj) as object_name
--from x$bh b
--where
--  dbarfil = &1 and
--  dbablk = &2
--;

文章来源地址https://www.toymoban.com/news/detail-718259.html

到了这里,关于[20231023]备库与alter system flush buffer_cache.txt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 11g ADG级联备库基础测试环境准备

    客户通过duplicate生产备库的方式创建cascade备库。 发现每次都会遇到两个文件报错,ORA-17628: Oracle error 19505错误,且每一次跑,报错文件不一样。 现在想帮客户验证,这属于是正常现象还是bug; 本文需要先模拟客户11.2.0.3环境,构建备库、级联备库环境; 自己测试资源有限,

    2024年02月04日
    浏览(35)
  • 源端为备库的场景下Duplicate失败问题

    环境: Oracle 11.2.0.3 + OEL 7.9 A - B - C 级联ADG环境:db11g - db11gadg - db11gcas 之前测试提到,从一级备库duplicate到二级备库会报错: 客户确认是从一级备库duplicate到二级备库OK,查询文档: RMAN Duplicate From Active Database Fails when Source Database is Standby and Patch 11715084 Applied (Doc ID 1522062.1) 原

    2024年02月05日
    浏览(32)
  • flush()函数用法详解

    最近在写一个小项目时用到了Java的序列化,在写入输出流时用到了 flush() 函数。网上搜了一下感觉讲的不是很详细,在此写一下自己的理解 先给出代码片段 在以上代码中我们用ObjectOutputStream 类用来序列化obj对象,并将该对象序列化到一个文件中。 我们给出了细微差别的两

    2024年02月05日
    浏览(82)
  • InnoDB引擎之flush脏页

    利用 WAL 技术,数据库将随机写转换成了顺序写,大大提升了数据库的性能,由此也带来了内存脏页的问题。   脏页会被后台线程自动 flush,也会由于数据页淘汰而触发 flush,而刷脏页的过程由于会占用资源,可能会让你的更新和查询语句的响应时间长一些。   当内存数据页

    2023年04月10日
    浏览(141)
  • 理解ES的refresh、flush、merge

    对于任何数据库的写入来讲fsync刷盘虽然保证的数据的安全但是如果每次操作都必须fsync一次,那fsync操作将是一个巨大的操作代价,在衡量对数据安全与操作代价下,ES引入了一个较轻量的操作refresh操作来避免频繁的fsync操作。 在ES中,当写入一个新文档时,首先被写入到内

    2024年02月08日
    浏览(62)
  • Java IO流 flush()的作用和缓冲流

    哪些流是缓冲流 根据Java官方文档关于Buffered Streams的介绍,缓冲流有四种: BufferedInputStream:包装字节输入流 BufferedOutputStream:包装字节输出流 BufferedReader:包装字符输入流 BufferedWriter:包装字符输出流 这些流又被称为包装流/处理流,用于包装非缓冲的流 There are four buffere

    2024年02月04日
    浏览(32)
  • cache操作:clean、invalidate与flush的含义

    本文试图搞清楚cache几个操作:clean、invalidate与flush的含义。由于只用过ARM和RISC-V,所以是从ARM和RISC-V的角度来说明。   cache line是cache的基本访问单元。 cache line一般都会包含valid和dirty两个状态位,如下图的v和d。 valid位表示当前cache line的内容是否有效。dirty位表示当前cache

    2024年02月04日
    浏览(43)
  • unblock with ‘mysqladmin flush-hosts‘ 解决方法

    MySql Host is blocked because of many connection errors; unblock with \\\'mysqladmin flush-hosts\\\' 解决方法 环境:linux,mysql5.5.21 错误:Host is blocked because of many connection errors; unblock with \\\'mysqladmin flush-hosts\\\' 原因: 同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连

    2024年04月11日
    浏览(49)
  • MySQL 中 ALTER 命令

    1.作用: 修改数据表名或者修改数据表字段 2.用法: (1)使用 ALTER 命令及 DROP 子句来删除表的对应字段: 注:如果数据表中只剩余一个字段则无法使用DROP来删除字段。 (2)使用 ADD 子句来向数据表中添加列,并定义数据类型: 注:如果你需要指定新增字段的位置,可以使

    2023年04月09日
    浏览(33)
  • mysql连接出错 mysqladmin flush-hosts 解决方法(mysqladmin 刷新主机解除阻塞)

    在做redis redlock测试的时候用jmeter发post请求,springboot开始报错 Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’ 这个的意思是当一个ip连续多次出现错误后,mysql就会 中断 这个ip的连接,抛出mysqladmin flush-host 同一个ip在短时间内产生太多(超过mysql数据库ma

    2024年02月05日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包