数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

工作中遇到的oracle故障分析和处理一例


发布日期:2021年12月19日
 
工作中遇到的oracle故障分析和处理一例

案例类别 VAS网络

系统类型 CMODE

系统版本 硬件SUN 软件所有版本

案例标题 CMODE放号中的数据库出现LOCK的处理方法

故障现象 启动sam_cmode进程不能正常处理工单

故障描述 启动以sam_cmode –d方式启动发现sam_cmode始终在处理一个用户

connected

c f e a e d d

a c f d

a d a

send: LOGIN:USERNAME=utbjPASSWORD=utbj

recv: LOGIN:RESULT=

connect cmode successful!

c a

d a

send DEL :

a connection break or timeout in recv

commu err when delete event

故障分析 在CMODE的数据库中手动删除该用户记录发现oracle无任何反馈信息

(正常情况下会出现oracle的完整性约束报错ORA: integrity constraint (PDXDBAFK_TSIGNUP_USERID) violated child record found)

初步怀疑tcontract表中该用户记录被锁定

通过查询oracle的视图发现目前有用户正在update该用户记录且发现有很多update操作没有commit

SQL> select aSERIAL#aSIDcSQL_TEXTaprogram from v$session av$locked_object bv$sqltext c where asid=bSESSION_ID and cSQL_TEXT like update tcontract set % and aprogram like sqlplus% order by asid;

update tcontract set lstatus=E where tel=

sqlplus@gz_signup (TNS VV)

故障处理 通过oracle命令将这些session杀死重启sam_cmode和signup模块

alter system kill session ;

日常维护 维护人员尽量不要手工修改CMODE数据库中的数据

修改完毕确认正确后及时执行commit操作

上一篇:用.NET新提供的managed provider来访问Oracle数据

下一篇:Oracle9i在AIX上的性能调整--内存篇