Oracle常见错误诊断

 更新时间:2007年03月07日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle常见错误诊断。ORACLE的这类错误在ORALCE的文档中有详细说明,但原因及措施说明不详细,本文当着重说明如何解决这类错误。

  1、ORA-12571、ORA-03113、ORA-03114、ORA-01041

  特征:客户端(代理或应用服务器)有时报这类断连错误

  原因:如果偶尔出现一次,则可能为网络原因或用户异常中止,如果经常出现则为客户端与服务端的字符集不一致。

  措施:如果偶尔出现,可在服务端的协议配置文件PROTOCOL.ORA中增加一行

  TCP.NODELAY=YES;

  如果经常出现,则为客户端与服务端字符集不一致或网络原因。

  客户端的字符集在注册表里定义:    HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG

  在客户端注册表中的TCP参数项中设置   TCPMAXDATARETRANSMITIONS=20。

  2、ORA-01000

  特征:达到会话允许的最大游标数

  原因:达到会话允许的最大游标数

  措施:有两种解决方法:

  (1)在初始化文件INIT.ORA文件中增加OPEN_CURSORS的数量,一般要求大于200。

  (2)在应用级,与开发工具有关,例如设置MAXOPEN_CURSORS等。

  3、ORA-01545

  特征:某个回滚段不可用

  原因:(1)当使回滚段ONLINE时,但回滚段不可用,例如回滚段所在表空间OFFLINE;

  (2) 当使回滚段ONLINE时,但回滚段已ONLINE,例如回滚段被使用两次,典型的案例如OPS方式时,回滚段不能公有;

  (3)删除回滚段时,回滚段中有活动的事务;

  措施:(1)确保回滚段可

  (2)从初始化文件INIT.ORA的参数ROLLBACK)SEGMENTS中删除指定的回滚段。

  (3)可以将回滚段所在表空间删除,取消UNDO事务

  4、ORA-0165x

  特征:表空间没有足够的空间供分配

  原因:表空间已满;存储参数不合理,NEXT太小;没有连续的区间

  措施:如果表空间已满,则需为表空间增加文件;如果存储参数不合理,则需增加INITIAL和NEXT;如果没有连续的区间,需要合并空闲的表空间。

  查看空间碎片用DBA_FREE_SPACE

  5、ORA-01555

  特征:当前会话无法读到以前版本的数据

  原因:原因很多,主要原因有下列:回滚段太小、太少;回滚段冲突;交叉提交(FETCH_ACROSS)

  措施:增加回滚段数量;

  6、ORA-04031

  特征:共享池内存区内存不够,或产生内存碎片

  原因:当试图装载一个大包时或执行一个较大的存储过程时,而共享池没有连续的内存空间。

  措施:如果是内存不够,则增加SHARE)POOL_SIZE;

  如果是内存碎片,执行alter system flush share_pool

  7、ORA-04091

  特征:触发器工作不正常

  原因:一个行触发读取或修改变化的表(正在修改、插入)时,产生这种错误。

  措施:检查触发器脚本,保证引用完整性

  8、ORA-01242、ORA-01113

  特征:介质故障导致数据库宕机

  原因:介质故障。

  措施:检查硬件故障;修改dbshut脚本,将其中的STARTUP命令修改为:

  Startup open recover

  Alter database open


相关文章

  • 常见数据库系统比较  Oracle数据库

    常见数据库系统比较 Oracle数据库

    常见数据库系统比较 Oracle数据库...
    2007-03-03
  • oracle表空间扩容详情

    oracle表空间扩容详情

    这篇文章主要介绍了oracle表空间扩容,主要内容有表空间容量指标查询、表空间扩容,详细内容请和小编一起学习下面文章吧
    2021-10-10
  • Oracle exadata存储节点更换内存操作及报错处理方法

    Oracle exadata存储节点更换内存操作及报错处理方法

    在进行Oracle Exadata巡检时,发现cell节点内存报错,需确认内存PN号及大小,并更换备件,这篇文章主要介绍了Oracle exadata存储节点更换内存操作及报错处理的相关资料,需要的朋友可以参考下
    2024-10-10
  • Oracle使用rownum分页方式实例代码

    Oracle使用rownum分页方式实例代码

    ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序,这篇文章主要给大家介绍了关于Oracle使用rownum分页的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Oracle根据逗号拆分字段内容转成多行的函数说明

    Oracle根据逗号拆分字段内容转成多行的函数说明

    在做系统时经常会遇到在一个字段中,用逗号或其他符号分隔存储多个信息,下面这篇文章主要给大家介绍了关于Oracle根据逗号拆分字段内容转成多行的函数说明,需要的朋友可以参考下
    2023-04-04
  • oracle chm帮助文件下载

    oracle chm帮助文件下载

    oracle帮助文档下载方便学习oracle的朋友门,大量的问答式解决方法
    2008-05-05
  • oracle安装出现乱码等相关问题

    oracle安装出现乱码等相关问题

    oracle安装过程中出现乱码等一系列相关问题,本文将介绍如何解决,需要了解的朋友可以参考下
    2012-11-11
  • plsql配置tnsnames.ora的实现方法

    plsql配置tnsnames.ora的实现方法

    这篇文章主要介绍了plsql配置tnsnames.ora的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Oracle进阶DECODE函数使用详解

    Oracle进阶DECODE函数使用详解

    这篇文章介绍了Oracle进阶DECODE函数的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Oracle数据库用户的密码过期时间如何修改为永不过期

    Oracle数据库用户的密码过期时间如何修改为永不过期

    Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天。那么如何修改Oracle数据库用户的密码过期时间为永不过期呢?下面通过本文给大家介绍下
    2017-01-01

最新评论