Opengauss日志参考

1各类型日志说明

类型

说明

系统日志

数据库系统进程运行时产生的日志,记录系统进程的异常信息。

操作日志

通过客户端工具(例如gs_guc)操作数据库时产生的日志。

黑匣子日志

数据库系统崩溃的时候,通过故障现场堆、栈信息可以分析出故障发生时的进程上下文,方便故障定位。黑匣子具有在系统崩溃时,dump出进程和线程的堆、栈、寄存器信息的功能。

审计日志

开启数据库审计功能后,将数据库用户的某些操作记录在日志中,这些日志称为审计日志。

WAL日志

又称为REDO日志,在数据库异常损坏时,可以利用WAL日志进行恢复。由于WAL日志的重要性,所以需要经常备份这些日志。

性能日志

数据库系统在运行时检测物理资源的运行状态的日志,在对外部资源进行访问时的性能日志,例如:磁盘、OBS等。

本篇不涉及审计日志的内容

2系统日志

openGauss运行时数据库节点以及openGauss安装部署时产生的日志统称为系统日志。如果openGauss在运行时发生故障,可以通过这些系统日志及时定位故障发生的原因,根据日志内容制定恢复openGauss的方法。

2.1日志存储路径

  1. 路径

数据库节点的运行日志放在“$GAUSSLOG/pg_log”中各自对应的目录下。

  1. 查看配置文件安装目录

[root@node103 omm]# vim /opt/software/openGauss/cluster_config.xml

2.2日志命名样式

  1. 数据库节点运行日志命名规则

postgresql-创建时间.log

默认情况下,每日0点或者日志文件大于16MB或者数据库实例(数据库节点)重新启动后,会生成新的日志文件。

2.3日志内容说明

  1. 日志内容默认格式

日期+时间+时区+用户名称+数据库名称+会话ID+日志级别+日志内容

3操作日志

操作日志是指数据库管理员使用工具操作数据库时以及工具被openGauss调用时产生的日志。如果openGauss发生故障,可以通过这些日志信息跟踪用户对数据库进行了哪些操作,重现故障场景。

3.1日志存储路径

  1. 路径

默认在“$GAUSSLOG/bin”目录下

  1. 查看配置文件安装目录

[root@node103 omm]# vim /opt/software/openGauss/cluster_config.xml

3.2日志命名格式

  1. 数据库节点运行日志命名规则

工具名-日志创建时间.log

工具名-日志创建时间-current.log

其中,“工具名-日志创建时间.log”是历史日志文件,“工具名-日志创建时间-current.log”是当前日志文件。

3.3日志内容说明

  1. 日志内容

expected instance path:更改的配置文件路径

gs_guc reload:修改的参数以及参数值

例:执行调整参数password_effect_time = 0

gs_guc reload -D /data/openGauss/install/data/dn01 -c "password_effect_time=0"

4黑匣子日志

 (内核开发人员需要,运维人员基本不用)

4.1开启黑匣子日志参数

  1. enable_bbox_dump:
        1. 参数说明:

是否开启黑匣子功能,在系统不配置core机制的时候仍可产生core文件。

        1. 取值范围:

on表示打开黑匣子功能,off表示关闭黑匣子功能。

        1. 查看参数:

gs_guc check -Z datanode -N all -I all -c "enable_bbox_dump"

        1. 设置参数:

gs_guc reload -D /data/openGauss/install/data/dn01 -c "enable_bbox_dump=on"

  1. bbox_dump_count:
        1. 参数说明:

在bbox_dump_path定义的路径下,允许存储的openGauss所产生core文件最大数。超过此数量,旧的core文件会被删除。此参数只有当enable_bbox_dump为on时才生效。

        1. 取值范围:整型,1~20。
        2. 查看参数:

gs_guc check -Z datanode -N all -I all -c "bbox_dump_count"

        1. 设置参数:

gs_guc reload -D /data/openGauss/install/data/dn01 -c "bbox_dump_count=8"

  1. bbox_dump_path
        1. 参数说明:

黑匣子core文件的生成路径。此参数只有当enable_bbox_dump为on时才生效。

        1. 默认值:空。

默认生成黑匣子core文件的路径为读取/proc/sys/kernel/core_pattern下的路径,

如果这个路径不是一个目录,或者用户对此目录没有写权限,黑匣子core文件将成在数据库的data目录下。或者以安装时指定的目录为准。

        1. 查看参数:

gs_guc check -Z datanode -N all -I all -c "bbox_dump_path"

        1. 设置参数:

gs_guc reload -D /data/openGauss/install/data/dn01 -c "bbox_dump_path=/data/../"

5 wal日志

