0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PostgreSQL PG14通过libpq改进logging

微云疏影 来源:yzsDBA 作者:yzsDBA 2023-01-24 15:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PostgreSQL 14通过libpq改进logging

PG14中增强了libpq功能,以跟踪应用程序的服务器/客户端通信的可用性。它添加了新的选项控制输出格式。

背景

libpq是客户端库之一,用户可以运行PQtrace函数记录客户端-服务端通信。这个通信是PG使用的一种协议信息,包括:消息类型的标识符,消息长度,交换信息的消息内容。

应用开发者可以使用这个日志判断通信是否按预期执行。使用下面的的语句作为一个例子:

CREATE TABLESPACE regress_tblspacewith

LOCATION '/home/postgres/src/test/regress/testtablespace'

WITH (random_page_cost = 3.0);

PG13中调用PQtrace的应用会输出下面类型的日志到指定文件中:

PG13中libpq产生的日志

需要注意,当前PG版本的PQtrace日志输出中不包含时间戳,因此不能作为参考分析慢查询。另外,因为消息标识符、server/client消息长度、输出内容分别单独一行,可靠性比较低,协议消息的分析比较困难。标记1的Z和C是协议消息的标识符。要了解每个标识符的含义,参考手册中Message Formats部分

功能改进概述

PG14中,改进了PQtrace函数,使得输出的日志更具可读性并且包含时间戳。添加了新的函数PQsetTraceFlags用以控制时间戳的输出。

改进日志输出

PG14中改进的trace函数产生了下面类似的输出:

PG 14中libpq产生的日志

1)包含了时间戳

2)消息方向的代码更加直观:F表示前端,B表示后端

3)输出正式的消息名称,而不是协议消息的标识符

4)有意义的协议消息以一行形式输出

日志检索方法

和以前一样,通过调用libpq的PQtrace函数开始记录日志。如果不需要输出时间戳,可以通过PQsetTraceFlags函数控制。

影响

PQtrace输出时间戳,可以帮助用户识别慢查询。如果应用程序突然变慢,可以通过查看日志中时间戳差异来确定server或者client耗费了更长时间。有意义的协议消息以一行形式输出,使得不熟悉lipq日志的人可以轻松了解server和client之间发送的通信。通过使用PQsetTraceFlags函数控制是否输出时间戳,可以使用此日志进行回归测试。通过不输出时间戳,可以使用预期测试运行的结果填充日志,并轻松第将其与测试运行中得到的日志进行比较。

未来

PG14的libpq日志将包含时间戳和更具可读性的文本。在后续版本中,我们会在下面几个方面进一步提升可用性:

1) 当前函数将日志写入指定给PQtrace函数的文件。某些情况下,会使日志文件膨胀非常大,从而影响文件操作。为解决这个问题,我们希望提供一个功能来指定文件的最大大小。

