
服务端跑在 iVMS-6000C-H08 上故障现像是前台无法登陆进运行管理中心-状态监控-服务启停显示有几个服务启动不了。运行管理中心-系统维护-备份还原-数据还原 下有备份失败。当时没想到问题复杂没做截图。状态监控 下 CPU、内存、硬盘基本占满。重启服务器无效。也没多想直接在web端还原最近的快照重启后一切正常了。几周后同样的问题又出现。以下是排查可角决过程。ssh 登陆df -h 发现 OPT分区满了。联想到web后台日志文件有2000多条想着删除一些在web端楞是没找着删除。打海康400求援得到两个信息 1、Web端确实没有删除功能。2、设备过保远程技术支持删除要收费。于是打算自己先试试先找下这日志文件都在哪。先删点试试删完再看好么就这么点。仔细一算3M一个包2000个全删了也就几个G。df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos_hikvisionos-root 30G 4.9G 26G 17% / devtmpfs 20G 0 20G 0% /dev tmpfs 20G 776K 20G 1% /dev/shm tmpfs 20G 2.1G 18G 11% /run tmpfs 20G 0 20G 0% /sys/fs/cgroup /dev/vdc 4.8G 4.5G 65M 99% /hvfs/data/backupdata /dev/vda2 1014M 148M 867M 15% /boot /dev/mapper/centos_hikvisionos-opt 922G 911G 12G 99% /opt tmpfs 4.0G 0 4.0G 0% /run/user/0继续找pgsql_tmp postgras的数据库存文件。这可不兴删呀。先想办法连进去看看吧。好消息翻到了海康预留数据库工具。坏消息没有密码。[rootHikvisionOS web]# /opt/hikvision/web/components/logservice.1/bin/logdb/bin/psql -p 7006 -U postgres Password for user postgres: psql (11.4) Type help for help.在网上翻到了这已上传连进数据库存看看。我只看看保证不乱来}先看看表。interface_count表占了700多G。也不知道存的是什么索引有400G。log_db# SELECT log_db-# indexrelname AS index_name, log_db-# pg_size_pretty(pg_relation_size(indexrelid)) AS idx_size log_db-# FROM pg_stat_user_indexes log_db-# WHERE relname interface_count; index_name | idx_size ---------------------------------------- idx_interface_count_traceid | 61 GB idx_interface_count_spanname | 95 GB idx_interface_count_server | 139 GB idx_interface_count_client | 71 GB idx_interface_count_btr | 43 GB (5 rows)一开始打算把interface_count 里的数据删掉些再做空间回收循环分批删除180天前数据每次50万条 DELETE FROM interface_count WHERE ctid IN ( SELECT ctid FROM interface_count WHERE d_timestamp NOW() - INTERVAL 180 days LIMIT 500000 ); VACUUM interface_count;结果50万条删了4小时。不知道什么原因这么慢。果断放弃。建一个新的表替换它不出问题再把老表给干了log应该没啥用。--创建同结构新表包含索引、约束 CREATE TABLE interface_count_new (LIKE interface_count INCLUDING ALL); -- 原表改名备份 ALTER TABLE interface_count RENAME TO interface_count_back; -- 新表替换为业务表名 ALTER TABLE interface_count_new RENAME TO interface_count;重启服务CPU、内存、硬盘 都正常了。web登陆比崩馈之前正常时都快了很多。老表先不删先观查几周。