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

  1<sid>.ORA文件中增加OPEN_CURSORS的数量,一般要求大于200。 
  2
  3  
  4(2) 在应用级,与开发工具有关,例如设置MAXOPEN_CURSORS等。 
  5
  6  
  73 ORA-01545 
  8
  9  
 10特征:某个回滚段不可用 
 11
 12  
 13原因:(1)当使回滚段ONLINE时,但回滚段不可用,例如回滚段所在表空间OFFLINE; 
 14
 15  
 16(2) 当使回滚段ONLINE时,但回滚段已ONLINE,例如回滚段被使用两次,典型的案例如OPS方式时,回滚段不能公有; 
 17
 18  
 19(3)删除回滚段时,回滚段中有活动的事务; 
 20
 21  
 22措施:(1)确保回滚段可 
 23
 24  
 25(2)从 初始化文件INIT<sid>.ORA的参数ROLLBACK)SEGMENTS中删除指定的回滚段。 
 26
 27  
 28(3) 可以将回滚段所在表空间删除,取消UNDO事务 
 29
 30  
 314 ORA-0165x 
 32
 33  
 34特征:表空间没有足够的空间供分配 
 35
 36  
 37原因:表空间已满;存储参数不合理,NEXT太小;没有连续的区间 
 38
 39  
 40措施:如果表空间已满,则需为表空间增加文件;如果存储参数不合理,则需增加INITIAL和NEXT;如果没有连续的区间,需要合并空闲的表空间。 
 41
 42  
 43查看空间碎片用DBA_FREE_SPACE 
 44
 45  
 465 ORA-01555 
 47
 48  
 49特征:当前会话无法读到以前版本的数据 
 50
 51  
 52原因:原因很多,主要原因有下列:回滚段太小、太少;回滚段冲突;交叉提交(FETCH_ACROSS) 
 53
 54  
 55措施:增加回滚段数量; 
 56
 57  
 586 ORA-04031 
 59
 60  
 61特征:共享池内存区内存不够,或产生内存碎片 
 62
 63  
 64原因:当试图装载一个大包时或执行一个较大的存储过程时,而共享池没有连续的内存空间。 
 65
 66  
 67措施:如果是内存不够,则增加SHARE)POOL_SIZE; 
 68
 69  
 70如果是内存碎片,执行alter system flush share_pool 
 71
 72  
 737 ORA-04091 
 74
 75  
 76特征:触发器工作不正常 
 77
 78  
 79原因:一个行触发读取或修改变化的表(正在修改、插入)时,产生这种错误。 
 80
 81  
 82措施:检查触发器脚本,保证引用完整性 
 83
 84  
 858 ORA-01242、ORA-01113 
 86
 87  
 88特征:介质故障导致数据库宕机 
 89
 90  
 91原因:介质故障。 
 92
 93  
 94措施:检查硬件故障;修改dbshut脚本,将其中的STARTUP命令修改为: 
 95
 96  
 97Startup open recover 
 98
 99  
100Alter database open</sid></sid>
Published At
Categories with 数据库类
comments powered by Disqus