2) 希望添加环境变量和连接参数,以设置日志输出的目录位置,以及日志文件名来适应环境,无需修改应用程序。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    807

    浏览量

    46934
  • 应用程序
    +关注

    关注

    38

    文章

    3346

    浏览量

    60419
  • 日志
    +关注

    关注

    0

    文章

    149

    浏览量

    11097
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析 onsemi NXH25T120L2Q1PG 3 - 相 TNPC 模块

    深入解析 onsemi NXH25T120L2Q1PG 3 - 相 TNPC 模块 在电力电子设计领域,模块的性能和特性对于系统的整体表现至关重要。今天我们就来详细探讨一下 onsemi
    的头像 发表于 04-23 17:25 462次阅读

    EFM32PG1微控制器:低功耗高性能的理想之选

    EFM32PG1微控制器:低功耗高性能的理想之选 在当今的电子设备设计中,低功耗和高性能是两个至关重要的指标。Silicon Labs的EFM32 Pearl Gecko系列中的EFM32PG
    的头像 发表于 04-15 13:40 146次阅读

    EFM32PG1微控制器:低功耗高性能的理想之选

    EFM32PG1微控制器:低功耗高性能的理想之选 在当今电子设备追求低功耗、高性能的时代,微控制器的选择显得尤为关键。Silicon Labs的EFM32PG1微控制器系列凭借其卓越的低功耗特性
    的头像 发表于 04-15 13:40 157次阅读

    E1模拟器16针转换适配器QB - F14T16 - 01使用指南

    作用是将E1模拟器使用的14针接口转换为QB - MINI2和PG - FP5使用的16针接口。其系统构成如下: E1模拟器 :通过14针接口与适配器相连,
    的头像 发表于 04-14 11:15 183次阅读

    8N3PG10MBKI - 161:多功能LVPECL合成器的技术剖析

    10MBKI-161LF.pdf 一、概述 功能与特点 8N3PG10MBKI - 161可以实现OTN/SONET与以太网之间的速率转换,转换速率可通过引脚选择,一次支持四种速率中的一种。在默认配置
    的头像 发表于 04-13 18:25 1120次阅读

    20W PC 待机电源设计:TNY290PG 方案解析

    20W PC 待机电源设计:TNY290PG 方案解析 在电子设备的设计中,电源的性能直接影响着整个系统的稳定性和效率。今天我们就来深入探讨一款基于 TinySwitch - 4 系列
    的头像 发表于 04-11 16:20 447次阅读

    5W充电器设计全解析:基于LNK616PG的高效方案

    5W充电器设计全解析:基于LNK616PG的高效方案 在电子设备飞速发展的今天,充电器作为基础配件,其性能和成本一直是工程师关注的焦点。今天,我们就来详细探讨一款基于LNK616PG的5W充电器
    的头像 发表于 04-11 16:05 470次阅读

    高性能14位ADC:LTC2152-14/LTC2151-14/LTC2150-14的技术剖析

    高性能14位ADC:LTC2152-14/LTC2151-14/LTC2150-14的技术剖析 在电子设计领域,模数转换器(ADC)是连接模拟世界和数字世界的关键桥梁。今天,我们来深入
    的头像 发表于 03-31 14:00 219次阅读

    NineData 新增支持 MySQL 到 openGauss PostgreSQL 数据复制链路

    MySQL 到 openGauss PostgreSQL 兼容版的迁移,真正难的从来不是“把数据搬过去”,而是如何在业务不停、数据持续变化、结果需要验证、问题需要及时发现的前提下,把整个迁移过程稳稳
    的头像 发表于 03-19 11:44 199次阅读
    NineData 新增支持 MySQL 到 openGauss <b class='flag-5'>PostgreSQL</b> 数据复制链路

    PG-1000脉冲发生器在非易失性存储器(NVM)及MOSFET测试的应用

    )主流NVM类型 类型结构与原理 STT-MRAM核心为磁隧道结(MTJ),含两层铁磁体与中间绝缘体。电流流经参考层形成极化电流,通过自旋转移矩改变自由层磁矩方向,以不同导电性存储数据 PCM以硫系
    发表于 03-09 14:40

    深入解析EFM32PG1微控制器:特性、应用与设计要点

    深入解析EFM32PG1微控制器:特性、应用与设计要点 引言 在当今对能耗要求日益严苛的电子设备领域,寻找一款高性能且低能耗的微控制器至关重要。Silicon Labs的EFM32 Pearl
    的头像 发表于 02-28 16:10 280次阅读

    rtthread控制STM32L476的PG7 PG8拉高拉低没反应是怎么回事?

    同时配置PB7 PG7 PG让他们三个进行闪灯,发现只有PB7在工作,裸机用CUBMX生成的都能工作…………… 求助!!!!!!!!!!!!!
    发表于 09-29 08:29

    为什么无法将 PG.12、PG.13、PG.14 用作 NUC980 的 GPIO?

    无法将 PG.12、PG.13、PG.14 用作 NUC980 的 GPIO
    发表于 08-29 07:52

    无刷直流电机软起动设计改进

    本文分析了现有无刷直流电机软起动所存在的问题,通过对电机软起动电路控制拓扑进行优化设计并采用合适的功率管提升负载能力,消除了由于人为因素或电源特性引起的二次起动造成软起动保护失效,导致流烧毁功率管
    发表于 08-01 12:36

    ESP32通过OTA无线局域网远程升级下载程序

    本文介绍了ESP32通过OTA无线局域网远程升级固件的基本方法
    的头像 发表于 07-22 13:21 2336次阅读
    ESP32<b class='flag-5'>通过</b>OTA无线局域网远程升级下载程序