欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle常见错误诊断

程序员文章站 2024-02-08 21:14:10
正在看的oracle教程是:oracle常见错误诊断。oracle的这类错误在oralce的文档中有详细说明,但原因及措施说明不详细,本文当着重说明如何解决这类错误。...
正在看的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