一、报错日志

db_alert

ORA-: ??????, ??: [ksliwat: bad wait time], [], [], [], [], [], [], [], [], [], [], []

Use ADRCI or Support Workbench to package the incident.

See Note 411.1 at My Oracle Support for error and packaging details.

Dumping diagnostic data in directory=[cdmp_20190223052024], requested by (instance=1, osid=63791 (SCM0)), summary=[incident=524425].

trace

RDBMS_12.2.0.1.0_LINUX.X64_170125

Unix process pid: 63791, image: oracle@pelpsrdb01 (SCM0)

ORA-00600: ??????, ??: [ksliwat: bad wait time], [18446744073709471616], [], [], [], [], [], [], [], [], [], []

2019-02-23 05:20:23.965 :kjsc_main(): error SCM0

OPIRIP: Uncaught error 447. Error stack:

ORA-00447: fatal error in background process

ORA-00600: internal error code, arguments: [ksliwat: bad wait time], [18446744073709471616], [], [], [], [], [], [], [], [], [], []

函数

ksedst()+119         call     kgdsdst()

dbkedDefDump()+1200  call     ksedst()

ksedmp()+259         call     dbkedDefDump()

dbgexPhaseII()+2130  call     ksedmp()

dbgexProcessError()+2531  call     dbgexPhaseII()

dbgePostErrorKGE()+1767  call     dbgexProcessError()

dbkePostKGE_kgsf()+90  call     dbgePostErrorKGE()

kgeadse()+477        call     dbkePostKGE_kgsf()

kgerinv_internal()+49  call     kgeadse()

kgerinv()+40         call     kgerinv_internal()

kgeasnmierr()+150    call     kgerinv()

ksliwat()+15035      call     kgeasnmierr()

kslwaitctx()+197     call     ksliwat()

kjsc_main()+1431     call     kslwaitctx()

ksvrdp_int()+2010    call     kjsc_main()

······

二 、问题分析

.信息汇总
)数据库版本12.2.0.
)报错信息ORA- [ksliwat: bad wait time] []
)相关进程kjsc_main(): error SCM0
ORA-: fatal error in background process
)函数名称
)目的分析ORA-600报错的影响 .信息查询
函数说明
函数名称 描述
ksliwat kernel service lock management inner wait function; setup a wait that times out
kslwaitctx kslwaitctx|wait context; wait until timeout
kjsc_main kernel lock management RAC global stats
ksvrdp_int kernel service (VOS) slave management run generic detached slave process
全局内核锁状态管理,触发超时等待,随后报错

3.SCM0报错进程描述


Name

Expanded Name

Short Description

Long Description

External Properties

SCM0

DLM Statistics Collection and Management Slave

Collects and manages statistics related to global enqueue service (GES) and global cache service (GCS)

The DLM Statistics Collection and Management slave (SCM0) is responsible for collecting and managing the statistics related to global enqueue service (GES) and global cache service (GCS). This slave exists only if DLM statistics collection is enabled.

Database instances


DLM统计收集和管理从(SCM0)负责收集和管理与全局排队服务(GES)和全局缓存服务(GCS)相关的统计信息。仅当启用了DLM统计信息收集时,此从机才存在。

 

DML统计信息收集参数查询:

SYS@ora122>select a.ksppinm,b.ksppstvl,a.ksppdesc from x$ksppi a,x$ksppcv b where (a.indx=b.indx) and a.ksppinm like '%_dlm_stats_collect%';

KSPPINM                        KSPPSTVL             KSPPDESC

--------- -------------------- ------------------------------

_dlm_stats_collect             1                    DLM statistics collection(0 = disable (default), 1 = enable)

_dlm_stats_collect_mode        0                    DLM statistics collection mode

_dlm_stats_collect_slot_interval 60                 DLM statistics collection slot interval (in seconds)

_dlm_stats_collect_du_limit    3000                 DLM statistics collection disk updates per slot

三、问题处理

  MOS文档截取
