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

    文章

    789

    浏览量

    46356
  • 应用程序
    +关注

    关注

    38

    文章

    3342

    浏览量

    59916
  • 日志
    +关注

    关注

    0

    文章

    145

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    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 1470次阅读
    ESP32<b class='flag-5'>通过</b>OTA无线局域网远程升级下载程序

    LTM8053怎么使用PG那个引脚?

    我在用LTM8053的时候不太知道怎么使用PG那个引脚。我在LTSpice仿真里面,不管这个上拉到多少伏,这个引脚都是3.3V左右。是内部有稳压管吗? 我的应用里面输出电压都是大于等于5V的。PG
    发表于 04-18 06:41

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

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

    展望PostgreSQL 18的新特性

    距离 PostgreSQL 17 正式发布已近半年,按照每年发布一个大版本的惯例,PostgreSQL 18 预计将在 2025 年底发布。距离正式发布还有一段时间,社区的开发工作仍在如火如荼地进行中。
    的头像 发表于 03-03 16:51 1386次阅读
    展望<b class='flag-5'>PostgreSQL</b> 18的新特性

    用TPS65145给DMD供电时,发现DMD不供电,PG脚始终为低为什么?

    在用TPS65145给DMD供电时,发现DMD不供电,PG脚始终为低,一旦将TPS65145的PG脚和DMD断开,TPS65145就能正常工作,测量下来断开PG脚时,TPS65145和DMD的
    发表于 03-03 06:18

    利用SSIS源、查找及目标组件集成PostgreSQL数据至ETL流程

    数据与 通过 SQL Server Integration Services (SSIS) 的其他数据库和云应用程序。它们包括优化的 PostgreSQL Source、PostgreSQL
    的头像 发表于 02-07 09:24 1653次阅读
    利用SSIS源、查找及目标组件集成<b class='flag-5'>PostgreSQL</b>数据至ETL流程

    dbForge Studio for PostgreSQL:PostgreSQL数据库多功能集成开发环境

    什么是 dbForge Studio for PostgreSQL?是一个集成工具包中包含 PostgreSQL 所需的一切 上下文感知SQL代码补全、智能格式化和语法验证 消除性能瓶颈的查询优化器
    的头像 发表于 01-16 17:26 875次阅读

    MSC1201通过什么方式下载程序,电路应该怎么设计?

    我有如下几个问题想请教: 1、MSC1201的使用例程,比如原理图DEMO之类的使用参考文件资料咋这么少,都找不到,请问 能提供参考设计吗? 2、MSC1201通过什么方式下载程序,电路应该怎么设计? 3、MSC1201怎么跟PC通过USB进行通信?虚拟串口(VCP)的
    发表于 12-13 06:30

    PostgreSQL将不再支持MD5密码

    根据 PostgreSQL 代码仓库的最新动态,近日有维护者提交了“弃用 MD5 密码支持”的 commit。 该维护者指出,MD5 被认为不适合用作加密散列算法已有一段时间。 此外
    的头像 发表于 12-10 16:14 735次阅读

    高云半导体GW5A-LV25PG256A0通过AEC-Q100认证

    近日,全球领先的分析检测机构闳康科技为高云半导体颁发 AEC-Q100 认证通过证书。高云半导体董事长王博钊,闳康科技中华区总经理徐瑞祥等双方代表出席了此次颁证仪式。
    的头像 发表于 12-09 18:12 1826次阅读

    米尔-紫光PG2L100H国产FPGA开发板试用】按键功能测试报告

    设计交互式界面 性能优化 提高检测灵敏度 优化防抖算法 改进显示效果 完善调试功能 十、总结 通过本次按键功能测试,验证了PG2L100H开发板的按键模块工作正常,响应灵敏,功能可靠。官方提供的按键示例
    发表于 12-06 11:04

    【米尔-紫光PG2L100H国产FPGA开发板试用】官方LED例程测试体验

    通过本次LED例程测试,我们验证了PG2L100H开发板的基本功能完全正常,PDS开发环境配置成功,为后续深入开发打下了良好基础。官方提供的LED例程设计合理,操作简单直观,特别适合初学者入门学习。建议初次使用的开发者可以先运行此例程,熟悉整个开发流程。
    发表于 12-06 10:30