![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ORACLE troubleshooting
文章平均质量分 50
洛阳城头见洛阳
山前山后,三三两两
展开
-
奇怪的ora-12081:update operation not allowed on tablexx.xx
生产环境有套oracle10.2.0.4的库迁移到12.2.0.1版本,采用expdp/impdp方式,这样的操作这几年其实做了挺多次的。早上开发跟我说有张表不能dml操作,报错ora-12081:update operation not allowed on table xx.xxxoracle在11g版本支持了将表改为只读状态即alter table table_name read only;但生产环境倒是头一次遇到,而且是expdp/impdp的情况下。先将表改为读写:alter ta原创 2021-08-30 15:25:44 · 1713 阅读 · 0 评论 -
expdp遇到StreamsAQ: enqueue blocked on low memory
有套oracle12.2.0.1环境,expdp备份一直很正常,但突然有一天备份的特别慢,由于数据库有1个多T,导致24小时都备份不完,但之前大概需要5个小时左右。监控的时候发现备份进程一直在等待StreamsAQ: enqueue blocked on low memory,印象中以前也遇到过,增加了large pool的大小后即可,但这次不好使了。查了下相关资料,有种情况是sga设置成自动调整,expdp备份的过程中需要调整stream pool大小,但没有调整成功,就会一直卡在该等待事件上:原创 2021-03-18 09:01:09 · 590 阅读 · 0 评论 -
ORA-04031: unable to allocate 13840 bytes of shared memory (“shared pool“,“unknown object“,“sga heap
还是年前的时候,绩效系统一直告警,查看了下,库上一直报ora-4031,很常见的错误,当时下意识的认为是内存不足了。应该绩效手上在exadata一体机上,该一体机上还装了其他几套系统,内存资源比较紧张。当时flush了下shared_pool,但没啥效果,因为是rac环境,便依次重启了实例,故障就消失了。没过多久,绩效数据库又出现了这样的情况,共享池不足,就感觉不对劲了,但当时是年底了,马上就过年了,没啥心思探究。结果过年期间,同属于exadata上crm系统也出现这样的情况,基本确定确实有原创 2021-02-25 16:21:00 · 1093 阅读 · 0 评论 -
ORA-12542: TNS:address already in use
用python写了个oracle和dataguard环境日常巡检的程序,跑了有几年了,上周六晚上突然爆出这样的错误。恰巧当晚有停机维护,以为是网络那边动了东西导致的,后来查了点相关信息。感觉不是网络问题,还是我这边程序出问题。程序是将根据ip列表依次巡检各个数据库,然后将巡检信息写入到我的一个oracle里面,我以为是由于现在巡检的数据库太多,并发量大,导致这台oracle服务器无法分配更多的tcp端口来处理。折腾了半天,还是没有解决问题。查了些资料,应该是我程序所在的windows2003服务原创 2020-11-30 14:47:59 · 1098 阅读 · 0 评论 -
expdp导出报ORA-06580: Hash Join ran out of memory
一套测试环境使用expdp导出数据,报出ORA-06580: Hash Join ran out of memory的错误,这个是倒是第一次遇到,随手记录一下。看到这个错误第一反应就是哪块内存区设置的小了,导致expdp操作的时候内存不足。查询了下,MOS上有相关文档,可能是由于pga_aggregate_target=0workarea_size_policy=MANUAL这俩参数设置成如上值导致的。看了下环境参数,pga_aggregate_target倒是设置了具体的值,但work原创 2020-08-24 15:45:36 · 469 阅读 · 0 评论 -
第一次遇到在awr top 5 event中出现enq:SS-contention 和enq:TS-contention
开发人员跟我说有台测试环境数据库有问题,很卡,应用程序启动起来就卡住,根本无法使用。但没有报任何ora-相关的错误,让我瞧瞧T我用plsql developer登录下,发现还好,看了下最近的alert日志,也没有异常。下意识的觉得不应该是数据库问题,可能是开发那边网络之类导致出现卡顿的情况。恰巧到饭点,无心恋战,开发人员就让我将数据库重启下,我内心不深处觉得重启是解决不了问题的,但开发给我的回复是重启后好了。心里一直挂着这事,午休后上班就再次登录上去仔细查验一番。首先看了下最近几天awr DB Ti原创 2020-08-06 14:30:19 · 539 阅读 · 0 评论 -
TNS-12535 TNS-12606 When Sending Security Logging to the Database
有套数据库环境一直报警无法连接,但立马又报警恢复正常,查看了下alert日志,大量如下信息:Fatal NI connect error 12170. VERSION INFORMATION:TNS for Linux: Version 12.2.0.1.0 - ProductionOracle Bequeath NT Protocol Adapter for Linux: Version 12.2.0.1.0 - ProductionTCP/IP NT Protocol Adapter f.原创 2020-07-06 11:06:26 · 921 阅读 · 0 评论 -
sqlplus / as sysdba ORA-01017:invalid username/password;login denied
一套测试环境sqlplus / as sysdba 一直报ora-01017以前好像也遇到过,记不清了,折腾了好久,一开始以为是sqlnet.ora文件配置有误,后来又觉得是/etc/hosts配置不对,最后一直纠结于是不是环境变量不对。。。long long time最后,发现是由于oracle用户属组有误,少了个dba属组-------------许久没更新了,很多时候也觉得没...原创 2019-11-22 16:25:10 · 1328 阅读 · 0 评论 -
SYSAUX表空间中WRI$_OPTSTAT_HISTGRM_HISTORY等历史统计信息表较大问题
之前有排查过一次SYSAUX表空间增长过快方面的问题,今天客户反应另外一个库的SYSAUX表空间也是增长过快,于是直接用起之前排查的语句,下意识的以为也是awr数据不能自动删除的问题。结果查看SYSAUX表空间中对象所占空间大小情况时发现,WRI$_OPTSTAT_HISTGRM_HISTORY和WRI$_OPTSTAT_HISTHEAD_HISTORY两张表以及相关索引占据了SYSAUX表空原创 2015-03-25 16:12:00 · 6204 阅读 · 0 评论 -
Oracle enq: DX - contention 一次问题分析过程
客户反应晚上跑批异常,有一步平时20秒左右结束,昨晚跑了3000多秒,发来awr报告让我分析。很是兴奋,双击打开直奔TOP 5等待事件,如下:出现了平时少见的enq: DX - contention 和inactive transaction branch。这两个事件是相伴的。 这两个等待事件是和DBLINK相关的,metalink上有相关的文章:High CPU by S原创 2015-01-21 09:59:56 · 2469 阅读 · 0 评论 -
关于SYSAUX表空间持续增长问题的排查
客户反应数据仓库的SYSAUX表空间一直在增长,希望排查下原因。目前SYSAUX表空间使用了4个多G,潜意识觉得也还行吧,查了下有没有应用用户的数据放在了SYSAUX表空间中,结果是没有。于是利用dba_segments视图,查看下SYSAUX表空间中都是什么东西:select s.owner,s.segment_name,s.bytes/1024/1024from dba原创 2015-03-05 09:23:36 · 2730 阅读 · 0 评论 -
oracle expdp flashback_time 导出发现某表没有导入成功问题
之前给客户处理过这个问题,expdp导出操作,使用flashback_time参数,发现导出日志中有张表没有成功导入。后来发现是导出用户expuser 不具有flashback权限。处理方法: 给expuser赋权grant flashback any table to expuser;今天又有客户遇到这个情况,一时间没有想起来具体权限是什么,特原创 2015-03-06 10:29:07 · 1233 阅读 · 0 评论 -
plsql developer 使用sys用户登录,报ORA-01031权限不足
客户一数据库,使用plsql developer,用sys用户登录时候报ora-01031权限不足的错误,但使用sqlplus可以正常登录,分析原因是密码文件损坏导致,重建了密码文件,但依然如此,仔细查看,发现密码文件名上的实例名使用了大写,改成小写后,可以正常登录。如,当你实例名是instance:错误的写法 orapwINSTANCE应该写成:orapwinstance原创 2015-03-31 10:07:26 · 13164 阅读 · 0 评论 -
expdp 报错:ora-22923 amount of data specified in streaming LOB write is 0
一客户让我看下一个expdp的导出错误,信息如下(表名已处理):ora-31693 :table data object xx.xxxx failed to load/unload and is being skipped due to error;ora-29913 :error in executing ODCIEXTTABLEPOPULATE calloutora-22原创 2015-03-27 10:07:38 · 2270 阅读 · 0 评论 -
import导入很慢,出现等待事件statement suspended, wait error to be cleared
客户反应一个库上的import操作很慢,生成了当时时间段的awr报告,发现top事件中出现:statement suspended, wait error to be cleared这个等待事件倒是第一次看到,单从语句方面进行理解:语句站厅,等待错误被处理。于是让客户查看alert日志,查看是否有报错信息,果然alert日志里面出现如下信息:ORA-01652: unabl原创 2015-03-25 16:09:21 · 2059 阅读 · 0 评论 -
ORA-00600:[Kcratr1_lastbwr] During Database Startup after a Crash (Doc ID 393984.1)
这几天在做虚拟化的迁移,一些备库都是在线迁移,虚拟机很多都是直接断电重启,导致有些机器上面的oracle数据库在崩溃后做前滚,回滚出现一些问题。这不,今天又遇到一个,数据库无法open,报ORA-00600:[Kcratr1_lastbwr] 关于这个问题,metalink上有详细的介绍,doc id 393984.1CHANGESThere was a disk原创 2015-04-10 15:53:02 · 592 阅读 · 0 评论 -
一次oracle 中用户被锁的排查过程
早上过来,一客户工作人员反映有个库中的用户被锁掉,让我排查下原因。当时直接反应就是用户密码错误,尝试次数过多导致用户被锁。客户给我生成了listener.log,我在库上查看用户被锁时间:select username,lock_date from dba_users where username='xxx'; 发现被锁用户的时间信息已经不存在,原因是用户已经被客户解锁,所以视原创 2015-04-10 13:10:02 · 6140 阅读 · 0 评论 -
impdp导入报错:ora-39125,ora-06502,LPX-00225,ora-06512
一客户工作人员做导入操作时候,报错,信息如下:ora-39125:worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS]ora-06502 : PL/SQL: numeric or value errorLPX-00225 :原创 2015-04-07 09:09:04 · 6019 阅读 · 1 评论 -
启动数据库报错:ORA-27123: unable to attach to shared memory segment
客户配置tuxedo连接oracle,一直报错,无法使用tuxedo用户登录oracle。oracle open的状态下,使用tuxedo用户,进入sqlplus,显示connect to an idle instance然后尝试startup,报错如下:ORA-27123: unable to attach to shared memory segmentSVR4 Err原创 2015-04-07 15:42:59 · 6226 阅读 · 0 评论 -
使用SYS用户启动oracle 报错: ora-00000 normal, successful completion
之前好几次也遇到过ora-00000的错误,没有整理过,又遇到时候总是记不起来,现在记录一下。。ora-00000的错误多是由于 /etc/hosts文件中的hosname和当前的主机名不一致导致,该错误多见于系统是复制过来的情况。解决方法就是修改/etc/hosts文件中的hostnamealert日志中还伴随着出现如下错误:ora-600 internal原创 2015-04-08 17:20:59 · 6732 阅读 · 0 评论 -
一次enq: CF - contention 导致数据库宕机的故障分析
数据库意外宕机,alert日志信息如下:Sun Jul 27 01:02:48 2014System State dumped to trace file /oracle/app/oracle/product/1020/admin/jcgl/bdump/jcgl2_diag_569650.trcSun Jul 27 01:03:48 2014Killing enqueue bl原创 2015-04-08 13:56:32 · 1998 阅读 · 0 评论 -
ORA-00600: internal error code, arguments: [4194], [#], [#], [], [], [], [], []
客户的数据库出现问题,启动后过会自动关闭掉。查看alert 日志,发现大量600的错误,类似: ORA-00600: internal error code, arguments: [4194], [#], [#], [], [], [], [], []由于内网环境无法将具体将alert信息贴出来,只好大概描述一番。实例被dbwn进程中止。类似:DBW0:terminating原创 2015-04-08 13:43:56 · 619 阅读 · 0 评论 -
一次奇怪的ORA-12519 TNS:no appropriate service handler found
客户一套系统做压力测试,程序启动起来没多久就挂掉了。让我看下数据库情况,WebLogic错误信息中抛出了OERR: ORA-12519 TNS:no appropriate service handler foundoracle alert日志中没有任何异常信息,让重新做压力测试,实时查了下 select count(*) from v$session; 发现会话数压根不多,维持在30左原创 2015-04-27 10:14:57 · 429 阅读 · 0 评论 -
第一次遇到asynch descriptor resize等待事件
客户一套系统跑批较慢,让我给看下,现场跑了一下程序,发现sql语句在等待asynch descriptor resize。第一次见到这个事件,查了下,11.2.0.1上有个相关bug,看了下客户的数据库版本,也是11.2.0.1在metalink上找到如下文档:使用异步I/O遇到bug,sql语句等待该事件,并且高cpu使用率Bug 9829397 Excessive CPU原创 2015-05-20 14:51:35 · 2374 阅读 · 0 评论 -
oracle 监听hang,监听日志报错:WARNING: Subscription for node down event still pending' in Listener Log
客户一套实时交易系统突然程序无法连接,查看数据库,发现运行正常,急匆匆找我处理,发现监听无法查看状态lsnrctl status,处于hang状态,也无法停止,由于紧急,便直接kill 掉监听的进程,然后重启监听,后来程序连接恢复正常。事后分析问题原因比较纠结,由于版本是10.2.0.4的版本,而常见的监听bug 出现子监听情况是在10.2.0.1,10.2.0.2版本上。后来原创 2015-07-01 15:42:02 · 2118 阅读 · 0 评论 -
ORA-00600 [KKSFBC-REPARSE-INFINITE-LOOP]
客户数据仓库跑批过程中报出如下错误:ORA-00600 [KKSFBC-REPARSE-INFINITE-LOOP] 该问题在metalink上有相关文章对其描述:ORA-00600 [KKSFBC-REPARSE-INFINITE-LOOP] When Running a Query Involving a Synonym (Doc ID 752428.1)意思是在查询视原创 2015-08-26 15:19:07 · 924 阅读 · 0 评论 -
awr中一条top sql,查询all_objects
每天看看库上的awr报告,发现有条sql三个小时内执行了190多万次:SELECT NULL AS table_cat, o.owner AS table_schem, o.object_name AS table_name, o.object_type AS table_type, NULL原创 2015-07-07 13:43:41 · 2890 阅读 · 0 评论 -
LMON:terminating instance due to error 481
-------------------------------------------------------------2015-07-22--------------------------------------------------------------故障描述:oracle rac 一个节点异常停掉,crs没有自动重启该节点环境描述:10.2.04 两节点rac原创 2015-07-22 11:02:16 · 1417 阅读 · 0 评论 -
ORA-07445 [kslgetl()+120] [SIGSEGV]和ORA-00108
客户一测试库,磁盘空间增长很快,排查问题发现是oracle产生大量trace文件导致,检查oracle alert日志发现大量如下报错信息:Tue Aug 4 04:02:03 2015Errors in file /home/oracle/admin/ccms/bdump/ccms_ora_16626.trc:ORA-07445: exception encountered:原创 2015-08-05 13:39:43 · 526 阅读 · 0 评论 -
ORA-01898: too many precision specifiers 分析
客户写了条sql语句在使用trunc的时候报错:ORA-01898: too many precision specifiersoracle意思就是指定的精度过多,比如trunc(sysdate,'yyyymm'),便会报这个错,但客户的sql语句一开始执行的时候是可以执行成功的,没有报ora-01898的错误,不理解。经过分析后明白原因,因为客户那条sql语句的执行结果是空值,tru原创 2015-09-09 15:50:04 · 8429 阅读 · 3 评论 -
ORA-27094: raw volume used can damage partition table
在虚拟机上,采用裸设备的方式安装oracle 10.2.0.1结果在安装过程中报错:ORA-19504:failed to create file "/dev/raw/raw11"ORA-27094: raw volume used can damage partition table而这个raw11正好对应system表空间,一开始我以为是裸设备文件损坏了,删掉重建了好几次逻辑卷原创 2015-08-20 13:51:52 · 1070 阅读 · 0 评论 -
ora-06512:at "SYS.UTL_FILE" 问题总结
日常在使用expdp/impdp的过程中,时常报出如下错误:ora-06512:at "SYS.UTL_FILE",line 336 ora-29283:invalid file operation常见原因有两种,一种是导入导出用户不具有导入导出权限,exp_full_database,imp_full_database另外一种情况,可能是所使用directory原创 2015-08-20 15:49:47 · 12294 阅读 · 0 评论 -
ORA-31694: master table "BACKUP"."SYS_IMP_FULL_01" failed to load/unload
ORA-39002: invalid operationORA-31694: master table "BACKUP"."SYS_IMP_FULL_01" failed to load/unloadORA-31644: unable to position to block number xxxxxx in dump file 客户一系统做迁移导入的时候,报如上类型错误,乍原创 2015-09-10 14:04:13 · 17021 阅读 · 0 评论 -
error:unable to get logical block size for spfile '+DATAC1/orcl/spfileorcl.ora'
alert日志里面报出大量如下信息:error:unable to get logical block size for spfile '+DATAC1/orcl/spfileorcl.ora'看的我很是忧伤啊,生怕又出啥问题了,果然秋天都是多事的。仔细排查了一番:在sqlplus里面show parameter spfile发现spfile文件不是报错指定的目录文件。然后原创 2015-09-28 15:38:00 · 4785 阅读 · 0 评论 -
oracle某张表size暴涨问题分析处理
问题描述:客户一系统中的一张业务表突然暴涨,由原本的40M左右,涨到现在的4G,但数据量没有多大变化,一直维持在5W左右。oracle版本:10.2.0.4操作系统:aix6.1初步分析:由于客户坚信是暴涨,而不是由于平时的dml操作导致碎片过大,所以我怀疑是有大的insert插入操作撑大了表,后来又做了delete,但没有释放高水位线。通过查看该表历史统计信息的情况,发现9.11原创 2015-09-18 16:24:21 · 705 阅读 · 0 评论 -
sqlldr导入报错:field in data file exceeds maximum length
客户用sqlldr导入数据时候报错:" Record 1: Rejected - Error on table ks_test, column khname.Field in data file exceeds maximum length "看到这个错误后以为是字段值过小导致,将原来的varchar2(1000) 改到了varchar2(2000)发现还是不可以,依旧报如上错原创 2015-10-23 10:15:29 · 14486 阅读 · 0 评论 -
windows平台打补丁,报错OPatch failed with error code = 74
oracle是windows 32位11.1.0.7打个21104029的补丁,总是报出如下错误:C:\21104029>C:\app\Administrator\product\11.1.0\db_1\OPatch\opatch applyInvoking OPatch 11.1.0.6.2Oracle 中间补丁程序安装程序版本 11.1.0.6.2版权所有 (c) 20原创 2015-10-08 14:34:05 · 6333 阅读 · 0 评论 -
linux/unix上文件名开头为+asm的trace文件
客户某套系统数据库出现异常,发现是asm实例异常,抛出大量trace文件。直接使用more命令查看trace文件时候发现无法查看。是因为文件名前这个+加号导致,可用如下方法查看这种类型的trace文件a、find . -name "+asm_ora_24232.trc" -exec vi {} \;b. find . -name "+asm_ora_24232.trc" -exec原创 2015-09-22 14:09:13 · 1518 阅读 · 0 评论 -
oracle 监听异常崩溃,报错Linux Error: 32: Broken pipe
oracle 10.2.0.4一生产系统监听异常停止了,listener.log中报出如下错误:TNS-12518: TNS:listener could not hand off client connection TNS-12547: TNS:lost contact TNS-12560: TNS:protocol adapter error TNS-00517:原创 2015-10-26 10:04:05 · 5747 阅读 · 0 评论 -
expdp遇到ORA-39014: One or more workers have prematurely exited.
遇到个客户需求,在自己库上先做了个实验,结果expdp的时候报错:ORA-39014: One or more workers have prematurely exited.ORA-39029: worker 1 with process name "DW01" prematurely terminatedORA-31672: Worker process DW01 died une原创 2015-11-11 09:17:02 · 7232 阅读 · 0 评论