ORACLE数据库常见问题诊断方法
ORACLE的这类错误在ORALCE的文档中有详细说明 但原因及措施说明不详细 本文当着重说明如何解决这类错误
ORA ORA ORA ORA
特征 客户端(代理或应用服务器)有时报这类断连错误
原因 如果偶尔出现一次 则可能为网络原因或用户异常中止 如果经常出现则为客户端与服务端的字符集不一致
措施 如果偶尔出现 可在服务端的协议配置文件PROTOCOL ORA中增加一行
TCP NODELAY=YES
如果经常出现 则为客户端与服务端字符集不一致或网络原因
客户端的字符集在注册表里定义
HKEY__LOCAL__MACHINE/SOFARE/ORACLE/NLS__LANG
在客户端注册表中的TCP参数项中设置
TCPMAXDATARETRANSMITIONS=
ORA
特征 达到会话允许的最大游标数
原因 达到会话允许的最大游标数
措施 有两种解决方法
( )
在初始化文件INIT<SID> ORA文件中增加OPEN_CURSORS的数量 一般要求大于
( )
在应用级 与开发工具有关 例如设置MAXOPEN_CURSORS等
ORA
特征 某个回滚段不可用
原因 ( )当使回滚段ONLINE时 但回滚段不可用 例如回滚段所在表空间OFFLINE;
( ) 当使回滚段ONLINE时 但回滚段已ONLINE 例如回滚段被使用两次 典型的案例如OPS方式时 回滚段不能公有;
( )删除回滚段时 回滚段中有活动的事务
措施 ( )确保回滚段可
( )从 初始化文件INIT<SID> ORA的参数ROLLBACK)SEGMENTS中删除指定的回滚段
( )
可以将回滚段所在表空间删除 取消UNDO事务
ORA x
特征 表空间没有足够的空间供分配
原因 表空间已满 存储参数不合理 NEXT太小 没有连续的区间
措施 如果表空间已满 则需为表空间增加文件 如果存储参数不合理 则需增加INITIAL和NEXT 如果没有连续的区间 需要合并空闲的表空间
查看空间碎片用DBA_FREE_SPACE
ORA
特征 当前会话无法读到以前版本的数据
原因 原因很多 主要原因有下列 回滚段太小 太少 回滚段冲突 交叉提交(FETCH_ACROSS)
措施 增加回滚段数量
ORA
特征 共享池内存区内存不够 或产生内存碎片
原因 当试图装载一个大包时或执行一个较大的存储过程时 而共享池没有连续的内存空间
措施 如果是内存不够 则增加SHARE)POOL_SIZE
如果是内存碎片 执行alter system flush share_pool
ORA
特征 触发器工作不正常
原因 一个行触发读取或修改变化的表(正在修改 插入)时 产生这种错误
措施 检查触发器脚本 保证引用完整性
ORA ORA
特征 介质故障导致数据库宕机
原因 介质故障
措施 检查硬件故障 修改dbshut脚本 将其中的STARTUP命令修改为
&nbs
p;
Startup open recover
lishixinzhi/Article/program/Oracle/201311/17300