首頁 資料庫 mysql教程 ORA-03113错误分析与解决

ORA-03113错误分析与解决

Jun 07, 2016 pm 05:21 PM

每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ......)。有些错误由于频繁出现

前言
每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ......)。有些错误由于频繁出现、原因复杂而被 Oracle DBA 们戏称之为"经典的错误"。其中ORA-3113 "end of file on communication channel" 就是这样的一个。

我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断。不过,导致这个错误的原因实际上有很多种:对数据库设置不当、任何能导致数据库后台进程崩溃的行为都可能产生这个错误。这个错误的出现还经常伴随着其它错误,比如说:
ORA-1034 ORACLE not available
此外,该错误出现的场景复杂,可能出现在:
启动的Oracle的时侯
试图创建数据库的时侯
试图对数据库进行连接的时侯
在客户端正在运行SQL/PL/SQL的时侯
备份/恢复数据库的时侯
其它一些情况下......
在论坛上也时常可以看到初级DBA对这个问题的求救。在这里简单的对该问题进行一下整理。

错误原因种种

根据网络上大家反映的情况来看,错误原因大约有这些:
Unix核心参数设置不当
Oracle执行文件权限不正确/环境变量问题
客户端通信不能正确处理
数据库服务器崩溃/操作系统崩溃/进程被kill
Oracle 内部错误
特定SQL、PL/SQL引起的错误
空间不够
防火墙的问题
其它原因
在开始解决问题之前,作如下几件事情:
回忆一下在出现错误之前你都做了什么操作,越详细越好;
查看 background_dump_dest 目录中的 alertSID.log 文件也是你必须要的事情;
用Google.COM 搜索一下,在互联网上有很多信息等着你去发现,不要什么都问别人。
当然, 如果你找到了一些对你更有帮助的东西--这篇文档就不用看了 :-)

错误原因情景分析

Unix核心参数设置不当 / init参数设置不当
如果数据库在安装过程中没有设定正确的操作系统核心变量,,可能在安装数据库文件的时侯没甚么问题,在创建数据库的时侯常常会出现03113错误。和此有关的另一个原因是init.ora 参数文件中的processes参数指定了不合理的值,启动数据库导致错误出现(当然这个归根到底也是核心参数的问题)。

这个错误信息一般如下:
ORA-03113: end-of-file on communication channel
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

解决办法有两个:

1、修改核心参数,加大相应核心参数的值(推荐);
2、减小init.ora参数的Processes的值。

需要注意的是:
SEMMSL必须设定为至少要10 + '进程数的最大值';
SEMMNS 也依赖于每个数据库上的进程参数值。
注:

这个错误类型只在Unix平台上出现。在Windows上如果processes的值过大,则会出现类似如下的错误:
ORA-00068: invalid value 24200001 for parameter max_rollback_segments,
must be between 2 and 65535

/* 此时指定的参数值超过了65535 */

或者
ORA-27102: out of memory 
/* 小于65535的一个大参数值 */ 软件环境:
Windows 2000 Version 5.0 Service Pack 3, CPU type 586
ORACLE RDBMS Version: 8.1.7.0.0

在特定平台上更改核心参数可能会有差别,请参考Oracle Technet() 上的安装文档。对特定Unix平台的安装文档也有对核心参数意义的解释。 Init.ora中的参数如果设置不当,会产生该错误。有经验表明:shared_pool_size设置 过小会出现错误,此外timed_statistics=true的设置也会带来问题。
Oracle执行文件权限不正确/环境变量问题
这个问题只出现在Unix平台上。常见情况是有的时侯管理员为了方便而使用Unix的tar命令 处理过的压缩包进行的安装,或者是系统管理员指定了额外的OS用户也可以管理数据库却没 有指定正确的环境变量。
Oracle执行文件在$ORACLE_HOME/bin目录下,如果出现问题,应该用如下Unix类似命令来纠正 :
#chmod 7755 $ORACLE_HOME/bin/oracle
有的时侯要对Oracle进行relink操作。
在Unix上通过cp拷贝安装的时候,常常会出现环境变量的问题,和个别执行程序连接问题。 LD_LIBRARY_PATH如果设置的不正确会导致问题,在这种情况下,需要对Oracle进行relink。 如果可执行文件oralcle被破坏,也要对其relink。 如果安装了并行服务器选项而Distributed Lock Manager没有安装或正确运行也会导致错误。
客户端通信不能正确处理
1.SQL*Net驱动器的问题:
如果使用的版本比较低的驱动器,请更换到新版本的驱动。 SQL*Net 的驱动没有连接到Oracle可执行文件会导致错误。
2.检查TCP/IP网络是否通畅;
3.Windows平台的常见网络问题:
在Windows平台创建数据库的时侯,如果出现该问题可以考虑用如下的方法:

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? 如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? Mar 18, 2025 pm 12:00 PM

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)?

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

如何為MySQL連接配置SSL/TLS加密?

See all articles