动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.[Oracle]减少临时表使用空间的几.
.PL/SQL流程控制.
.Oracle 9i修改数据表结构.
.不装Oracle客户端怎么运行编译好.
.ORACLE入门之逻辑备份SH文件.
.Oracle数据库技术(24).
.为什么当系统启动到Sendmail时会.
.Oracle及IBM称SQL无新意 微软以商.
.Oracle数据库10gR2中stream多源复.
.利用Oracle的同意安全机制来控制.
.linux的基本操作(下).
.日常监测分析数据库的DBA_Monito.
.如何在squid中通过URL进行访问控.
.漫谈oracle中的空值.
.Oracle 10G 最佳20位新特性:高速.
.经典Oracle图书推荐-之三.
.Oracle10g R2 EMCA常用命令及实例.
.新建Oracle数据库回滚段具体操作.
.当“菜鸟”遭遇Linux.
.SQL*Report 1.1 Error Messages .

[错误]分析ora-03113错误!

发表日期:2008-2-9 |



我们在使用Oracle数据库时经常碰到的一个错误,看看下面的分析和解决办法,也许对你很有帮助!     
         Causes of ORA-3113's
  

ORA-3113 "end-of-file on communication channel" is a catch-all error message which simply means that the foreground oracle client process (svrmgrl, sqlplus, RMAN, Oracle Forms etc.) has lost contact with its background shadow process. 

Unfortunately there are many causes of this. Network glitches were clearly the cause that the Oracle developers had in mind when they phrased the error message, but anything which causes the shadow process to crash will cause this error to be reported. 

This message may also be accompanied by other messages, either displayed on the screen or in log files. If the background process which has crashed is one of the essential Oracle servers processes (PMON, SMON, DBWR etc.) you may also get an ORA-1034 ORACLE not available error message. Looking in the alert log or looking through any trace files in your background_dump_dest may help diagnose the problem. 

  

Here are some of the causes of ORA-3113 I've accumulated so far:
In the situations below I have indicated the platform and Oracle version number where I eXPerienced the problem. But it is likely that some of the causes may occur on other platforms and other versions of Oracle as well. 

  


Invalid value for processes parameter in init.ora when starting database
We had a value for processes of 150, which was 
higher than that permitted by the values of kernel parameters SEMMSL and SEMMNS 

This gave the errors: 


       ORA-24323: value not allowed
       ORA-03113: end-of-file on communication channel
       ORA-01034: ORACLE not available
       ORA-27101: shared memory realm does not exist
   
The solution is either to redUCe the value of the init.ora parameter processes or (preferably) increase the values of these kernel parameters (and reboot your server). 

(See the Oracle8i Installation Guide Release 8.1.7 for Sun SPARC Solaris manual for information on setting the Solaris shared memory and semaphore kernel parameters correctly. 

In particular, SEMMSL must be set to at least 10 + the largest value of processes of any database on the server. SEMMNS is also dependent on the values of the processes parameter for each of your databases. 

For other platforms, the procedure for changing kernel parameters may vary so consult the platform-specific documentaion for your plaform on Oracle Technet or on the installation CD.) 

Interestingly, this problem occurred during a default installation of Oracle 8.1.7, so it was the installer software that had generated this value for processes, resulting in the installer failing to create an initial database. Note that Oracle (rather unhelpfully) doesn't tell you which parameter has an invalid value, or why it is invalid. Presumably there are other init.ora parameters which will cause similar symptoms if incorrectly set. 
(Oracle 8.1.7.0.0 on Solaris) 





setuid 
bit needs setting on the oracle executable
(Unix only). The symptom for this (at least, in my case) was that SQL*Plus on the server gave an ORA-3113 error when started by any userid other than oracle. The database remained up. 

The oracle executable in the $ORACLE_HOME/bin Directory should have the permissions: 


   -rwsr-sr-x   1 oracle   dba      34049236 Oct 11 17:17 oracle
   
The important features are the ownership of the executable (by oracle) and the setting of the setuid bit (the first s in the permissions string.) This allows the shadow processes to execute as if they were being executed by the oracle userid and therefore allows them to read and write to the database files, which are normally protected with write Access granted to oracle only, and sometimes with read access restricted as well. The setting of the setgid bit (the second s ) is not important. 

If the permissions are wrong, they can be corrected with the command: 


   chmod 7755 $ORACLE_HOME/bin/oracle
   
Relinking the oracle executable (see below) will also set the permissions correctly. In fact, it is probable that in many cases changing the permissions was all that was required, rather than a full relink. 

A possible cause of this problem is using tar or cp or some other unix file-copying utility to move or clone the Oracle installation. These tools will not preserve the setuid permissions on executables unless run as root. (Thanks to Paul 
Ingram for his insights into this issue.) 
(Oracle 8.1.7.0.0 on Solaris) 





Oracle executables need relinking
There are three ways of doing this: 


There's an option on the Oracle Installer to relink the executables. 
I didn't use this method as I didn't have the installation CDROM to hand. 



Enter the following Unix commands: 

       cd $ORACLE_HOME/rdbms/lib
       
       make -f ins_rdbms.mk install
       
This relinked about a dozen executables, including $ORACLE_HOME/bin/oracle, and solved the problem. (Interestingly, the sqlplus executable was not relinked.) 



Enter the following Unix commands: 

       cd $ORACLE_HOME/bin
       
       ./relink all
       
Alternatively, given that it would seem necessary to only relink the oracle executable, ./relink oracle should be sufficient. 

./relink without any parameters gives a list of possible targets for relinking. 

Before embarking on a relinking exercise, it may first be worth checking whether the real cause of the problem is simply incorrect file permissions (see above). 
(Oracle 8.1.7.0.0 on Solaris) 





shared_pool_size too small.
We had it set to 100Mb. Increasing it to 200Mb solved the problem. (Yes, I know 200Mb is probably still too small for good performance.) 
(Oracle 8.1.6.0.0 on Solaris) 





timed_statistics=true.
Oracle Support could not provide a solution to this one: they just advised me to run my database with timed_statistics=false. Doing this did indeed 
cure a lot of ORA-3113's I was getting when querying data-dictionary tables. 
(Oracle 8.1.6.0.0 on Solaris) 





An insert into a table which grew into an additional extent allocated in a datafile which was over 2Gb in size.
This caused the database to crash. I can't remember whether it was the action of growing the datafile which generated the ORA-3113, or whether it was the action of extending the table into the area above the 2Gb limit which caused it. 

We then got ORA-3113's when trying to restart the database. I think what happened was that each time we brought it up it tried to re-apply the redo logs to bring the database into a consistent state before opening it. But this caused an insert above the 2Gb limit again and another ORA-3113 crash. I can't remember how I got round the problem. Probably "recover until cancel". 
(Oracle 8.1.6.0.0 on Solaris) 





Create table as select .... where there was an invalid procedure or function called from a trigger defined on the table we were selecting from.
I can't specify this in any more detail: we used the $ORACLE_HOME/rdbms/admin/utlrp.sql script to recompile all invalid packages, procedures and functions. This solved the problem, but I don't know which of the procedures or functions was the original cause of the problem. 
(Oracle 8.1.6.0.0 on Solaris) 

  

Make use of Oracle Support / Metalink
If you have a look at Metalink you'll find quite a lot of problems related to ORA-3113, with lots of diverse causes. You will probably need Oracle Support's help to solve most ORA-3113's
上一篇:ORACLE用SPFILE无法启动 人气:489
下一篇:Oracle DBA最常碰到的10个Oracle错误 人气:556
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号