INFORMIX应急手册.docx
《INFORMIX应急手册.docx》由会员分享,可在线阅读,更多相关《INFORMIX应急手册.docx(15页珍藏版)》请在冰豆网上搜索。
INFORMIX应急手册
产品名称Productname
文档密级Confidentialitylevel
综合智能网(UIN)
内部公开
产品版本Productversion
Total9pages共9页
INFORMIX应急手册
(仅供内部使用)
Forinternaluseonly
拟制:
Preparedby
陈胜平26652
日期:
Date
2004-09-06
审核:
Reviewedby
UIN维优组
日期:
Date
2004-09-06
审核:
Reviewedby
日期:
Date
yyyy-mm-dd
批准:
Grantedby
赵晓东
日期:
Date
yyyy-mm-dd
华为技术有限公司
HuaweiTechnologiesCo.,Ltd.
版权所有XX
Allrightsreserved
修订记录Revisionrecord
日期
Date
修订版本Revisionversion
修改描述
changeDescription
作者
Author
2004-09-06
1.00
初稿完成initialtransmittal
陈胜平
yyyy-mm-dd
1.01
修改XXXrevisedxxx
作者名name
yyyy-mm-dd
1.02
修改XXXrevisedxxx
作者名name
……
……
……
……
yyyy-mm-dd
2.00
修改XXXrevisedxxx
作者名name
目录TableofContents
表目录ListofTables
图目录ListofFigures
INFORMIX应急手册
关键词Keywords:
INFORMIX,双机,应急处理
摘要Abstract:
本文提供网上INFORMIX故障处理的应急手册
缩略语清单Listofabbreviations:
<对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释。
Describeabbreviationsinthisdocument,fullspellingoftheabbreviationandChineseexplanationshouldbeprovided.>
Abbreviations缩略语
Fullspelling英文全名
Chineseexplanation中文解释
1目的
INFORMIX数据库是综合智能网(UIN)网上设备的主要外购件,是综合智能网最主要的支撑软件,其稳定性和可靠性关系到UIN设备的可用性。
在网上问题中,INFORMIX问题所占的比重很大,数据库一旦出现问题,业务将中断。
当INFORMIX出现问题,如果不能快速定位问题,不能收集到有用的信息供以后定位分析,不能快速恢复业务运行,轻则影响了我司智能网的声誉,影响了智能业务的发展,重则造成局方索赔,给我司造成经济损失。
本INFORMIX应急手册主要规范处理INFORMIX问题的操作步骤,提供网上案例供定位问题时参考,以达到快速定位问题,快速恢复业务运行,保证数据完整,方便问题分析的目的。
本INFORMIX应急手册适用于IIN平台的SCP系统。
2应急操作指南
2.1收集信息
2.1.1收集informix数据
当INFORMIX数据库出现问题时,首先要收集当前的数据库状态信息,这有助于问题定位分析。
请务必执行这步操作。
以informix用户登录执行:
首先查看数据库是否启动。
%onstat–
如果启动,则执行下列命令收集信息。
%onstat-a>onstat.a(该命令相当于onstat-cuskbtdlp)
%onstat-gall>onstat.gall(打印所有多线程信息)
%onstat-gstkall>onstat.gstk(打印所有多线程的堆栈信息)
%onstat-oshmem.dump(将当前共享内存段的副本存储到指定的文件中。
新产生的文件可以作为以后onstat命令的输入,共以后使用)
注意:
保存INFORMIX的共享内存副本时,需要确认文件系统的空间是否足够。
首先看共享内存的大小
%onstat–
InformixDynamicServerVersion7.31.UD6W5--On-Line--Up2days23:
54:
59--651392Kbytes
然后看文件系统的大小。
%df–k
2.1.2收集系统数据
当数据库出现问题时,还需要收集CPU、磁盘IO、网络、进程等信息。
以root用户登录执行:
#sar-u210>cpu.txt
#sar-b210>buf.txt
#sar-v210>prof.txt
#sar-d210>io.txt
#ps–ef>proc.txt
#ipcs-o>ipc.txt
2.1.3脚本
可以使用下列脚本收集数据
使用方法:
以root用户登录执行。
注意:
此脚本没有包含onstat–oshmem.dump命令,需手工执行此命令。
对于SUN或HP机型,手工执行top命令,并把输出结果粘贴出来(重定向会乱码)
#top
对于IBM机型,手工执行topas命令,并把输出结果粘贴出来(重定向会乱码)
#topas
2.2关闭和启动数据库的顺序
如果没有硬件错误,只是纯软件问题,收集好了信息以后,就可以通过重启应用来解决问题,这样可快速恢复业务。
在重启应用之前,还要检查清楚系统的当前状态。
操作思路如下:
●首先要顺序关闭备机的cluster、spy.sh、SCP、INFORMIX。
这样当关闭主机的SCP时,才不会切换到备机。
因为此时备机可能处于异常状态。
●然后顺序关闭主机的cluster、spy.sh、SCP、INFORMIX。
●启动的顺序同关闭的顺序相反。
先顺序启动主机的INFORMIX、SCP、cluster。
当主机正常并对外提供服务后,再顺序拉起备机的INFORMIX、SCP、cluster。
2.3检查系统状态
2.3.1检查系统运行状况
用topas或top命令,查看系统运行情况。
主要关注进程的CPU占用率、磁盘IO、交换区的使用情况、网络情况。
#topas
2.3.2确认哪台机器是主机
对于DR方式的数据库,确认数据库发生问题前哪台机器处于Primary非常重要。
可以从下面几个方面来确认主用状态。
1.看是否存在share_ip
#netstat-i
2.双机日志
编辑spy.log双机日志,寻找”Dualsystemmode”关键词,看看双机最后稳定在哪个状态。
May2423:
14:
21-Node"iinscp2":
Dualsystemmode=primary.
May2423:
25:
26-Node"iinscp1":
Dualsystemmode=standby.
primary表示Node“iinscp2”在23:
14分启动后成为主机
standby表示Node“iinscp1”在23:
25分启动后成为备机。
3.SCP的日志
编辑manager_0.log文件,查看最后出现的下列关键字。
[20:
19:
39][DS1]Prompt:
DSTATE1:
createdualsocketserversuccessfully,fd=30
DSTATE1关键字表明此台SCP处于DSTATE1,即主用,并且与备机的SCP已经建立Socket连接。
[20:
08:
29][DS2]Prompt:
AuxconnecttoMain(ip=10.164.20.190)successfully.
AuxconnecttoMain关键字表明此台SCP为备机,处于DS2即DSTATE2
4.数据库日志
编辑online.log文件,查看在最后一次启动后是否存在下列关键字。
17:
49:
27DR:
Primaryserveroperational
这表明数据库启动后为On-Line(prim)状态
18:
20:
45DR:
Secondaryserveroperational
这表明数据库启动后为Read-Only(sec)状态
5.数据库的保留页
数据库的保留页记录了数据库最后的DR状态。
%oncheck-pr
DRCkptLogicalLogId4122
DRCkptLogicalLogPos0xe018
DRLastLogicalLogId4122
DRLastLogicalLogPage14
DRLastModeChange5Primarydetectederror
这说明此台数据库在关闭前处于Primary状态。
%oncheck-pr
DRCkptLogicalLogId4121
DRCkptLogicalLogPos0x508e018
DRLastLogicalLogId4122
DRLastLogicalLogPage4
DRLastModeChange8Secondarymode
这说明此台数据库在关闭前处于Secondary状态。
2.3.3检查是否存在硬件错误
检查硬件状态,可以定位出磁盘是否存在问题。
如果磁盘出现问题,数据库的恢复将变得很复杂,甚至没法拉起INFORMIX数据库。
如果没有出现硬件错误,则可以通过重启数据库,快速恢复业务。
对于IBM机型,执行:
#errpt
对于HP机型,执行:
#dmesg
#vi/var/adm/syslog/syslog.log
对于SUN机型,执行:
#dmesg
#vi/var/adm/messages
2.3.4检查双机状态
IIN平台的双机脚本控制着INFORMIX、SCP等程序的启动和关闭,不正确的操作顺序将会影响双机状态的异常,从而导致数据库的DR异常。
检查的主要项目有:
●spy.sh是否启动,如果启动是处于Primary状态还是standby状态。
●share_ip绑定到哪台主机
●数据库是否启动,如果启动是处于primary状态还是Secondary状态
●SCP应用是否启动,如果启动是处于DSTAT1还是DSTAT2
当INFORMIX数据库出现异常时,必须先顺序关闭备机的cluster、spy.sh、INFORMIX、SCP。
这样当关闭主机的SCP应用时异常后,就不会反复切换,数据库DR也不会反复切换。
2.3.5检查INFORMIX日志
查看online.log日志文件,初步定位informix异常的原因,例如是否断言错误。
3常见INFORMIX问题
3.1数据库的oninit进程CPU占用率过高
3.1.1现象
●topas或top命令显示,oninit进程的CPU占用率过高
●电话接续率降低
3.1.2紧急处理方法
收集信息后查找出现问题的SQL语句。
可能的原因有两个:
1.SQL语句没有用到索引,存在性能问题
2.索引损坏
3.1.3处理步骤
1.通过onstat–gses命令,看是否存在外部应用操作数据库。
如果存在,则用onstat–gsql语句查看外部应用的SQL语句,分析SQL语句是否存在性能问题。
2.如果是业务SQL语句导致,用下列SQL语句查找seqscans次数很多的数据表,此表可能存在性能问题。
用onstat-gsql查找对此表进行访问的SQL语句。
dbaccesssysmaster<
selectdbsname,tabname,(isreads+pagreads)diskreads,bufreads,seqscans
fromsysptprof
where(isreads+pagreads)>5000
orderbydiskreadsdesc;
selectdbsname,tabname,(iswrites+pagwrites)diskwrites,bufwrites
fromsysptprof
where(iswrites+pagwrites)>5000
orderbydiskwritesdesc;
!
3.2主备机的数据库都处于On-Line(Prim)状态
3.2.1现象
●主机的INFORMIX都处于On-Line(Prim)状态
●备机的INFORMIX都处于On-Line(Prim)状态
●业务中断
3.2.2紧急处理方法
收集信息后重启主备机INFORMIX。
如果HDR不能够自动建立,则不要启动备机。
3.2.3处理步骤
1.首先检查网络是否存在问题。
如果不存在网络问题,则要定位出出现问题之前哪个数据库处于主用状态,哪个数据库处于备用状态。
2.关闭数据库处于备用状态的机器的cluster、spy.sh、SCP、INFORMIX。
3.关闭数据库处于主用状态的机器的cluster、spy.sh、SCP、INFORMIX。
4.启动主机的INFORMIX、SCP、cluster.
5.启动备机的INFORMIX、SCP、cluster.
3.3备机数据库处于Fast-Recovery状态
3.3.1现象
●备用数据库处于Fast-Recovery状态,长时间不能切换到Read-Only(Sec)状态。
●主用数据库正常,处于On-Line(Prim)状态
●业务正常
3.3.2紧急处理方法
收集信息后关闭备用数据库后重启备用数据库
3.3.3处理步骤
1.检查主用数据库库是否存在dr_prsend线索。
%onstat-gath|grepdr
如果存在,重启备用数据库可以解决问题。
2.检查主备用数据库的dr关系是否存在
%onstat-gdri
InformixDynamicServerVersion7.31.UC5--FastRecovery(Sec)--Up00:
10:
28--25110
4Kbytes
DataReplication:
TypeStatePairedserverLastDRCKPT(id/pg)
secondaryoffscp_online2_net4121/20622
DRINTERVAL1
DRTIMEOUT60
DRAUTO2
DRLOSTFOUND/opt/informix/etc/dr.lostfound
State为off这说明DR关系已经断开;为on说明DR关系还存在,重启备用数据库可以解决
3.检查主备机的当前逻辑日志是否一致。
如果主机的uniqid小于备机的uniqid,则需重做DR。
%onstat-l
InformixDynamicServerVersion7.31.UD6W5--On-Line--Up1days23:
25:
07--667776Kbytes
PhysicalLogging
Bufferbufusedbufsizenumpagesnumwritspages/io
P-201660415.00
phybeginphysizephyposphyused%used
300035250001152600.00
LogicalLogging
Bufferbufusedbufsizenumrecsnumpagesnumwritsrecs/pagespages/io
L-3016189807932060091296292.115.9
SubsystemnumrecsLogSpaceused
OLDRSAM18980793835609200
addressnumberflagsuniqidbeginsizeused%used
30ffef041U-B----51236f1d2500025000100.00
30ffef202U---C-L5222abcd250002459298.37
30ffef3c3U-B----43230d752500025000100.00
30ffef584U-B----442000352500025000100.00
30ffef745U-B----452061dd2500025000100.00
30ffef906U-B----4620c3852500025000100.00
30ffefac7U-B----4721252d2500025000100.00
30ffefc88U-B----482186d52500025000100.00
30ffefe49U-B----4921e87d2500025000100.00
30fff00010U-B----50224a252500025000100.00
4.检查备机是否在读写磁盘。
%onstat-Dr2
InformixDynamicServerVersion7.31.UD6W5--On-Line--Up1days23:
15:
54--667776Kbytes
Dbspaces
addressnumberflagsfchunknchunksflagsownername
600561501111Ninformixrootdbs
60056bd02121Ninformixlogdbs
60056c903131Ninformixphydbs
60056d504200141NTinformixtempdbs
60056e105152Ninformixworkdbs
5active,2047maximum
Chunks
addresschk/dbsoffsetpageRdpageWrpathname
60056210111023436/dev/rrootdbslv
600566d02210643206009/dev/rlogdbslv
600567d03310764/dev/rphydbslv
600568d0441033143317/dev/rtempdbslv
600569d055103477845998185/dev/rworkdbslv1
60056ad0651020/dev/rworkdbslv2
6active,2047maximum
如果pageRd和pageWr列会变化,说明正在恢复,需要等待。
如果pageRd和pageWr列在10秒钟内不会变化,说明DR关系已破坏,需重做DR。
3.4数据库启动失败
3.4.1现象
数据库没法启动
3.4.2紧急处理办法
检查配置
检查是否存在oninit进程或INFORMIX的共享内存
检查chunck是否处于DOWN状态
3.4.3处理步骤
1.在online.log日志中检查不能启动的原因;
2.检查数据库对应的设备是否存在,设备的属主和组是否为informix,权限是否为660;
3.检查是否配置了异步IO,尤其是IBM机器;
4.检查onconfig对应的配置参数是否正确。
尤其同设备相关的参数。
5.检查INFORMIXSERVER环境变量、onconfig的DBSERVERNAME参数、sqlhosts配置、/etc/hosts配置、/etc/services配置是否一致。
6.用ipcs命令查看IPC设施情况,如果存在INFORMIX的共享内存,又是启动一个实例,则用ipcrm–m
7.用ps–ef|grepinformix查看informix进程情况.
3.5数据库吊死
3.5.1现象
●数据库状态正常
●业务中断或接续率降低
3.5.2紧急处理方法
重启SCP应用或数据库
3.5.3处理步骤
1.用dbaccess命令测试是否能正常查到业务数据
2.用onstat–p查看数据库状态
3.用onmode–l;onmode–c测试是否能正常做checkpoint操作。
如果上述操作不能正常完成,则需重启数据库。
如果上述操作能正常完成,则需重启SCP应用。
4INFORMIX典型案例集
参考资料清单Listofreference:
请罗列本文档所参考的有关参考文献和相关文档,格式如下:
作者+书名(或杂志、文献、文档)+出版社(或期号、卷号、公司文档编号)+出版日期+起止页码
例如:
[1]D.B.Leeson,“ASimpleModelofFeedbackOscillatorNoiseSpectrum,”Proc.IEEE,pp329-330,February1966(英文文章格式)
[2]D.Wolaver,Phase-LockedLoopCircuitDesign,PrenticeHall,NewJersey,1991(英文书籍格式)
[3]王阳元,奚雪梅等,“薄膜SOI/CMOSSPICE电路模拟”,电子学报,vol.22,No.5,1994(中文文章格式)
[4]郑筠,《MOS存储系统及技术》,科学出版社,1990(中文书籍格式)
[5]XXX,SDXXX用户手册V1.1,基础部文档室,2001/4/26