oracle10.2.0.4有哪些bug

如题所述

10.2.0.4版本的基本情况
10.2.0.4是第二个大量用于生产系统的10g版本,第一次发布时间是2008年4月,根据目前Oracle的支持政策该版本已经终止支持,即DeSupport。

一个数据库版本DeSupport就意味着:
如果是已知的Bug,已经有相应Patch的,仍然可以下载使用;
如果问题可能是新的Bug引发的,后台部门不再提供补丁开发支持;
以下是10.2.0.4版本的发布时间,补丁终止时间及最新补丁集的信息:
Release Platform Release Date Patch End PSU CPU Bundle Patch
10.2.0.4 HPIA11.23/31 30-Apr-2008 31-Jul-2011 PSU15(overlay PSU4) P14736542+P9352164 In PSU 2012Jan N/A

10.2.0.4与之前10.2.0.3版本不同之处在于,PSU(PatchSet Updates)在这个版本被引入了,这种类型的补丁包是在两个PATCHSET之间以季度为周期发布的补丁,它一般包含了一些关键补丁和CPU补丁。通常建议用户周期性的应用PSU补丁来增加代码的代码的强壮性。

对于任何数据库版本而言,关键Bug以两种方式来区分:
1. 通用平台的关键Bug:即与特定的硬件通用平台的,所有相同的数据库版本均会受影响;
2. 平台相关的关键Bug:即与特定平台相关的环境,OS补丁有关的关键Bug,该Bug只在这个平台出现,而在其它平台不会触发;

接下来将按照两种分类来描述关键Bug。

10.2.0.4的关键Bug
通用平台的关键Bug
参考Known Issue文档及RAT建议,目前该版本通用平台的关键Bug包含:
Bug/Doc Description Impact
7038750 Dump (ksuklms) / instance crash Instance Crash
1229669.1 OERI [kddummy_blkchk] / OERI [5467] for an aborted transaction of allocating extents MEM/DATA/Dictionary损坏
1081961.1 RFS in Standby with a wrong location for archived log corrupting/overwriting database files when max_connections > 1 MEM/DATA/Dictionary损坏
976852.1 ORA-1578 corrupt block with AUTH SQL*Net strings MEM/DATA/Dictionary损坏
11814891 ORA-600 [7999] [9] [1] [<lob block rdba>] / ORA-1555 double allocated LOB block MEM/DATA/Dictionary损坏
9764039 Buffer cache corruptions. ORA-7445 [ktsk_l1_redo_reset_shrink] caused by SHRINK 宕机或/MEM/DATA/Dictionary损坏
9735237 Dump [under kxspoac] / ORA-1722 as SQL uses child with mismatched BIND metadata MEM/DATA/Dictionary损坏
9734539 ORA-8102 / ORA-1499 corrupt index after update/merge using QUERY REWRITE MEM/DATA/Dictionary损坏
9469117 Corrupt index after PDML executed in serial. Wrong results. OERI[kdsgrp1]/ORA-1499 by analyze MEM/DATA/Dictionary损坏
7410816 Database corruption / OERI[kcbgcur_6] if many undo segments are created MEM/DATA/Dictionary损坏
5598333 EXPDP/IMPDP corrupts the data for a LONG column MEM/DATA/Dictionary损坏
564788.1 Corruption / OERI [kddummy_blkchk] .. [18021] with ASSM MEM/DATA/Dictionary损坏
7329252 ORA-8102/ORA-1499/OERI[kdsgrp1] Index corruption after rebuild index ONLINE MEM/DATA/Dictionary损坏
7022905 Alter tablespace drop datafile drops can corrupt the database MEM/DATA/Dictionary损坏
861965.1 Array Update can corrupt a row. Errors OERI[kghstack_free1] or OERI[kddummy_blkchk][6110] MEM/DATA/Dictionary损坏
784633.1 ORA-955 during CTAS / OERI [ktsircinfo_num1] / dictionary inconsistency for PARTITIONED Tables MEM/DATA/Dictionary损坏
580561.1 Block corruption / OERI[kddummy_blkchk] after direct load of ASSM segment MEM/DATA/Dictionary损坏
8823789 Wrong results from range predicate on concatenated index with NULLs WrongResult
759565.1 NUMA enabled by default can cause high CPU / OERI Performance
6017068 PMON SPINNING IN NETWORKING CODE Performance

