[20170421]警惕打开IMU对测试的影响.txt

[20170421]警惕打开IMU对测试的影响.txt

--这一系列的问题都来源与IMU有关,我以前的测试环境都是dg环境,使用dgmgrl管理,为了一些测试切换我两边数据库都打开flashback,
--这样IMU是失效的。

--问题起源别人重复测试,无法还原我当时的测试结果。
[20140507]实例crash恢复.txt => http://blog.itpub.net/267265/viewspace-1156043/

--于是我重复测试,链接
[20170322]实例crash恢复2.txt => http://blog.itpub.net/267265/viewspace-2135771/

--发现是IMU在作怪,关闭IMU就可以还原我原来的测试。顺便还看了一些IMU方面的知识:
[20170322]关于IMU.txt => http://blog.itpub.net/267265/viewspace-2135813/

--//有几种情况关闭IMU特性.
1.打开flashback on功能.
2.开启附加日志.alter database add supplemental log data;
3.rac环境.
4._in_memory_undo=false.

--在以后的问题中有遇到alter system checkpoing并不会将全部脏块写盘。
0324alter system checkpoing会写脏块吗 => http://blog.itpub.net/267265/viewspace-2136017/

--最近做块延迟清除的测试也发现一些问题,这些实际上可能都与IMU有关,以后注意,在写执行alter system flush buffer_cache;的例子:

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SCOTT@book>  select flashback_on from v$database ;
FLASHBACK_ON
------------------
NO

--//现在IMU是开启的。也可以查询视图X$KCRFSTRAND确定。
SELECT INDX
      ,last_buf_kcrfa
      ,PNEXT_BUF_KCRFA_CLN nxtbufadr
      ,NEXT_BUF_NUM_KCRFA_CLN nxtbuf#
      ,BYTES_IN_BUF_KCRFA_CLN "B/buf"
      ,PVT_STRAND_STATE_KCRFA_CLN state
      ,STRAND_NUM_ORDINAL_KCRFA_CLN strand#
      ,PTR_KCRF_PVT_STRAND stradr
      ,INDEX_KCRF_PVT_STRAND stridx
      ,SPACE_KCRF_PVT_STRAND strspc
      ,TXN_KCRF_PVT_STRAND txn
      ,TOTAL_BUFS_KCRFA totbufs#
      ,STRAND_SIZE_KCRFA strsz
  FROM X$KCRFSTRAND ;

2.测试1:
SCOTT@book> create table deptx tablespace tea as select * from dept ;
Table created.

--//正常将把信息写入数据文件6,129块中,因为那个表空间没有任何信息在create之前。
SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000

--//注意看state=free,实际上oracle取了一个巧,在ctas时并没有读取dba=6,129块,而且在内存中构造1个块,这个叫块的新化。

SCOTT@book> update deptx set dname=lower(dname) where deptno=10;
1 row updated.

SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         xcur                  1            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         cr                    1   1115535851            3            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000

SYS@book> alter system flush buffer_cache;
System altered.

SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         xcur                  1            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000

--//可以有1个状态还是STATE =xcur,也就是脏块没有写盘。
SCOTT@book> alter system dump datafile 6 block 129;
System altered.

7FFCF15527A0 0203002C 4F0A29C1 41524550 4E4F4954  [,....).OPERATION]
7FFCF15527B0 4F420653 4E4F5453 0203002C 53051FC1  [S.BOSTON,......S]
7FFCF15527C0 53454C41 49484307 4F474143 0203002C  [ALES.CHICAGO,...]
7FFCF15527D0 520815C1 41455345 06484352 4C4C4144  [...RESEARCH.DALL]
7FFCF15527E0 002C5341 0BC10203 4343410A 544E554F  [AS,......ACCOUNT]
7FFCF15527F0 08474E49 2057454E 4B524F59 B9150602  [ING.NEW YORK....]
--//可以发现记录还是大写的信息。

SYS@book> alter system flush buffer_cache;
System altered.

SYS@book> @ &r/bh 6 129
old  23:   dbarfil = &1 and
new  23:   dbarfil = 6 and
old  24:   dbablk = &2
new  24:   dbablk = 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000

SCOTT@book> alter system dump datafile 6 block 129;
System altered.

7FFCF15527A0 0203002C 4F0A29C1 41524550 4E4F4954  [,....).OPERATION]
7FFCF15527B0 4F420653 4E4F5453 0203002C 53051FC1  [S.BOSTON,......S]
7FFCF15527C0 53454C41 49484307 4F474143 0203002C  [ALES.CHICAGO,...]
7FFCF15527D0 520815C1 41455345 06484352 4C4C4144  [...RESEARCH.DALL]
7FFCF15527E0 022C5341 0BC10203 6363610A 746E756F  [AS,......account]
7FFCF15527F0 08676E69 2057454E 4B524F59 BA1C0601  [ing.NEW YORK....]
--//这样才真正写盘。这也是我前面测试延迟块清除反反复复的原因。

3.如果你关闭IMU就可以发现没有这个问题。

SYS@book> alter database flashback on ;
Database altered.

SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000

SCOTT@book> update deptx set dname=lower(dname) where deptno=20;
1 row updated.

SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         xcur                  2            0            0            0            0            0 0000000073896000 DEPTX
0000000084B29130            6          129            1 data block         cr                    2   1115537108            3            0            0            0 00000000738A2000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000073AD0000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000073AD2000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000
7 rows selected.

SYS@book> alter system flush buffer_cache;
System altered.