12.2 RAC DB Background process SCM0 consuming excessive CPU (文档 ID 2373451.1)
The DLM Statistics Collection and Management slave (SCM0) is responsible for collecting and managing the
statistics related to global enqueue service (GES) and global cache service (GCS). This slave exists only if
DLM statistics collection is enabled.
The value is set to . Please go ahead and run the following command to change the value of _dlm to :
alter system set "_dlm_stats_collect" = scope = spfile sid = '*';
This does require a reboot for changes to take effect. If a reboot is not an option, as a workaround
you may kill the SCM0 process at OS level, it will respawn a new process soon.
kill - <os pid of SCM0> Note: Disabling dlm_stats_collect (ie setting to ) has no negative effect in 12.2.
This is because the stats are not yet used in 12.2
(the features that would use these stats service based affinity and cache warmup are also disabled in 12.2 by default).
Versions and may have them enabled, so re-evaluate at that time.
  经过分析,该600报错是 SCM0进程收集GES、GCS的相关的统计信息时间超长后抛出异常,根据MOS文档ID 2373451.1说明,SCM0收集的信息在12.2版本无价值,
因此本次报错可忽略或者禁用DLM收集统计信息参数。
 
 
 
补充说明:(感谢在网上留下知识的前辈们,不然都不知道这些东西是干啥的)

DLM描述说明
分布式锁管理器(distributed lock management DLM),简单说对于RAC环境,所有数据的修改,都需要事先以节点为单位,去DLM申请节点对块的修改权限,DLM对块的资源进行多节点修改进行协调。
SCM0进程即DLM数据的采集以及管理进程
SCM0简短描述
收集和管理与全局排队服务(GES)和全局缓存服务(GCS)相关的统计信息

什么是GES,GCS
全局队列服务(GES):主要负责维护字典缓存和库缓存内的一致性。字典缓存是实例的SGA内所存储的对数据字典信息的缓存,用于高速访问。由于该字典信息存储在内存中,因而在某个节点上对字典进行的修改(如DDL)必须立即被传播至所有节点上的字典缓存。GES负责处理上述情况,并消除实例间出现的差异。处于同样的原因,为了分析影响这些对象的SQL语句,数据库内对象上的库缓存锁会被去掉。这些锁必须在实例间进行维护,而全局队列服务必须确保请求访问相同对象的多个实例间不会出现死锁。LMON、LCK和LMD进程联合工作来实现全局队列服务的功能。GES是除了数据块本身的维护和管理(由GCS完成)之外,在RAC环境中调节节点间其他资源的重要服务。
GES控制数据库中所有的 library cache锁和dictionary cache锁。这些资源在单实例数据库中是本地性的,但是到了RAC群集中变成了全局资源。全局锁也被用来保护数据的结构,进行事务的管理。一般说来,事务和表锁 在RAC环境或是 单实例环境中是一致的。

GCS 是oracle 用来实施Cache fusion的机制。被GCS 和GES 管理的块和锁叫做资源。对这些资源的访问必须在群集的多个实例中进行协调。这个协调在实例层面和数据库层面都有发生。实例层次的资源协调叫做本地资源协调;数据库层次的协调叫做全局资源协调。
本地资源协调的机制和单实例oracle的资源协调机制类似,包含有块级别的访问,空间管理,dictionary cache、library cache管理,行级锁,SCN 发生。全局资源协调是针对RAC的,使用了SGA中额外的内存组件、算法和后台进程。

