ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-600 17147 超过32000个or的SQL导致的数据库宕机

ORA-600 17147 超过32000个or的SQL导致的数据库宕机

原创 Linux操作系统 作者:feiyuzitong 时间:2012-07-13 01:01:34 0 删除 编辑

今天有台数据库一个小时之内连续宕机两次,相同的错误,都是ORA-600 17147 导致内存crash后PMON杀死实例

ORA-00600: internal error code, arguments: [17147], [0xFB0AC7920], [], [], [], [], [], [], [], [], [], []


ORA-1092 : opiodr aborting process unknown ospid (19839_47665993829568)


Wed Jul 11 20:58:25 2012


ORA-1092 : opitsk aborting process


Wed Jul 11 20:58:25 2012


ORA-1092 : opiodr aborting process unknown ospid (19837_47822817557696)


Wed Jul 11 20:58:25 2012


ORA-1092 : opitsk aborting process


Instance terminated by PMON, pid = 3245


通过core_dump里面有一条特别长dynamic_sampling的SQL,in里面有36000+的or,后来一查对应于bug 8277300

通过设置optimizer_dynamic_sampling=1降低动态搜集的等级,然后cron里面设置脚本定制化的收集信息

根据不同的optimizer_dynamic_sampling级别而不同,他总共有10个级别,分别如下:


· Level 0: Do not use dynamic sampling.


· Level 1: The number of blocks sampled is the default number of dynamic sampling blocks (32).


· Level 2: The number of blocks sampled is 2 times the default number of dynamic sampling blocks.


· Level 3: The number of blocks sampled is 4 times the default number of dynamic sampling blocks.


· Level 4: The number of blocks sampled is 8 times the default number of dynamic sampling blocks.


· Level 5: The number of blocks sampled is 16 times the default number of dynamic sampling blocks.


· Level 6: The number of blocks sampled is 32 times the default number of dynamic sampling blocks.


· Level 7: The number of blocks sampled is 64 times the default number of dynamic sampling blocks.


· Level 8: The number of blocks sampled is 128 times the default number of dynamic sampling blocks.


· Level 9: The number of blocks sampled is 256 times the default number of dynamic sampling blocks.


· Level 10: Read all blocks in the table.


Bug 8277300  Dump [xtyqbcb] / OERI:17147 from SQL with > 32000 OR predicates

 This note gives a brief overview of bug 8277300. 
 The content was last updated on: 27-MAY-2011
 Click here for details of each of the sections below.

Affects:

Product (Component)Oracle Server (Rdbms)
Range of versions believed to be affectedVersions BELOW 12.1
Versions confirmed as being affected
Platforms affectedGeneric (all / most platforms affected)

Fixed:

This issue is fixed in

Symptoms:

Related To:

  • (None Specified)

Description

SQL queries containing more than 32000 OR'ed equality predicates on a column
value may dump , typically under xtyqbcb.

Workaround:
 Limit the total number of inlist entries or OR'ed equality conditions to be 
 less than 32000
 OR
 rewrite the query so that the inlist values are in another table
 (rather than hard coded in the SQL)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22503721/viewspace-735356/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-04-19

  • 博文量
    20
  • 访问量
    80353