- 浏览: 1000935 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
原文:ORA-00604 error occurred at recursive SQL level string
Cause:An error occurred while processing a recursive SQL statement (a statement applying to internal dictionary tables).
Action:If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Customer Support.
ORA-00604: 递归某个SQL 层时出现错误
原因:在运行一条递归SQL语句(该语句将应用于对内部表或数据字典的操作)时,发生错误。
方案:如果上述描述的错误所在栈可以被修复,则修复并继续运行;否则,请联系Oracle客服。当然,那是Oracle官方的解决办法。我曾经记得有个高手总结了关于ORA-00604/ORA-04031问题的解决:
修改INIT.ora
添加
_db_handles_cached = 0
并重新启动数据库.
分析:ORA-00604这个信息表明,在数据库执行内部SQL语句时,发生了错误。比如,要往表中插入一行数据,但没有可扩展的空间。ORACLE于是去查寻,哪儿可以建立下一个扩展空间,它有多大小,但没有成功。一般在发生ORA-00604错误时,还伴随着其它的错误,例如:ORA-1547等。
首先,应当 检查 警告文件alertSID.log,查找有关ORA-600类的信息。
该错误最常见的原因是数据库文件initSID.ora中的参数OPEN_CURSORS值太小。可以修改initSID.ora文件,OPEN_CURSORS的值一般为255。修改完后,宕下ORACLE,再重新启动。
还可以设置并启动数据库的事件跟踪功能。在initSID.ora中加上一行:
event = "00604 trace name errorstack"
宕下并重新启动ORACLE,使这个事件跟踪参数起作用。这样,当再发生ORA-604错误时,有关信息就保存在TRACE文件中。
造成ORA-604错误的其它原因可能有:
- initSID.ora中,参数DC_FREE_EXTENTS或ROW_CACHE_ENQUEUES太低。可以根据操作系统和数据库的情况,适当增加这两个参数的值,宕下并重新启动ORACLE。
- 运行超出空间(伴随ORA-1547错误)。这时,要对表空间添加新文件,即增加表空间的大小。
- 达到了MAX_EXTENTS(伴随ORA-1556错误)。如果这样,就要修改表,允许更多的扩展。请从技术手册中查找MAX_EXTENTS的最大值。如果已经达到了最大值,必须用compress extents选项,把表卸出(export),再导入(import)数据库中。
案例一:Oracle执行递归查询的时候出错
问题描述:我经常遇到ORA-00604 和ORA-01000(开启游标数量达到最大值)错误。然而,当我检查代码的时候,所有的结果集和语句对象都在最后的块中关闭了(我使用的是JDBC)。我执行的查询是一个Oracle递归查询(以这个开始并通过这个连接)。您能告诉我是哪里出现了问题,以及在什么样的情况下会出现上述的错误吗?
解决方案:可能是init.ora 文件中的open_cursors 参数值的设置太低了。这个参数的默认值是非常低的(50)。它应该设置为200或者更高。即使是你关闭了结果集,但是你并没有在JAVA代码中关闭SQL语句,就会导致这个问题。
如果设置为yes的话,那么确保你的活动连接池启用了(为了性能的原因),否则设置为no。
请你的数据库 管理 员监视数据库,并看看使用V$OPEN_CURSORS 和 V$SYSSTAT数据字典视图的条目。
案例二:Exp出错的一个案例
问题描述:客户用的 Linux 系统,Redhat 企业 版(RHEL 3.0).数据库,安装的9iR2, 前一段时间升级过.现在的版本是9204.
客户准备要做Exp导出,以前一直系统没有空间.先给给系统扩了一些空间。Linux下的LVM还算比较好用。虽然文件系统用的是ext3 ,要暂时停机.
进行导出操作,不成功,发现系统报告错误:
EXP-00056: ORACLE error 942 encountered
ORA-00942: table or view does not exist
EXP-00000: Export terminated unsuccessfully
很多朋友可能对这个错误都很熟悉.
哦,对了,客户说是升级过数据库,首先猜测是不是升级有问题?毕竟在论坛上类似升级不成功的问题看过很多了.
执行$ORACLE_HOME/rdbms/admin/catpatch.sql 脚本.
同时要注意调大java_pool_size 和shared_pool_size这两个参数的大小,要不重新来就耽误时间了,不要犯低级错误
SQL>shutdown immediate;
SQL>startup migrate;
SQL>@?/rdbms/admin/catpatch.sql
之后查看Spool 出来的日志. 发现有编译错误,重新执行了第二次. 等待......之有这个时候我才想起才抱怨CPU不够快,内存不够大 ;)
这次Log没错误.不料想....................用户连接报告错误:
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
发现connect / as sysdba 还是可以登陆进去的。
看来是 LBACSYS.LBAC_EVENTS的状态有点问题。联接进去,编译一下如何? 我的如意算盘是@?/rdbms/admin/utlrp.sql执行一下就没有问题了,不料根本没有用,错误依然。当时有些头晕,这系统还没有备份呢,看来有些麻烦了(心里暗地埋怨客户,一直不让备份,总说"等等再说",作为一个DBA说话总不被重视也挺悲哀的不是? ,虽然我自己偷着有个备份,不过还是上次升级时候的呢),赶紧上网Metalink查查,这里 网络 速度还不错 LBACSYS.LBAC_EVENTS 作为关键词,找到如下的信息:
The reason for this problem seems to be an Upgrade for Label-Security
even if it's not installed. //Label security 没有安装,居然补丁去默认给升级?
解决方案:
shutdown immediate;
startup migrate;
alter view lbacsys.lbac$all_table_policies compile;
alter package lbacsys.lbac_events compile body;
shutdown immediate;
startup;
支持人员说这是个Bug.但是普通用户不可见. 不太放心,再找找,在Suse.com站点的Maillist也发现了一则类似的案例,看来还可以,心里有底了。
按照上面的执行,重新 检查 ,OK。
总结一下
其实是一个很没有技术含量的Case。首先以前升级的时候至少要测试一下Export是否可以(Export已经成为升级成功的一个标志了!) 其次,准备不够充分,早成了手忙脚乱.所幸不是关键系统,用户还可以容忍.Oracle 总说 微软 是个烂公司,其实他们才真的够栏.Bug多的不可胜数.
案例三:使用网络应用程序的时候出现递归SQL错误
问题描述:当我使用网络应用程序的时候,遇到了下面的这个错误。
ORA-00604: 递归SQL1级的时候出现错误。
ORA-04031: 无法分配4200字节的共享内存,"RBKS_BK_INFO", "sga_heap", "library cache"。
这些错误信息是什么意思?我该如何解决它们?它们是在应用程序里面还是数据库里面?
解决方案:您应该使用的是Oracle 8.1.7.4之前版本的Oracle。第一个错误信息告诉你Oracle针对你的行为执行的SQL 语句失败了。ORA-4031告诉你为什么它会失败。ORA-4031错误信息的意思是你没有获得足够的空闲空间。你可以增加你的SHARED_POOL_SIZE,重新启动数据库再拭一次。这个bug已经在后续的补丁包中修复了。如果你使用的不是这个版本,你可以应用一下补丁包。
案例四:Sql_trace进行Oracle诊断案例
问题说明:很多时候,在我们进行数据库操作时,比如drop user,drop table等,经常会遇到这样的错误
ORA-00604: error occurred at recursive SQL level 1 .
这样的提示,很多时候是没有丝毫用处的.本案例就这一类问题提供一个思路及方法供大家参考.
1. drop user出现问题
报出以下错误后退出
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist .
发表评论
-
sys.dbms_transaction.local_transaction_id出现的问题
2012-07-20 11:54 3288何時會觸發DBMS_TRANSACTION.LOCAL_TRA ... -
ORACLE 11GR2 OEM配置出错解决
2012-07-14 19:21 5079错误描述如下: 2012-7-14 18:23:11 ... -
ORA11G ORA-00845 错误
2012-06-26 13:39 829Oracle 11g的Linux版本在修改了MEMORY_TA ... -
oracle.net.common.NetGetEnv.getDNSDomain
2012-06-07 01:48 1140今天安装LINUX AS 4和ORACLE 10.2,安装成功 ... -
emctl 提示 ora-28001 口令已经实效 解决办法
2011-10-24 00:41 1829What to do when Enterprise Mana ... -
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262)
2011-05-20 17:29 6957报错信息如下: 2011-03-09 11:06:10 Th ... -
Oracle HowTo:如何在Linux上扩展SGA超过1.7G
2011-03-24 01:28 920今天一台Linux服务器扩展了一下内存,达到4G,开发的人自己 ... -
error while loading shared libraries: libclntsh.so.10.1: cannot open shared 问题解决
2011-01-21 16:23 119921.运行csscan命令显示如下错误 [oracle@rac ... -
“Error in invoking target ‘client_sharedlib’ of makefile ‘/home/oracle/oracle/pr
2011-01-13 17:35 11891今天同事在安装oracle的时候总是报这个错误: &qu ... -
如何处理Oracle中的坏块[ZT]
2010-12-19 21:56 1218一. 什么是数据库的坏 ... -
bug 7716219 hash group by显示消耗大量的temp 表空间
2010-12-07 17:47 2140SQL> set autotrace traceonly ... -
ORA-08102: TRYING TO MANIPULATE A JOB IN DBA_JOBS [ID 1036858.6]
2010-12-03 23:52 1256***Checked for relevance on 17- ... -
ORA-14074: partition bound must collate higher than that of the last partition
2010-10-09 16:26 36461. 创建分区表 create table zhanglei ... -
ora-12560问题解决
2010-09-16 11:30 15851.监听服务没有起起来 ... -
ORA-20000故障排除手记
2010-09-02 01:43 23451、发现故障。 在Oracle10.2.0.1的aler ... -
ORA-17502 与 ORA-15173 错误解决
2010-05-21 17:27 3944用rman恢复spfile时,报错误如下: RM ... -
Dropping A Disk From ASM Diskgroup Does Not Remove It From v$ASM_DISK
2010-05-21 10:42 1488Applies to: Oracle Serv ... -
ORA-19599 When backing up an archivelog that is corrupt [ID 461239.1]
2010-05-13 13:56 2666Applies to: Oracle Server - E ... -
ASMCMD fails to start on module libnnz10.so, permission denied
2010-05-13 01:14 2526ASMCMD fails to start on modu ... -
Errors ORA-00600 [kclchkblk_4] and ORA-00600 [2662] After Recovery of Datab
2010-05-12 15:45 1725Applies to: Oracle Server - E ...
相关推荐
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现: *** ACTION NAME:() 2009-04-01 09:31:00.762*** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762*** SERVICE NAME:(SYS$...
Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法。都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的...
ORA-609 : opiodr aborting process unknown ospid (4116_6104) 这时候朋友怀疑是不是监听器配置问题,就把原先的监听器删除重建了下,问题依然。 网上有个解决TNS-12535错误的案例,平台和版本都很类似,如下:...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
│ 04.ORA-01200错误裸设备恢复 │ 05.Oracle数据库无响应故障的处理 │ 06.RAC环境诊断案例一则 ├─第三篇 SQL调优篇 │ 01.合理利用索引解决性能问题 │ 02.SQL优化与调整实践 │ 03.索引访问与数据读取 │ 04....
6.2.7 诊断和解决ORA-04031错误 262 6.2.8 Library Cache Pin及Library Cache Lock分析 273 6.2.9 诊断案例一:version_count过高造成的Latch竞争解决 281 6.2.10 V$SQL与V$SQLAREA视图 287 6.2.11 Oracle ...
ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句 视图的删除:DROP VIEW VIEW_NAME语句删除视图。 删除视图的定义不影响基表中的数据。 只有视图所有者和具备DROP VIEW权限的用户可以删除视图。 视图被删除...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
【发现异常】地产客储系统数据库Oracle_192.168.xx.xx,192.168.xx.xx,数据库customer,连接错误,0 ORA-00257: archiver error. Connect internal only, until freed. 【发生时间】2018.07.04 09:12:21 二、错误原因...