SYS@book> @ &r/bh 6 129
HLADDR                DBARFIL       DBABLK        CLASS CLASS_TYPE         STATE               TCH   CR_SCN_BAS   CR_SCN_WRP   CR_UBA_FIL   CR_UBA_BLK   CR_UBA_SEQ BA               OBJECT_NAME
---------------- ------------ ------------ ------------ ------------------ ---------- ------------ ------------ ------------ ------------ ------------ ------------ ---------------- --------------------
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000073896000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000738A2000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000073AD0000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000073AD2000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8A000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 0000000074F8C000 DEPTX
0000000084B29130            6          129            1 data block         free                  0            0            0            0            0            0 00000000758D4000
7 rows selected.

--//state= free ,我反复多次执行alter system flush buffer_cache;后state=free.而IMU打开的情况下,就不会这样。
--//这一切实际上都与IMU的工作机制有关。这也是我前面测试遇到的奇怪问题。

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

col object_name format a20
col state format a10

select
b.hladdr,
  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,
  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 state,
  b.tch,
  cr_scn_bas,
  cr_scn_wrp,
  cr_uba_fil,
  cr_uba_blk,
  cr_uba_seq,
  ba,
  (select object_name from dba_objects where data_object_id = b.obj) as object_name
from x$bh b
where
  dbarfil = &1 and
  dbablk = &2
;

时间: 2024-08-18 21:23:13

[20170421]警惕打开IMU对测试的影响.txt的相关文章

局域网共享的文件怎么让别人打开的时候,不影响我删除替换操作

问题描述 局域网共享的文件怎么让别人打开的时候,不影响我删除替换操作,我想做个单位内外网通用的程序,用VS2013c#,但是做成C/S结构的就无法统一更新,所以想放到局域网上,大家都直接打开快捷方式,但在打开的时候,不想影响我更新和替换该程序,做成B/S架构的无法实现内外网通用,服务器在内网谢谢 解决方案 解决方案二:这都在表达什么?"放到局域网,打开快捷方式"就能实现"内外网相通"了?解决方案三:按你的想法,怎么通过外网访问你的共享目录?想要内外网通过,无非是通过

[20171028]测试大量子光标对性能影响.txt

[20171028]测试大量子光标对性能影响.txt --//做一个测试例子说明存在大量子光标对性能影响. 1.环境: SCOTT@test01p> @ ver1 PORT_STRING                    VERSION        BANNER                                                                               CON_ID ------------------------------

[20161227]打开多个监听端口.txt

[20161227]打开多个监听端口.txt --安全等保的需求,需要在1台数据库打开2个监听端口,并且还不能是1521缺省端口.看了一些文档,做一些记录. --参考连接:http://blog.itpub.net/267265/viewspace-2083455/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ --

[20151203]关于grd对性能影响.txt

[20151203]关于grd对性能影响.txt --前几天写了1篇,统计分析对grd的影响,提到一些大表在晚上分析后会出现资源重新分配,参考链接 --blog.itpub.net/267265/viewspace-1851145/ --我们的生产系统业务并不是很忙,今天做一点"危险"的测试,让另外1个实例掌控某些另外实例经常访问的对象. --先看看没有切换的awr报表(昨天的10-11点)rac部分: RAC Statistics  DB/Inst: xxxx/xxxx1  Snap

[20150803]触发器对dml的影响.txt

[20150803]触发器对dml的影响.txt --最近做一个优化项目,这个项目实际上ETL项目,里面出现如下语句: UPDATE patient_medical_cost t    SET t.total_costs = NVL (total_costs, 0),        t.drug_west_costs = NVL (drug_west_costs, 0),        t.drug_middle_costs = NVL (drug_middle_costs, 0),      

云计算对软件开发与测试的影响

1.云计算对软件开发的影响 云计算环境下,软件技术.架构将发生显著变化.首先,所开发的软件必须与云相适应,能够与虚拟化为核心的云平台有机结合,适应运算能力.存储能力的动态变化;二是要能够满足大量用户的使用,包括数据存储结构.处理能力;三是要互联网化,基于互联网提供软件的应用;四是安全性要求更高,可以抗攻击,并能保护私有信息;五是可工作于移动终端.手机.网络计算机等各种环境. 云计算环境下,软件开发的环境.工作模式也将发生变化.虽然,传统的软件工程理论不会发生根本性的变革,但基于云平台的开发工具.

问个问题,如何设置查询窗口,像通常windows程序那样总在最前,当打开其它程序时而不影响???

问题描述 如题,我设计了一个查询窗口,希望像wingdows程序那样显示,设Me.TopMost=True,然后使用其它程序时查询窗口一直在最前,怎样才能解决?是不是不应该这么做?我究竟该怎么做???????? 解决方案 解决方案二:VBCode:PrivateDeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValc

Servlet中直接打开一个新页面显示一个Txt文档

问题描述 在我的服务器端有一个txt的文件,现在用户可以点击了下载这个txt文件,但是还需要点预览后在web端直接显示这个txt文档,即在IE中显示这个txt文档~怎么写呢? 解决方案 解决方案二:引用楼主rongkuiliu的回复: 在我的服务器端有一个txt的文件,现在用户可以点击了下载这个txt文件,但是还需要点预览后在web端直接显示这个txt文档,即在IE中显示这个txt文档~怎么写呢? content-type设置成text/plain试验下解决方案三:是在servlet里这样写吗?

0607Private Strand Flush Not Complete 2

[20170607]再论Private Strand Flush Not Complete.txt --//曾经跟zergduan有过讨论,链接www.itpub.net/thread-2065703-1-1.html,按照道理只要使用IMU,在日志切换时如果在Private Strand --//有信息一定会出现Private Strand Flush Not Complete提示在alert.log日志文件中,因为要把那些信息写入redo文件. --//我在我的一个生产系统看到,我发现一个没