以下是各个Bug的详细描述:
Bug 7038750
影响程度 Instance May Crash
有无补丁 有
Bug描述 当一个系统进程被异常Kill时,如果正在调用ksuklms函数,则有可能导致系统宕机。这个问题与一个变量没有初始化有关。
该问题在RAC上居多,但单实例库也仍然有可能会触发。

Workaround 可以使用EVENT 10422,Level 1, 强制变量初始化。

Bug 9711859
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 当用户以alter table allocate extent为LOB段分配空间,并且空间位于ASSM表空间内时,当过程被异常中止时系统报ORA-600 [ktsptrn_fix-extmap],这说明可能触发了这个Bug

Workaround 使用DBMS_SPACE_ADMIN对表空间进行分析,并删除问题段,同时重建表空间位图。详细步骤请参考Note 1229669.1;

Bug 8768374
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在Dataguard环境中,主库的LOG_ARCHIVE_DEST_N中设置了max_connections>1时,备库可能会错误的向数据文件,日志文件等写入数据,导致Corruption(MEM/Block/Dictionary/Index)。

Workaround 保证LOG_ARCHIVE_DEST_N的max_connections>1

Bug 8768374
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在Dataguard环境中,主库的LOG_ARCHIVE_DEST_N中设置了max_connections>1时,备库可能会错误的向数据文件,日志文件等写入数据,导致数据损坏。

Workaround 保证LOG_ARCHIVE_DEST_N的max_connections>1

Bug 8943287
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 当数据库服务器端SQLNET.ORA设置sqlnet.inbound_connect_timeout 大于0时,SQL*Net在异常情况下将AUTH字符覆盖数据文件,并且后续SQL访问会报ORA-1578.

Workaround To prevent it:

1. set sqlnet.inbound_connect_timeout=0 in the sqlnet.ora for the server side.
2. use ODM library.

To repair the block:
1. use RMAN Blockrecover or Datafile media recovery.
2. If the affected block is the OS BLock header, resize the datafile.

Bug 11814891
影响程度 Hang(Process Hang/Spins)/Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 当一个表的LOB列被重复分配后会触发ORA-600 [7999]/ORA-1555
语句类似于:
update D set c1 = (select to_lob(c1) from S where D.pk = S.pk)
其中D.C1是clob类型,S.C1是long类型;
文档11814891.8提供了确认受影响对象的脚本;

Workaround 无

Bug 9764039
影响程度 Instance May Crash
有无补丁 可用
Bug描述 当数据库_db_block_cache_protect为Enabled,并且执行SHRINK SPACE操作后Buffer Cache元数据未做同步,导致出现大量ORA-600 [ktsk_l1_redo_reset_shrink]和ORA-7445错误。

Workaround 无
Bug 9735237
Bug号 9735237
影响程度 进程异常退出
有无补丁 可用
Bug描述 在会话新生成一个子游标时,其嵌入变量的元数据与已有游标的元数据不一致时报ORA-1722错误,调用堆栈位于_intel_fast_memcmp

Workaround 应用代码中嵌入变量的类型定义需要保持一致。

Bug 9734539
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在UPDATE/MERGE的子查询中使用查询重写(Query Rewrite)时索引没有同步维护。因为表与索引不一致所以会报如下错误:
ORA-8102
ORA-600 [kdsgrp1]
ORA-600 [qertbFetchByRowID]

Workaround 对于UPDATE/MERGE语句通过Hint避免使用Query_Rewrite,比如:
UPDATE <table> SET <column> = <value> WHERE (SELECT /*+ NOREWRITE */....);
对于已经出现不一致的索引,可以使用Drop/Create来重建。

Bug 9469117
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 对于UPDATE/DELETE/MERGE语句启动PDML时,由于并行进程不足使索引没有同步维护。当不一致发生时,系统会报:
ORA-600 [kdsgrp1]
ORA-600 [qertbFetchByRowID]
ORA-600 [13013] with error code 17 KDCMPF11 by an update
ORA-8102

Workaround 确认Parallel_max_server足够或者对DML使用串行方式。

