DMHS-V自动转报系统数据库常见故障处理探讨

(整期优先)网络出版时间:2023-08-24
/ 2

DMHS-V自动转报系统数据库常见故障处理探讨

赵杰

(民航呼伦贝尔空管站,呼伦贝尔  021008)

要:DMHS-V自动转报系统中使用MYSQL数据库用来存储报文、业务软件告警信息、操作日志和前台用户名密码等,数据库故障将导致系统前台终端无法登录,技术人员无法进行告警查看和处置。文章通过对转报前台终端无法登陆、数据库表数据库表中字段超长告警、数据库内存占用率超限告警的原因分析和处理,积累转报数据库维护的经验,提高空管设备保障能力。

关键词:自动转报系统  数据库  告警   故障处理

0引言

DMHS-V自动转报系统使用Linux 操作系统,MySQL 数据库,采用B/S架构。DMHS-V自动转报系统mysql数据库包含系统自带的information_schema、mysql、performance_ascema、sys库和业务库ngzb,information_schema库提供数据库的元数据,比如数据库名、表名、索引等,保存着关于所有数据库的信息。mysql库是mysql核心数据库,该库下的表主要存储数据库用户、权限设置等mysql自身需要使用的信息。performancce_schema库用于收集数据库服务器性能数据。sys库所有数据来自performancce_schema。用于快速了解数据库运行情况。业务库ngzb主要包含动态表和配置表。动态表包括入报表IN_TELE、出报表OUT_TELE、流程表WORK_FLOW、错报表WRONG_TELE,这四张表主要用来存储报文。配置表包含信道表CHANNEL_INFO、队列表QUEUE_INFO、路由表ROUTE_INFO、雪球多队列BALL_MULT_QUEUE、用户表USER_T、角色表ROLE_T、系统参数表SYS_PAR、流量告警表FLOW_ALARM、告警信息表ALARM_REC等,配置表主要用来存储通过前台配置及业务告警的信息。

1前台终端无法登陆

DMHS-V自动转报系统前台超级用户默认为ADMIN,ADMIN用户为系统提供的管理员用户,拥有较高权限,该用户不能删除和修改。值班员根据业务需要创建web用户,web用户可进行收发报等报务处理[1]。使用本人的web用户登录系统,进行转报相关操作。如果超级用户无法登录,将无法创建用户,需要登录到mysql数据库中修改ADMIN用户密码。

1.mysql数据库密码修改

mysql数据库需要密码登录,忘记密码时可通过修改配置文件的方式登录数据库修改密码。关闭mysql服务,修改mysql数据库的配置文件my.cnf,一般在/etc目录下,运行命令vi /etc/my.cnf编辑文件,在文件中加上skip-grant-tables并保存,重启数据库service mysqld start,运行命令mysql -u root,登陆数据库修改密码。运行语句:use mysql;继续运行语句:update mysql.user set authentication_string= password (‘root_password') where user=‘root';修改数据库密码为root_password。

1.前台ADMIN用户登录密码修改

前台超级用户默认为ADMIN,其他所有用户均有超级用户登录后进行创建,在转报业务库ngzb中,USER_T为用户表,SPASSWORD为加密的32位密码。通过SELECT SUER_T,SPASSWORD,SDESC FROM USER_T语句查看数据库用户名和密码,如图1所示。

图1 系统包含的数据库

当前台超级用户名或密码丢失后,我们将无法新建新的用户,无法登录前台进行业务信息查看。因此需要登陆到数据库中将ADMIN用户的密码进行修改,如ROOTROOT。使用update USER_T set SPASSWORD='ROOTROOT' where SUSER_NAME=ADMIN语句将ADMIN用户密码设置为ROOTROOT,这样在前台就可以使用用户名ADMIN,密码ROOTROOT进行登陆,并创建WEB用户进行业务配置和查看。

2数据库表中字段超长告警

某日,自动转报系统产生exec insert alarm_rec,DB错误(1406),data too long for column SALARM_MSG at row 1的告警信息。其中alarm_rec为转报数据库业务库ngzb中的告警信息表,SALARM_MSG字段为告警信息

使用数据库语句desc ALARM_REC查看数据类型,从alarm_rec表中可以看到SALARM_MSG字段是vabinary类型,长度为128。

VARBINARY类似于VARCHAR,不同的是VARBINARY包含二进制字符串。VARBINARY类型的长度是可变的,指定好长度之后,其长度可以在0到最大指之间。如指定列数据类型为VARBINARY(128),如果插入的值的长度只有20,则实际存储空间为20加1,即实际占用的空间为字符串的实际长度加1。

本告警信息中实际数据长度大于vabinary(128)的允许长度,自然会报出data too long for column SALARM_MSG at row 1的告警信息,因此需要对alarm_rec表中的SALARM_MSG字段长度进行调整。通过在mysql数据库中执行alter table ALARM_REC modify column SALARM_MSG varbinary(512)语句。将SALARM_MSG字段长度调整为512。后期系统未产生此类告警。

3数据库内存占用率超限告警

当对转报系统进行多频次长时间报文查询后,前台综合监视界面服务器产生黄色告警,系统产生内存超过设置门限告警,查看告警会发现系统内存占用率已超过系统监视配置中内存设置门限,且后续不会减小,仅重启服务器后内存占用率才会变小。由此看出对mysql数据库进行大量数据访问后,系统内存占用率在一定范围内会持续升高,

转报系统使用的mysql数据库采用Innodb 引擎,innodb_buffer_pool_size缓存池,是 Innodb 引擎最重要的缓存区域,是通过内存来弥补物理数据文件的重要手段,在数据库 MySQL 上会采用实例规格配置的50%作为该部分大小。其中主要包含数据页、索引页、undo 页、insert buffer、自适应哈希索引、锁信息以及数据字典等信息。在进行 SQL 读和写的操作时,首先并不是对物理数据文件操作,而是先对 buffer_pool 进行操作,再通过 checkpoint 等机制写回数据文件。该空间的优点是可以提升数据库的性能、加快 SQL 运行速度,当内存占用率门限设置较小时,由于报文查询等操作,导致数据库缓存占满,内存使用率会持续升高,因此需要查看数据库缓存池设置大小,当缓存池设置为内存50%时为合适大小,持续关注内存升高情况,若升至一定程度后(如80%以下)将不再上升,因此需要调整内存占用率门限为80%。

在系统配置监视配置中,分别对主机1和2的采集项内存进行配置,设置为80%,查看综合监视界面设备状态为绿色,点击主机状态详情内存也显示绿色,则告警消失。

4结束语

MYSQL数据库为成熟的数据库,相关案例较多,结合DMHS-V自动转报系统运行特点,积累DMHS-V自动转报系统MYSQL数据库常见故障的维护经验,对提升通导机务员自动转报系统的维护水平具有重要意义。

参考文献:

[1]航管科技.DMHS-V航空电报和信息交换系统应用软件WEB终端使用手册 [Z].北京:航管科技,2016.