12.2 关闭DLM 自动收集统计信息 (SCM0)ORA-00600之[ksliwat: bad wait time]的更多相关文章

  1. 关于Oracle开启自动收集统计信息的SPA测试

    主题:关于Oracle开启自动收集统计信息的SPA测试 环境:Oracle RAC 11.2.0.4(Primary + Standby) 需求:生产Primary库由于历史原因关闭了自动统计信息的收 ...

  2. Oracle之自动收集统计信息

    一.Oracle 11g 在Oracle的11g版本中提供了统计数据自动收集的功能.在部署安装11g Oracle软件过程中,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能). 在这里介绍 ...

  3. 11G中自动收集统计信息

    在11G中,引入了一个名为 gather_stats_prog 的自动运行任务专用于自动收集统计信息.其对应的客户端名称为"auto optimizer stats collection&q ...

  4. Oracle 10g 之自动收集统计信息

    从10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息.这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启. ...

  5. Oracle 11g 之自动收集统计信息

    在Oracle的11g版本中提供了统计数据自动收集的功能.在部署安装11g Oracle软件过程中,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能). 1.查看自动收集统计信息的任务及状态 ...

  6. ORA-03001,GATHER_TABLE_STATS数据库自动收集统计信息报错

    1.根据Alert报错信息,查询Trace日志 /oracle/app/oracle/admin/fgsquery/bdump/fgsquery_j001_11111.trc Oracle Datab ...

  7. oracle会自动收集统计信息-记住哦

    oracle自动收集统计信息,周一至周五  时间:22:00:00 oracle自动收集统计信息,周六.周日  时间:06:00:00

  8. [转帖] Oracle 关闭自动收集统计信息

    --关闭自动统计信息 https://blog.csdn.net/royzhang7/article/details/51172556 明天再仔细看一下. select client_name,sta ...

  9. oracle学习----统计信息

    1.收集统计信息的方式 for all columns size skewonly BEGIN  DBMS_STATS.GATHER_TABLE_STATS(ownname          => ...

随机推荐

  1. GIS入门基础知识点

    自从国企辞职以后,找了一份关于GIS开发的工作,好多从事这个都是地理信息科学方面的专业.由于自己才疏学浅,只能从头入门学起,先是大致了解公司的业务以及产品,学习一下相关地理信息的基础知识. 首先今天简 ...

  2. Xcode下的中文乱码问题

    Xcode下的中文乱码问题 转载自:http://linyehui.me/2014/07/09/convert-gbk-to-utf8-on-mac.html =========== 问题原因 绝大部 ...

  3. Django之DjangoAdmin

    前言: 当我们启动1个Django程序的时候,在程序的settings.py配置文件默认注册了1个名为'django.contrib.admin'的APP程序,并且配置了默认路由映射关系url(r'^ ...

  4. adb(Android Debug Bridge)安装使用教程

    一.说明 adb的db是debug bridge而不是和gdb一样指debug,这意思是说adb不能像gdb那样能一步步调试代码,但可以启到一些类似调试的功能. 下面就针对这些功能进行介绍,本文根据官 ...

  5. Uboot中汇编指令

    LDR(load register)指令将内存内容加载入通用寄存器 ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令.比如想把数据从内存中某处读取到 ...

  6. linux150条命令

    ●线上查询及帮助命令(2 个)man help ●文件和目录操作命令(13 个) ls tree pwd mkdir rmdir cd touch cp mv rm ln find rename ●查 ...

  7. Springboot+MyBatis+mysql+jsp页面跳转详细示例

           SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能. 项 ...

  8. day24 模块03_re

    休养生息 --模块03 1.正则表达式 2.在python中使用正则.re 一,正则表达式 (匹配字符串,主要是给字符串使用的) 1)元字符 .  除换行符之外 \w 数字,字母,下划线组成   \W ...

  9. 数据库编程测试机试 QQ

    创建QQ数据库 #创建数据库 CREATE DATABASE QQ #创建表名 并且添加列 DROP TABLE IF EXISTS `dbo.BaseInfo`; CREATE TABLE `stu ...

  10. Linux系统命令行中vim编辑器取消高亮显示

    由于在使用vim编辑代码的时候不小心忘记首先输入i(insert)模式,导致写的代码出现了棕黄色的阴影显示 摸索了很久终于找到了解决方法: 1.退出vim编译器 2.在在命令行下输入:nohl,回车 ...