文章目录
- 文档用途
- 详细信息
- [grep -in + 关键字 + 文件名称 定位哪些文件哪一行包含关键字信息;](#grep -in + 关键字 + 文件名称 定位哪些文件哪一行包含关键字信息;)
- [-in参数说明:-i 忽略大小写。-n 输出文件匹配行的行号](#-in参数说明:-i 忽略大小写。-n 输出文件匹配行的行号)
- 例如查找1到9号,包含error关键字的文件及对应行数
- 相关文档
文档用途
本文档讲解瀚高数据库运行日志配置、csv 日志字段解读、日志过滤实操以及典型故障日志案例,用于指导运维人员通过数据库日志完成故障定位、问题排查,支撑数据库日常运维与故障处置工作。
详细信息
1、数据库常见日志配置信息
说明:logging_collector=on才会输出磁盘 csv/log 日志,该参数修改需要重启数据库;
表格
| 参数 | 说明 |
|---|---|
| log_directory | 日志目录;以/开头为绝对路径;相对路径则拼接data_directory得到完整路径 |
| log_destination | 日志输出目标,常用csvlog,结构化日志便于检索分析 |
| log_filename | 日志文件名模板,%d 代表月份中的日期(几号),示例:highgodb-%d.log |
| log_rotation_age | 按时间轮转,1d代表每日切割生成新日志文件 |
| log_rotation_size | 按文件大小轮转,单位 KB;0代表关闭按大小切割,仅依靠时间轮转 |
| log_statement | 有效的值包括 none (关闭)、 ddl 、 mod 和 all (记录所有语句)。 ddl 会记录所有数据定义语句,例如 CREATE 、 ALTER 和 DROP 语句。mod 会记录所有 ddl 语句,以及像 INSERT 、 UPDATE 、 DELETE 、 TRUNCATE 和 COPY FROM 这样的数据修改语句。 |
log_min_duration_statement 慢 SQL 阈值,单位 ms;执行耗时大于等于该值则记录 SQL,用于定位慢查询
sql
--查看配置示例
highgo=# show logging_collector;
highgo=# show log_statement;
highgo=# show log_min_duration_statement;
2 、日志文件解读
例如:分析如下错误片段
2026-09-03 00:00:01.571 CST,"u_itopo","ncc",3056293,"10.1.1.1:54002",6a984801.2ea2a5,1,"authentication",2026-09-03 00:00:01 CST,878/7068193,0,FATAL,28P01,"password authentication failed for user ""u_itopo""","Connection matched pg_hba.conf line 92: ""host all all 0.0.0.0/0 md5""",,,,,,,,""
| 字段 | 提取内容 | 解读说明 |
|---|---|---|
| log_time | 2026-09-03 00:00:01.571 CST | 日志发生时间,精确到毫秒,时区 CST 东八区 |
| user_name | u_itopo | 尝试登录的数据库用户名 |
| database_name | ncc | 目标要连接的数据库名 |
| process_id | 3056293 | 本次连接的后端进程 PID,可配合操作系统 ps 命令核查进程 |
| connection_from | 10.1.1.1:54002 | 客户端来源 IP + 客户端随机端口,定位业务主机 |
| session_id | 6a984801.2ea2a5 | 会话全局唯一 ID,整条连接生命周期所有日志共用该 session_id,可以筛选该会话全部日志 |
| 1 | 会话行号:该会话内第几条日志记录 | |
| authentication | 日志上下文标签,代表当前处于身份认证阶段 | |
| 2026-09-03 00:00:01 CST | 会话建立时间戳 | |
| 878/7068193 | 事务 ID / 虚拟事务信息,此处登录失败尚未开启事务 | |
| 0 | 子进程内部计数 | |
| error_severity | FATAL | 日志严重级别:FATAL,会话直接断开,连接失败;不会继续执行任何 SQL |
| 28P01 | SQLSTATE 标准错误码,28P01= 密码认证失败 | |
| message | password authentication failed for user "u_itopo" | 日志主体:用户密码校验失败 |
| 附加消息 | Connection matched pg_hba.conf line 92: "host all all 0.0.0.0/0 md5" | 关键排错信息:客户端匹配上 pg_hba.conf 第 92 行规则,访问策略是md5密码认证;不是 IP 拒绝,是密码不对 |
| 故障结论 |
1、客户端10.1.1.1使用账号u_itopo尝试连接数据库ncc;
2、IP 地址放行(pg_hba 允许访问),但是输入的数据库密码错误,连接直接被拒绝;
3、级别 FATAL:会话直接终止,不会产生后续 SQL 执行;
4、错误码:28P01,标准账号密码认证失败。
3 、过滤错误日志信息
grep -in + 关键字 + 文件名称 定位哪些文件哪一行包含关键字信息;
-in参数说明:-i 忽略大小写。-n 输出文件匹配行的行号
例如查找1到9号,包含error关键字的文件及对应行数
[highgo@localhost hgdb_log]$ grep -in error highgodb-0*
highgodb-06.csv:40:2026-09-06 21:45:29.905 EDT,,,60104,,6a9e16e8.eac8,14,,2026-09-06 21:44:08 EDT,,0,LOG,F0000,"configuration file ""/data/highgo/HighGo/v9/data/postgresql.auto.conf"" contains errors; unaffected changes were applied",,,,,,,,,"","postmaster",,0
highgodb-06.csv:81:2026-09-06 21:51:44.193 EDT,,,60394,,6a9e183e.ebea,13,,2026-09-06 21:49:50 EDT,,0,LOG,F0000,"configuration file ""/data/highgo/HighGo/v9/data/postgresql.auto.conf"" contains errors; unaffected changes were applied",,,,,,,,,"","postmaster",,0
4、找到问题源头才是定位问题的关键
例如:下文日志输出了大量的terminating和recovery报错,还有干扰信息password authentication failed,实际导致数据库异常是signal 11后边对应的sql语句
2026-09-03 22:18:05.256 CST,"u_itopo","ncc",4077899,"10.1.1.1:27536",6a99819d.3e394b,1,"authentication",2026-09-03 22:18:05 CST,891/8872622,0,FATAL,28P01,"password authentication failed for user ""u_itopo""","Connection matched pg_hba.conf line 92: ""host all all 0.0.0.0/0 md5""",,,,,,,,""
2026-09-03 22:18:05.724 CST,,,3496822,,68fee0bb.355b76,86138,,2025-10-27 11:02:19 CST,,0,LOG,00000,"server process (PID 3929424) was terminated by signal 11","Failed process was running: select to_number(a.int_id),a.zh_label,'SYSTEM',sysdate,sysdate,0,20,^M
to_number(260903130060003614),9505,to_number(a.int_id),a.city_id,a.county_id,'SYSTEM-YDM'^M
^M
from gisss_wsdx.ALLAD_STRDFUCT_PDF a,^M
gisss_wsdx.ALL_BUSINDAFASDFESSAREA t2^M
where a.city_id=1791 and a.county_id=1823 and a.stateflag=0 AND a.TYPECODE =9505^M
and not exists (select 1 from RMS_TRANSO_NETGRIDRESOURCE b where a.typecode=b.resource_type^M
and b.resource_id=to_number(a.int_id) and b.stateflag=0)^M
AND t2.INT_ID =a.INT_ID AND t2.INT_ID ='260903130060003614'^M
AND public.st_intersects(a.shape,t2.shape)^M
AND public.st_contains(a.shape,t2.shape)",,,,,,,,""
2026-09-03 22:18:05.724 CST,,,3496822,,68fee0bb.355b76,86139,,2025-10-27 11:02:19 CST,,0,LOG,00000,"terminating any other active server processes",,,,,,,,,""
2026-09-03 22:18:05.724 CST,"vc_gs","ncc",4077854,"10.1.1.1:34358",6a998198.3e391e,1,"idle",2026-09-03 22:18:00 CST,570/0,0,WARNING,57P02,"terminating connection because of crash of another server process","The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.","In a moment you should be able to reconnect to the database and repeat your command.",,,,,,,"PostgreSQL JDBC Driver"
2026-09-03 22:18:08.528 CST,"vc_gs","ncc",4077993,"10.1.1.1:30392",6a9981a0.3e39a9,1,"",2026-09-03 22:18:08 CST,,0,FATAL,57P03,"the database system is in recovery mode",,,,,,,,,""
2026-09-03 22:18:05.821 CST,"vc_gs","ncc",4055465,"10.1.1.1:44212",6a997838.3de1a9,1,"idle",2026-09-03 21:38:00 CST,1114/0,0,WARNING,57P02,"terminating connection because of crash of another server process","The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.","In a moment you should be able to reconnect to the database and repeat your command.",,,,,,,"PostgreSQL JDBC Driver"
2026-09-03 22:18:08.544 CST,"vc_gs","ncc",4077995,"10.1.1.1:46302",6a9981a0.3e39ab,1,"",2026-09-03 22:18:08 CST,,0,FATAL,57P03,"the database system is in recovery mode",,,,,,,,,""
2026-09-03 22:18:08.556 CST,"vc_gs","ncc",4077996,"10.1.1.1:46304",6a9981a0.3e39ac,1,"",2026-09-03 22:18:08 CST,,0,FATAL,57P03,"the database system is in recovery mode",,,,,,,,,""
5、日志严重级别标识
| 日志级别 | 含义 |
|---|---|
| DEBUG | 调试信息,默认一般不开启 |
| LOG | 普通运行日志,数据库常规事件记录 |
| NOTICE | 提示信息 |
| WARNING | 警告信息,非阻断类异常提示 |
| ERROR | SQL执行层面错误,单条SQL失败,数据库服务正常运行 |
| FATAL | 会话级致命错误,单个会话断开,不影响整体实例 |
| PANIC | 实例级严重故障,会导致数据库实例整体关闭、崩溃 |
日常排查重点关注:ERROR、FATAL、PANIC级别日志。
6 、日志查看注意事项
不要直接rm删除正在写入的日志文件:如果需要清理正在写入的日志,不能直接rm删除文件,删除后数据库进程仍然持有旧文件句柄,磁盘空间不会释放,新日志也不会写入新文件;
日志文件权限归属:若日志文件属主为操作系统highgo用户,不要随意修改日志文件属主与权限,避免数据库无法写入日志;
收集问题日志:携带报错前后上下文日志,不要只截取单条报错行,上下文信息有助于完整分析事件链路。