预写式日志WAL(Write Ahead Log,也称为Xlog)是实现事务日志的标准方法,对数据文件(表和索引的载体)持久化修改之前必须先持久化相应的日志。如果要修改数据文件,必须是在这些修改操作已经记录到日志文件之后才能进行修改,即在描述这些变化的日志记录刷新到永久存储器之后。在系统崩溃时,可以使用WAL日志对openGauss进行恢复操作。

5.1日志存储路径

  1. 路径

以一个数据库节点为例,默认在“/gaussdb/data/data_dn/pg_xlog”目录下。其中“/gaussdb/data/data_dn”代表openGauss节点的数据目录。

  1. 查看配置文件安装目录

[root@node103 omm]# vim /opt/software/openGauss/cluster_config.xml

5.2日志命名格式

日志文件以段文件的形式存储的,每个段为16MB,并分割成若干页,每页8KB。对WAL日志的命名说明如下:一个段文件的名称由24个十六进制组成,分为三个部分,每个部分由8个十六进制字符组成。第一部分表示时间线,第二部分表示日志文件标号,第三部分表示日志文件的段标号。时间线由1开始,日志文件标号和日志文件的段标号由0开始。

例如,系统中的第一个事务日志文件是000000010000000000000000。

5.3查看日志

  1. 安装pg_xlogdump工具

sudo yum install pg_xlogdump

  1. 使用pg_xlogdump工具翻译日志文件

pg_xlogdump -f <日志文件路径> -o <输出文件路径>

例如:

pg_xlogdump -f /var/lib/opengauss/data/pg_xlog/00000001000000000000D9D8 -o /tmp/translated.log

6性能日志

性能日志主要关注外部资源的访问性能问题。性能日志指的是数据库系统在运行时检测物理资源的运行状态的日志,在对外部资源进行访问时的性能检测,包括磁盘等外部资源的访问检测信息。在出现性能问题时,可以借助性能日志及时的定位问题发生的原因,能极大地提升问题解决效率。

6.1日志存储路径

  1. 路径

数据库节点的性能日志目录在“$GAUSSLOG/gs_profile”中各自对应的目录下。

  1. 查看配置文件安装目录

[root@node103 omm]# vim /opt/software/openGauss/cluster_config.xml

6.2日志命名格式

  1. 数据库节点的性能日志的命名规则:

postgresql-创建时间.prf

默认情况下,每日0点或者日志文件大于20MB或者数据库实例(数据库节点)重新启动后,会生成新的日志文件。

6.3日志内容说明

数据库节点每一行日志内容的默认格式:

主机名称+日期+时间+实例名称+线程号+日志内容。

6.4配置参数

  1. logging_collector:该参数控制是否开启日志收集功能。默认值为on,表示开启日志收集功能。

gs_guc reload -D /data/openGauss/install/data/dn01 -c'logging_collector = on'

  1. plog_merge_age:控制性能日志数据输出的周期,即多久进行一次性能日志汇聚,单位为毫秒。默认值为3s。当logging_collector参数为on,plog_merge_age大于0,且主机正常运行时,恢复过程不进行性能收集。

gs_guc reload -D /data/openGauss/install/data/dn01 -c'plog_merge_age = 3s'

9慢查询

9.1慢查询视图(STATEMENT_HISTORY)

获得当前节点的执行语句的信息。查询视图必须具有sysadmin权限或者monitor admin权限。只可在系统库中查询到结果,用户库中无法查询。

对应系统表statement_history,主要目的是记录数据库运行中产生的sql与其运行信息,保证即便数据库重启,SQL信息也依然可以查询到。

9.2慢查询控制参数

        1. log_duration:是否记录慢查询。
        2. log_min_duration_statement:单位毫秒,标记SQL的慢查询时间,0记录所有SQL,-1则不记录任何信息。
        3. instr_unique_sql_count:允许记录在内存中的SQL总数量。避免出现“missing SQL statement, GUC instr_unique_sql_count is too small.”的提示应调大该参数

设置参数log_duration = on 开启记录、标记查询时间超过5秒的sql

gs_guc reload -D /data/openGauss/install/data/dn01 -c'log_duration = on'

 -c 'log_min_duration_statement = 5000' -c 'instr_unique_sql_count = 200000'

9.3查询慢sql

dbe_perf.statement_history视图中查看到结果

select pg_sleep(6); -- 构造的慢SQL

select * from dbe_perf.statement_history order by start_time desc;

9附录

9.1参考文档

https://docs.opengauss.org/zh/docs/5.0.0/docs/DatabaseOMGuide/%E6%97%A5%E5%BF%97%E5%8F%82%E8%80%83.html

Logo

鲲鹏展翅 立根铸魂 深耕行业数字化

更多推荐