`
meviso
  • 浏览: 34242 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

安装数据库出错

 
阅读更多
ora-03113:end-of-file on communication channel 


手动关闭Oracle之后打算再次启动Oracle:

$sqlplus ‘/as sysdba’

SQL> startup

ORA-03113: end-of-file on communication channel

结果便出现了以上错误。



通过上网查询出错原因,常见的原因有以下几个:

1、Unix核心参数设置不当

2、Oracle执行文件权限不正确/环境变量问题

3、客户端通信不能正确处理

4、数据库服务器崩溃/操作系统崩溃/进程被kill

5、Oracle 内部错误

6、特定SQL、PL/SQL引起的错误

7、空间不够

8、防火墙的问题



因为oracle已经正常运行了一个月,因此unix参数不对、权限环境变量、防火墙这些在首次启动就会发现的问题不应该现在才出现;而对于客户端通信、特定的SQL引起的错误,因为在启动过程中就已经报错,所以也排除。

由此判断,数据库服务崩溃/系统崩溃/进程被kill、Oracle内部错误、空间不够可能是原凶。



首先从最容易查起的原因开始,查询磁盘空间,结果磁盘空间利用不到30%,剩余空间足够;



于是检查Oracle内部错误:

$cd $ORACLE_HOME/admin/SID/cdump

发现大量的core,看来原因找到了。但所有的core目录都是空的,没有任何文件。

使用ulimit –a查看,原因core的文件大小为0,这是什么原因导致的core呢?



现在原因不明,于是检查bdump目录下的日志。

$cd $ORACLE_HOME/admin/SID/bdump

$cat alert_SID.log

发现日志量很大,满屏的都是同一个错误,扩展表空间失败:

ORA-1654: unable to extend index SID.INDEX by 128 in tablespace TABLESPACE

ORA-1653: unable to extend table SID.TABLE by 1024 in tablespace TABLESPACE

看来表空间已经满了并且无法扩展导致oracle出现core的。



$cd $ORACLE_BASE/oradada/SID

$ls –lh

-rw-r----- 1 oracle oinstall  2.1G Oct 14 15:10 SID_DATA01.DBF

-rw-r----- 1 oracle oinstall  201M Oct 14 12:28 SID_INDEX01.DBF

原来是空间已经达到2G,但应该触发扩展才对。



安装数据库时并没有限制SID_DATA01.DBF文件大小。

查看创建表空间的脚本,发现在脚本中对该文件有限制。脚本如下:

CREATE TABLESPACE SID_DATA DATAFILE

‘/data/oracle/oradata/SID/SID_DATA01.DBF' SIZE 200M AUTOEXTEND ON NEXT 200M MAXSIZE 2048M’

MAXSIZE UNLIMITED

LOGGING

ONLINE

PERMANENT

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT MANUAL;

原来是在创建表空间时人为限制了表空间大小最大为2G,这是优化导致的问题,今后在新建数据库时都要记住,数据库要根据用户的使用场景来变更表空间。

很多程序只支持2G大小的文件,所以才定为2G,以避免此类问题,虽然使用的是ext3的文件系统,为了方便解决问题才定为2G。但数据库文件为2.1G,难道是文件太大导致的不能启动?

似乎问题找到了,只需要修改表空间即可解决问题。

但要修改表空间,首先要启动数据库,才能够修改表空间的参数,问题又绕回来了,数据库启不动。



于是再次在网上搜索资料,表空间满导致数据库启动不了的,还没有人遇见这样的问题,看来我们碰到的问题并不是前面所列出的八种原因,而是一种特殊原因。

尝试过多种启动方式:

Startup   直接启动

Startup mount   加载数据库

Startup unmount   不加载数据库

Startup force    强行启动

全是报同一个错误提示:ORA-03113: end-of-file on communication channel

经过几个小时,总结了一下,表空间满应用程序不停向数据库写数据,oracle出现异常,之后无法启动。但要解决数据库空间问题必须先启动。



于是在网上查询是否有办法在不启动数据库的情况下修改表空间,但找了很久没有此类方法。

难道真的要用删除数据库的方法才能够解决?

细心的人可能发现了我们问题解决过程,startup mount 和startup unmount执行结果都是相同的。或许是启动过程中碰到了什么问题导致无法启动,难道和数据库的文件大小根本没关系?是不是oracle启动时还需要其它文件,而这些文件也增大了?

于是使用find命令查询大于2G文件

$cd $ORACLE_BASE

$find . -size +2097160192c

./product/9.2.0.4/admin/SID/bdump/alert_SID.log

./oradata/SID/SID_DATA01.DBF

真的还有一个,清空该日志文件,启动….成功,再次修改oracle的表空间属性,日志中错误消失。



总结

1、经查询资料,了解到Oracle对自身日志文件有一个限制就是每个日志文件不能大于2G,大于2G以后会出现各种问题。且同样对日志文件有这样限制的软件还有不少,如Squid,RoseHA等。因此以后我们在今后要实际生产环境中部署的时候,一定要针对这一特点手工对Oracle做自动日志切割和清理。

2、千万不要删除oracle的数据库文件,即使备份后恢复数据也会丢掉,因为Oracle的数据文件是与磁盘物理位置有关联的,不像mysql那样。



分享到:
评论

相关推荐

    解决SQL Server数据库中附加数据库的出错问题

    解决 SQL Server 数据库中附加数据库的出错问题 在本文中,我们将详细介绍解决 SQL Server 数据库中附加数据库的出错问题。该问题通常会在执行 sp_attach_db 或 sp_attach_single_file_db 时出现,提示错误 1813:...

    SQL Server 2005附件数据库出错

    ### SQL Server 2005 附件数据库出错解析及解决方案 #### 一、问题概述 在使用SQL Server 2005的过程中,用户可能会遇到“附件数据库出错”的问题。这种错误通常发生在尝试附加一个之前从另一台服务器上分离出来的...

    SQL Server里附加数据库出错的解决方法.doc

    在SQL Server中,当尝试附加数据库时...总的来说,解决SQL Server附加数据库出错的问题需要细心的排查和适当的数据库管理知识,确保按照正确的顺序和方法进行操作,以最大程度地保护数据安全并恢复数据库的正常运行。

    数据库连接出错解决

    当出现“数据库连接出错”的提示时,这通常意味着应用程序无法成功建立到数据库的连接,导致数据无法正常读取、写入或更新。本文将深入探讨这个问题,并提供解决策略。 首先,错误提示中提到了“Conn.asp文件”,这...

    java 程序打包成jar文件后 连接数据库出错(教程方法)

    1. 下载并安装exe4j。 2. 打开exe4j,选择**Java Application**模板。 3. 添加你的JAR文件,设置入口点类。 4. 指定Java临时目录和主类工作目录。 5. 配置JRE搜索路径,可以指定一个特定版本的JRE或者让用户自定义。...

    PHP实现全自动安装数据库

    在IT行业中,数据库的自动化安装是提升效率和减少人为错误的关键步骤。PHP作为一种广泛使用的服务器端脚本语言,常用于构建动态网站和Web应用程序。在本篇内容中,我们将深入探讨如何利用PHP来实现数据库的全自动...

    自动安装Oracle数据库

    这种方法相比传统的手动安装,更加高效,减少了人为干预,降低了出错概率。 描述中提到的"一键安装oracle脚本",意味着这个脚本包含了所有必要的步骤,用户只需执行一个命令,就能完成整个安装。"支持自定义变量"这...

    Mysql数据库出错.md

    安装mysql数据库时,经常会出现安装失败等原因,下面是数据库安装遇到的问题,错误代码以及常见的解决方案(包括自己走过的坑)

    安装Fly.Box企业网盘过程中,附加SqlServer数据库出错,解决办法

    在安装Fly.Box企业网盘的过程中,可能会遇到一个常见的问题,即在附加Sql Server数据库时遇到错误。这可能是由于多种原因导致的,而本文将详细解释这些问题及其解决方案。 首先,问题可能源于文件权限不足。在...

    Linux数据库配置手册

    3. **安装与更新**:在Linux上安装数据库通常通过包管理器(如apt、yum)进行,学习如何正确安装、升级和卸载数据库软件是基本技能。 4. **数据库配置**:配置文件一般位于/etc目录下,如MySQL的my.cnf。理解并能...

    SQL数据库的管家婆出错分析及修复方法

    SQL数据库的管家婆出错分析及修复方法 SQL数据库 修复 出错 分析 方法

    静态页面链接数据库文件

    数据库连接出错数据库连接出错数据库连接出错数据库连接出错数据库连接出错

    bat脚本(oracle静默安装+创建数据库)

    总的来说,使用批处理脚本来实现Oracle的静默安装和数据库创建,能够有效地节省时间,减少出错的可能性,尤其适用于批量部署或自动化运维的场景。但需要注意的是,这种方式要求对Oracle安装过程和DOS命令有较深入的...

    凝思系统+django+达梦数据库

    - 安装达梦数据库驱动:通常为`dmdbms`或`pyodbc`,根据官方文档指示安装。 - 配置数据库连接:在Django的`settings.py`文件中设置达梦数据库的连接参数,如用户名、密码、主机、端口和数据库名。 5. **创建...

    SQLup清除初始化,可以从新安装数据库

    描述中的"SQL数据库安装出错,应用即可清除残留,方便各位使用"进一步强调了SQLup在解决安装问题上的作用。当数据库安装过程中出现错误,如安装中断、文件损坏或依赖项缺失,这可能导致数据库服务无法启动或运行不...

    SQL数据库系统安装修复工具

    在安装SQL Server时,由于各种原因,如系统兼容性、依赖组件缺失或配置不当等,可能会导致安装过程出错,甚至出现挂起状态,无法继续或完成。这时,这款工具就显得尤为重要。 该工具包含多个关键组件,例如Pbvm90....

    当navicta连接orcal数据库出错时,用来修改配置文件的资源包

    总之,当Navicat连接Oracle数据库出错时,检查网络配置、即时客户端版本、环境变量设置、tnsnames.ora文件以及服务器端的监听器状态是基本的解决步骤。这个资源包“即时客户端_21_3”应该是为了更新或修复这些关键...

    SQL SERVER数据库附加失败解决办法

    在处理SQL SERVER数据库附加过程中,遇到失败的情况是很常见的问题,这些失败可能是由于多种原因导致的,解决这些问题的方法也各不相同。本文将详细列出解决SQL SERVER数据库附加失败的几种方法,并对每个解决方案...

    IIS数据库连接出错 解决方案

    当你使用下面的代码清理垃圾文件时,如果你没有用IIS,就不会有什么问题,但你如果有IIS的话就会出现 “数据库连接出错,请检查Conn.asp文件中的数据库参数设置。”,

    一键安装mysql数据库脚本.zip

    此资源为centos7环境下通过脚本一键安装mysql的shell脚本,数据库安装前需要将mysql-5.7*.tar.gz文件、my.cnf.bak、startmysql.sh、stopmysql.sh拷贝...clean.sh为安装时出错时清理数据目录脚本,安装完成后删除即可。

Global site tag (gtag.js) - Google Analytics