Bug 7410816
影响程度 Process May Dump (Failure)
有无补丁 可用
Bug描述 数据库在管理大量UNDO(接近32K时)可能会报ORA-600 [kcbgcur_6],之后SMON进程会异常退出,进而影响实例正常运行。

Workaround 无

Bug 5598333
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在使用DATAPUMP导入时,并且满足以下条件时可能会触发此Bug:
1. 导出的数据源自多字节的字符集,如al32utf8
2. 表包含long类型字段;
3. 创建表之后立即追加一个列;
Workaround 无

Bug 6647480
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 用户会话在向对象追加空间时失败,进而PMON/SMON会报错。数据库关闭后因为SMON无法恢复事务而无法打开;

Workaround 可以按照以下步骤恢复数据:
1. 通过EVENT10513屏蔽SMON对失败事务的恢复;
2. 以Restrict模式启动数据库;
3. 删除问题对象,并清理回收站;
4. 关闭EVENT,重新启动数据库即可;

Bug 7329252
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 当索引重建的表为高并发访问时,在线索引重建可能会丢失一些索引键值。之后一些操作会报错,包括:
ORA-8102 by a delete/update
ORA-1499 by "analyze table validate structure cascade"
ORA-600 [kdsgrp1]
ORA-600 [qertbFetchByRowID]

Workaround 避免频繁UPDATE时在线重建索引

Bug 7022905
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 alter tablespace XXX drop datafiles;时可能会删除包含某些段的数据文件,这就导致数据库损坏。

Workaround 避免使用这些语句删除某些数据文件;

Bug 7662491
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在使用Forall .... update对行进行更新时可能会报
ORA-600 [kghstack_free1]
ORA-600 [kcbzpbuf_1]
ORA-600 [kcbbvr_verify_disk_blk_1]
ORA-600 [kdourp_inorder2]

Workaround 如果发现问题,请使用ROWID跳过损坏数据来重建问题表,或使用dbms_repair跳过问题数据。
具体的操作方式可参考文档580561.1

Bug 7263842/7190270
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 当使用Create table AS以并行方式创建表时可能会触发这两个Bug。导致数据字典的SEG$与TAB$不一致或TABPART$与SEG$不一致;

Workaround 避免在并发DDL开始后对分区或表进行维护操作

Bug 5386204
影响程度 Corruption(MEM/Block/Dictionary/Index)
有无补丁 可用
Bug描述 在对位于ASSM表空间里的Direct Path对象进行Drop/Truncate时,可能会报ORA-600 [kddummy_blkchk]错误

Workaround 确认问题请用DBMS_SPACE_ADMIN.ASSM_TABLESPACE_VERIFY;可重建对象解决,但问题触发因素有许多种,应当根据不同情况确认,可根据文档580561.1详细判断

Bug 8823789
影响程度 Wrong Results
有无补丁 可用
Bug描述 在对一个复合索引的非首列使用<操作符时没有使用is not null过滤时会触发;

Workaround 无

Bug 8199533
影响程度 Performance Affected
有无补丁 可用
Bug描述 NUMA特性在Oracle数据库中使用时可能会出现性能不稳定的情况,该补丁用于修改数据库对于NUMA特性的使用,应用此补丁后NUMA特性缺省为关闭状态。

Workaround 通过参数关闭NUMA特性:
_enable_numa_optimization=FALSE
_db_block_numa=1

Bug 6017068
影响程度 Hang(Process Hang/Spins)
有无补丁 可用
Bug描述 PMON在调用某些网络访问代码时可能陷入死循环,当时的调用堆栈为:
nlsqInsert
nstoHandleEventTO
nstoToqWalk
nsevwait
ksnwait
ksliwat
kslwaitns
kskthbwt
kslwait
ksuclnwt
ksucln
ksbrdp
opirip
opidrv
sou2o

Workaround 无

10.2.0.4与Hp-ux平台相关的Bug
OS Bug 6367097
影响程度 Instance May Crash
有无补丁 无
Bug描述 RAC diagnostics 可能引起实例 crash,建议升级到10.2.0.5修复这个bug。
Workaround 无
温馨提示:答案为网友推荐,仅供参考