第11章,PI 系统问题汇总以及解决办法系统问题汇总以及解决办法
(译者:温启良)
数据通过多个环节进入/流出Archive 文件,这个过程中可能会出现问题
11.1 11.1 问题核对列表问题核对列表问题核对列表
(1)找出哪个计算机出现问题,Client 机,Server 机,Interface 机?如果所有的机器都有问题,那可能是网络问题。如果所有的Client 机都有问题,那肯定是Server 机的问题。
(2)使用Telnet 查看网络是否正常。
(3)如果是Client 机问题,查看c:\pipc\dat 目录下tup.log、 pipc.log 文件的日志。
(4)如果是Server 机问题,确定是否所有的PI 进程都在运行(net start)
(5)查看PI 的所有进程是否与pinetmgr 正常通讯。
(6)用pidiag –e errno 查看错误号含义。
(7)注意:问题出现的时间,哪个subsystem 出现问题。通过pigetmsg 查看特定的日志。
(8) 如果是一个suysystem 崩溃,可能有一些额外的信息,通过 –i 安装Windows 的插件,然后通过 查看出现异常的进程。
(9)如果是pinetmgr 问题,首先使用:netstart –a 查看是否有别的进程使用5450端口。
(10)如果是archive 或archive 问题,使用piartool -as ,piartool -ss 查看数据流信息。
(11)使用piartool -aw 查看archive 文件是否出了问题。
(12)如果是UpdateManager 问题,使用pilistupd 去查看。
(13)确认问题是否发生在所有接口上的所有Point,还是部分接口上的部分Point。
(14)查看一下PI 自带的Point 和Interface 是否正常。
(15)查看是否是软件安装/升级问题,核对日志:PIPC\dat\SetupPIServer.log 和
PIPC\dat\PIServerMaster.log.
(16)登录PI 技术支持网站查询原因:http// ,
11.2 11.2 确认确认PI 进程进程
(1)PI 启动成功后,PI 所有进程应该是运行的,同理,PI 停止后,PI 所有进程也应该是停止的(除pishutev 外)。如果运行状态,请确认进程是否与pinetmgr 正常通讯。通过net start 查看PI 进程的运行状态。filling
(2)PInetmgr 是PI 所有的客户进程的“通讯路由器”,一旦 pinetmgr 出现问题,相当于PI 瘫痪。PI 的通讯端口为5450(在OpenVMS 系统中为545),如果为了解决端口冲突,需要改5450端口,请联系PI 技术支持,修改此端口后果影响很大。
(3)所有的PI 进程都会发送消息给PI Message Subsystem,经过它来写日志文件。测试pimsgss 是否运行,如下: D:\PI\adm>pigetmsg
Message ID [A], (0-n) (A)ll (T)ail (F)lush (Q)uit (?):
Message Source [*], (?):
Start time in PI format [*-15m], s(K)ip (?):
End time in PI format [*], s(K)ip (?):
Maximum count [], (0-n) (?):
Text mask [*], (?):
Display count [], (0-n) (?):
[-10733] PINET: RPC Resolver is Off-Line.
在PI 启动的时候,pimsgss 没有运行,这个时候,日志将会被写到windows 的消息日志中,当pimsgss 正常运行后,它会从windows 的消息日志取会消息日志,并把它写到.log 文件中。
(4)PI Update Manager 提供了事件更新服务,测试piupdmgr 是否运行,如下: C:\PI\adm>pilistupd
nothing on you歌词
pilistupd -h for help
[-10727] PINET: RPC is Non-Existent
Producer Consumer Qual. Flags Pending
--------- --------- ------ ------ --------
status: [-12150] not registered in updmgr
(5)PI Ba Subsystem 负责管理Point Databas、Ur Databas,负责所有权限工作。测试pibass 是否运行,通过pisnap 或piconfig,如下: $ piconfig
* (Ls - ) piconfig> @table pipoint
*PIConfig Err> Table initialization error (PIPOINT
*@table pipoint
*[-10733] PINET: RPC Resolver is Off-Line
(6)Snapshot Subsystem 负责管理Snapshot 和EventQueue,处理压缩和发送数据到archive。测试pisnapss 是否运行,可以通过pisnap 或 piartool –ss ,如下:
$ piartool -ss
Getsnaptablestatistics Failed: [-10733] PINET: RPC Resolver is Off-Line
(7)Archive Subsystem 负责管理archive,存储从Snapshot Subsystem 来的新事件,并响应外界对archive 的访问请求,处理archive shift。测试piarchss 是否运行,通过pisnap 或piartool –al 或piartool –as,如下: $ piartool -al
Getarchivefilelist Failed: [-10733] PINET: RPC Resolver is Off-Line
赵承熙
$ piartool -as
Getarcmemtablestatistics Failed: [-10733] PINET: RPC Resolver is Off-Line
该进程不运行时,EventQueueCount 将增加,可通过piartool -qs.查看。
(8)PIShutev,负责把shutdown 事件插入到PI Archive,该进程出现在PI 启动时,PI 运行一会后,该进程会自动消失。
(9)Random simulator 接口,为PI 默认的Point 产生模拟数据,PI 启动时,它会自动作为rvice 启动。
(10)RampSoak 接口,也是PI 自带的接口,产生批量数据,PI 启动时,它会自动作为rvice 启动。 正常情况下,启动PI 用pisrvstart 脚本,停止PI 用pisrvstop 脚本,所有的进程都依赖pinetmgr,此外,以下顺序也是必须的: • pinetmgr
• pimsgss
• piupdmgr
• pibass
经济学人音频• pisnapss
• piarchss
停止某个Subsystem,通常在“控制面版”-“服务”,当然也可以直接在命令行用“net stop 进程名 ”,如“net stop pimsgss”
11.3 11.3 PI PI 数据文件数据文件
PI 数据文件保存在PI\dat 目录下,通过“pidiag -fb c:\pi\dat\pidignam.dat”命令可以查看文件是否
正确,如果返回错误,可以通过“pidiag -fbf c:\pi\dat\pidignam.dat”去修复文件。(注意,这两个命令是在PI 停止运行的时候执行)
Pidiag –fbf 可能会报告如下错误,这是正常的。 Error reading input record # nn [-10466] No Record Available for Pasd recno
(1),piarcmem.dat,该二进制文件代表Snapshot Databa,被pisnapss进程使用。 (支持Pidiag –fb/-fbf)
(2),Piarstat.dat,该二进制文件用来跟踪注册的archive文件,被piarchss进程使用,如果archive 文件注册出现问题,不要删除这个文件,查看〈How to Repair the Archive Registry〉。
(3),Pidignam.dat,该二进制文件存储每个唯一的digital state名字。(支持Pidiag –fb/-fbf)
(4),Pidigst.dat,该二进制文件存储digital ts,它从pidignam.dat中引用名字。(支持Pidiag –fb/-fbf)
(5)Pimapevq.dat,PimaNNNN.dat,该二进制文件是EventQueue内存映射文件,正常情况下,只有
pimapevq.dat,有两个用途,其一,用来移动事件从Snapshot Subsystem到the Archive Subsystem,pisnapss 进程把事件送进这个Queue,piarchss取到这些数据写进archive磁盘文件。其二,当Archive Subsystem 不能处理事件时(archive shift或者archve subsystem shutdown时),用来存储数据。
zanox(6)Pilastsnap.dat,该二进制文件,存储最后完成Snapshot flush to Disk的时标,在PI系统启动时,这个时标作为shutdown事件的时标,正常shutdown,这个文件包含真正的shutdown time,如果是突然停电,snapshot可能比the Snapshot flush cycle time老,SnapFlushCycle参数,默认为15s。
小学英语学习培训班
(7)Pimsgtxt.dat,该二进制文件存储消息日志,给pigetmsg访问(支持Pidiag –fb/-fbf)
(8)Pipoints.dat,该二进制文件存储PointDataba。(支持Pidiag –fb/-fbf)
(9)Piptalia.dat,该二进制文件存储Alias信息。(支持Pidiag –fb/-fbf)
(10)Piptattr.dat,该二进制文件存储Point Attributes。(支持Pidiag –fb/-fbf)
(11)Piptclss.dat,该二进制文件存储PointClass。(支持Pidiag –fb/-fbf)
(12)Piptunit.dat,该二进制文件存储PointUnits。(支持Pidiag –fb/-fbf)
(13)Piusr.dat,该二进制文件存储Ur Databa。(支持Pidiag –fb/-fbf)
(14)Piusrctx.dat,该二进制文件存储Ur Context Databa。(支持Pidiag –fb/-fbf)
(15)Piusrgrp.dat,该二进制文件存储Group Databa。(支持Pidiag –fb/-fbf)
(16)Shutdown.dat,该二进制文件存储信息:告诉PI Shutdown Interface,哪些点应该收到shutdown 事件。
11.4 11.4 确认确认Update Manager 问题问题((pilistupd pilistupd))
Pilistupd显示UpdateManager维护的事件队列的大小。Pilistupd在PI\adm目录下,必须在PI运行时使用,运行后出现5列,具体如下:
Producer:生产者,也可以说是数据源。普遍情况下,有5个生产者,分别是:Snapshot events 的生产者为PI Snapshot Subsystem;Point Databa and Module Databa changes 的生产者为 PI Ba
Subsystem ;Archive changes的生产者为Archive Subsystem;Batch Databa Changes的生产者为Batch Subsystem;
Consumer::消费者,主要指应用程序。PI API应用程序的消费者名为登录名的前4个字母,这些名字不唯一,但是ID唯一。PI SDK应用程序的消费者名为应用程序的全名,也分配了ID。
Qual:限定词,它只针对生产者的,比如Snapshots update在Qual中存储被请求的PointID。
Flags: 只针对生产者的。
Pending:允许给消费者的事件数,当有事件进来时,上升;当消费者取走事件后,下降;该值不断上升,表明消费者没有正常运行或者失去连接。(注意:即使更多的事件在EventQueue,该值显示最大为4096。)
Pilistupd命令参数:
-v Show version
-h Help
-c consumer Select a specific consumer
-p producer Select producer
-m min Show only events with pending >= min
-t Show only the total number pending for this lection (specific cons./prod.)
-d piupdmgr dump to pi\adm\updmgr.dmp
-r C <S> Repeat C times every S c.
-g A list of registered producers/consumers
-sp Sort output by producers
例一:
e:\pi\adm>pilistupd -p ptupdates
Producer Consumer Qual. Flags Pending
ptupdates Pibatch|1 0 0 0
ptupdates Pitotal|2 0 0 0
ptupdates PipeE|14|3 0 0 0
ptupdates RandE|16|4 0 0 0
ptupdates RmpSE|17|5 0 0 0
从上面可以看出,第一行中,PI Batch Subsystem作为Point Databa changes的一个消费者(1,表示用PI Update Manager注册的第一个消费者),第二个注册的消费者是Totalizer Subsystem。第三行表示是基于PI API的应用程序,大概是Performance Equation Scheduler,基于PI API的应用程序名总是4个字符+“E”组成,后面的14是PI Network Manager分配的connection ID(用来跟踪客户端连接
问题),接着4是PI Update Manager分配的注册ID。同理,第四、五行也是基于PI API的应用程序,大概是Random、RampSoak 接口。
例二(打开ProcessBook):
e:\pi\adm>pilistupd
Producer Consumer Qual. Flags Pending
ptupdates Pibatch|1 0 0 0
ptupdates Pitotal|2 0 0 0
ptupdates PipeE|14|3 0 0 0
brisbane
ptupdates RandE|16|4 0 0 0
Ptupdates RmpSE|17|5 0 0 0
snapshots PiadE|33|9 1 0 1
snapshots PiadE|33|9 29761 0 2
snapshots PiadE|33|9 29763 0 0
snapshots PiadE|33|9 29764 0 0
snapshots PiadE|33|9 29766 0 0
从上面可以看出,后面5行都是一样“PiadE|33|9”,表明消费者是基于PI API的应用程序,并以piadmin 登录,PI Net Manager ID为33,PI Update Manager ID为9,1、29761等为PointID,有3个pending events,其中2个属于点29761,1个属于点1。
例三:
e:\pi\adm>pilistupd -p snapshots -m 1 -r 100
No Matching entries
No Matching entries
Producer Consumer Qual. Flags Pending
--------- --------- ------ ------ --------
snapshots piadE|15|5 4 0 1
saxton
snapshots piadE|15|5 12 0 1
snapshots piadE|15|5 18 0 1
snapshots piadE|15|5 19 0 1
snapshots piadE|15|5 20 0 1
No Matching entries好好学习天天向上英语怎么说
^C
从以上可以决定客户端更新是否发生故障,如果Pending number总是为0,说明数据源没有更新;如果Pending number不断增加,说明客户端可能没有收到更新。
11.5 11.5 故障修复故障修复故障修复
1,从损坏的Archive文件中恢复数据
Archive文件有Header和Record结构,数据存储在Record结构中,建立的index映射Record的快速数据访问。比如,当archive cache正在flushing过程中,突然停电,index record可能处在两边不协调的状态,这样Archive文件可能被损坏,而不可读。怎么样尽可能去修复损坏的Archive文件呢?通过Offline Archive Utility可以修复和重建the Archive header 、the record indexing and chaining information。
(1) 对于Non-primary archive文件
口语培训课程运行Offline Archive Utility工具,把损坏的文件作为input文件(必须先注销),不需要创建空的output 文件,这样会创建一个跟input文件一样时间段的Archive文件。不影响PI的正常运行,但是Offline Archive Utility工具修复的文件不会自动注册。完成后使用piartool –ar命令注册,如:
$ ../bin/piarchss -if /export/PI/dat/piarch.001 -of piarch1.fix -f 0
...
...Sorting
...
676 Loaded in 2( 1 + 1 ) Seconds 338 Event/Sec.
739 Archive Total conds - ratio: 369
(2) 对于Primary archive文件
对于Primary archive文件,恢复过程中,PI事件不能存档同时必须注销Primary archive文件,这样就要求停止Archive Subsystem,或者强行shift Primary Archive (使用piartool -fs命令,结果Primary Archive 不再是Primary Archive)。
步骤:停止PI Archive Subsystem>>运行Offline Archive Utility工具(指定参数 –f 0 –oet Primary)>>删除或重命名原来的Primary Archive>>重命名生成的Archive与原Primary Archive一样的名字>>重启PI Archive Subsystem。
如下: $ ../bin/piarchss -if /export/PI/dat/piarch.005 -of piarch.005.fix -f 0 -oet 0
...
...Sorting
Failed to unregister input archive: [-10733] PINET: RPC Resolver is Off-Line
Archive utility not running - or archive not registered
...
1084 Loaded in 2( 0 + 2 ) Seconds 542 Event/Sec.
1038 Archive Total conds - ratio: 519