1、基础环境
操作系统:unix&solaris 11.3
数据库版本:oracle 12.2 CDB&PDB
数据库补丁信息
oracle@QSSJJZDB2:~$ opatch lspatches
23333567;
27959048;
26187578;OCW Interim patch for 26187578
27674384;Database Apr 2018 Release Update : 12.2.0.1.180417 (27674384)
出问题的这套RAC是给应用做数据转换用的,没有实时的生产业务,所以平时不怎么注意这台,有问题都是临时处理一下。
2、问题现像
应用端的人员反映,这个库总出现连不上的问题,报错如下图所示
根目录满了,因为TRC文件几十个G
查看生成的TRC文件,每次出现这个问题,我都是临时把所有的TRC清空了,然后让他们用,也没怎么仔细排查,一直以为是他们应用有什么问题导致的。
最近他们用的频繁,发现这个库老是塞满。
3、处理过程
这回执行删除该TRC文件,发现新生成的CJQ0.trc文件还是在不停的增长,TRC里的内容是下图这个样子的,说实话我确实看不懂,也没有啥头绪
应为生成的TRC文件都是CJQ,起初以为是库里的JOB导致,于是检查了一下库里还真有很多个有问题的JOB任务。
select * from dba_jobs order by failures desc
以下是显示结果
于是联系了下开发的人员,确认了这些定时任务都没有用了,于是他们把这些任务进行了删除操作,我临时把日志清了,明天再检查结果。
结果第2天查看了,这个文件又是几个G了。
于是又仔细看了下告警日志,发现是一直有如下图的报错,RAC共2个节点下都有。
去到CDB里查看有没有表并行度大于1的,确认表级别没有开并行的
SELECT owner, table_name, degree FROM cdb_tables WHERE degree > 1;
问了开发的人员,他们没有写过并行相关的的查询SQL。
最后去MOS上查了一下,确实在这个版本是有个BUG,会导致一直生成TRC文件,奇怪的是我这十多套RAC,只有这一套有不停的生成TRC,也不知道是怎么出发BUG
而且也有人遇到过同样的问题 https://www.cnblogs.com/lkj371/p/14922611.html,据说尤其是安装了2018 4月RU的版本(12.2.0.1.180417),说的这不就是我么。。。
官方的解决办法就是打补丁。p27579159_122010_SOLARIS64
4、解决办法
补丁暂时没有安装,临时决定写个脚本,定时删除下这个文件,先缓解一下。
在两个RAC节点创建定时任务,每20,40分钟执行一下清理下这个TRC文件(solaris不支持 20/* 这种写法,只能写0,20,40)
0,20,40 * * * * sh /root/crontab/rm_cjq.sh >>/root/rmcjq.log
cat /root/crontab/rm_cjq.sh (写脚本我不擅长,随便写了个,让大家见笑了)
#!/bin/sh
find /u01/app/oracle/diag/rdbms/qsyycdb/qsyycdb2/trace -name "*cjq*" |xargs rm -rf
参考
MOS:OERR: ORA 12805 parallel query server died unexpectedly (Doc ID 1347455.1)
https://www.cnblogs.com/lkj371/p/14922611.html
也欢迎关注我的公众号【徐sir的IT之路】,一起学习!
————————————————————————————
公众号:徐sir的IT之路
CSDN :https://blog.csdn.net/xxddxhyz?type=blog
墨天轮:https://www.modb.pro/u/3605
PGFANS:https://www.pgfans.cn/user/home?userId=5568
————————————————————————————