不涉及
某局点反馈说后台进程imcperfdm进程启动失败,部署监控代理页面报错截图如下:
对于进程启动失败问题,由于部署监控代理中提示的信息有限,对于此类问题可以通过在后台手工启动某一进程查看错误回显以及收集相关进程日志来具体分析:
1、首先在部署监控代理中手动把该进程右键停止,然后在iMC安装目录iMC\server\bin目录下cmd命令行里先执行下start_env.bat,然后再执行下imcperfdm.exe进程;
注:
(1)执行start_env.bat的目的是设置环境变量;
(2)imcperfdm.exe为实际对应进程启动脚本;
2、从现场后台回显来看报错不是特别明显,故进一步收集imcperfdm的后台日志进一步分析:
2020-10-19 15:31:29.000 [ERROR (4)] [THREAD(13892)] [CPerfSummSet::iInitialize] Fail to call iUpdateTaskMaxInstID()
2020-10-19 15:32:34.519 [INFO (0)] [THREAD(12564)] [qvdm::QvGetLogFileSize] get file size from qvdm.conf: 50
2020-10-19 15:32:34.810 [INFO (0)] [THREAD(12564)] [CQvApplication::start] call globalInit().
2020-10-19 15:32:34.810 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] CImfAppMgr::instance() begin.
2020-10-19 15:32:34.811 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] initAppMgr begin.
2020-10-19 15:32:34.856 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] QvGetResPath begin.
2020-10-19 15:32:34.857 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] initResMgr begin.
2020-10-19 15:32:34.857 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] CQvSnmpEnv::poInstance.
2020-10-19 15:32:34.860 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] CSysGlobalVar::instance().
2020-10-19 15:32:34.869 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] CQvSysTaskMgr::addTaskMgr.
2020-10-19 15:32:34.870 [INFO (0)] [THREAD(12564)] [qvdm::setLogLevelFromDB]set log level to :2
2020-10-19 15:32:34.870 [INFO (0)] [THREAD(12564)] [qvdm::setLogLevelFromDB] success, ProcID is 4, log level is 2
2020-10-19 15:32:34.870 [INFO (0)] [THREAD(12564)] [CQvApplication::globalInit] finished.
2020-10-19 15:32:34.870 [INFO (0)] [THREAD(12564)] [CQvApplication::start] call init().
2020-10-19 15:32:36.287 [ERROR (0)] [THREAD(12564)] [CQvDBConnADP::executeSQL] Execute "update tbl_perf_task set max_instanceID = 276 where task_id = 17" failed, errorMsg:Could not run BEGIN TRANSACTION in database "perf_db" because the database is in bypass recovery mode.
2020-10-19 15:32:36.288 [ERROR (4)] [THREAD(12564)] [CSummDbIf::iUpdateTaskMaxInstID] Fail to update max instance ID. 2020-10-19 15:32:36.288 [ERROR (4)] [THREAD(12564)] [CPerfSummSet::iInitialize] Fail to call iUpdateTaskMaxInstID()
根据以上日志记录情况发现:perf_db数据库模式不对导致
进一步查看发现部署监控代理【运行环境】页签点“配置”perf_db库也无法连接
3、根据日志报错信息及数据库连接情况,进一步登录数据库查看perf_db库情况,发现现场环境中perf_db库处于“紧急模式”,截图见下:
4、处于紧急模式的数据库是无法被正常使用的插入、查询数据的,故进程启动异常亦和此有关,因此需要解决数据库紧急模式问题:
(1)使数据库变为单用户模式。
ALTER DATABASE perf_db SET SINGLE_USER;
注:如果发现一直处于查询状态,则是因为sql有连接,需要停止iMC然后再执行。
(2)DBCC CheckDB (perf_db, REPAIR_ALLOW_DATA_LOSS);
说明:此命令是修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。
注:当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
(3)使数据库变回为多用户模式
ALTER DATABASE unba_slave SET MULTI_USER;
(4)重启SQL进程,使用SQL Server Manager Studio登陆数据库查看对应的进程是否正常。
5、通过4中的修复后,数据库恢复正常,此时再重新启动iMC,发现imcperfdm进程可以正常启动。
详见分析过程。
对于iMC进程启动失败类问题处理:
1、查看部署监控代理报错截图;
2、在后台对应命令行中单独重启对应进程查看具体错误回显报错,用于问题分析提供思路;
3、收集启动失败过程中对应进程日志,根据日志报错具体问题具体分析。
说明:此案例并不局限于处理该一个问题,主要是为此类问题处理提供一个问题分析思路。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作