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