暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

log_fdw

成子 2023-08-16
145

您可以通过log_fdw插件来查询CSV格式的数据库日志。

前提条件

  • PolarDB PostgreSQL版默认不产生CSV格式的数据库日志,需要将GUC参数log_destination的值修改为csvlog。
  • 支持的PolarDB PostgreSQL版的版本如下:
    • PostgreSQL 14(内核小版本14.5.1.0及以上)
    • PostgreSQL 11(内核小版本1.1.27及以上)

    说明 您可通过如下语句查看PolarDB PostgreSQL版的内核小版本的版本号:

    • PostgreSQL 14

      select version();
    • PostgreSQL 11

      show polar_version;

背景信息

log_fdw插件提供如下两个函数,帮助您查询数据库日志。
  • list_postgres_log_files():列出pg_log目录下所有的CSV格式的日志文件。

    说明 log_fdw也提供了一个名为list_postgres_log_files的视图,用于查询日志目录下所有CSV格式的日志文件。

  • create_foreign_table_for_log_file('table_name', 'log_server', 'log_file'):对指定的CSV日志文件创建外部表,查询这个外部表即可查询日志内容。

    说明 其中:

    • table_name:外部表名称。
    • log_server:已创建的外部服务器名称。
    • log_file:CSV日志文件名称。

使用指南

  1. 创建log_fdw插件。

    create extension log_fdw;
  2. 创建外部数据库服务器。

    使用log_fdw创建一个名为log_server的虚拟外部服务器,映射到PostgreSQL数据库中。示例如下:

    create server log_server foreign data wrapper log_fdw;
  3. 调用list_postgres_log_files()函数,列出所有的csvlog文件。

    select * from list_postgres_log_files();
    显示结果如下:

                file_name             | file_size_bytes
    ----------------------------------+-----------------
     postgresql-2022-08-24_080308.csv |            1235
    (1 row)
  4. 创建外部表。

    select create_foreign_table_for_log_file('ft1', 'log_server', 'postgresql-2022-08-24_080308.csv');
    显示结果如下:

     create_foreign_table_for_log_file
    -----------------------------------
     t
    (1 row)
  5. 查询外部表(即查询相对应的CSV日志文件)。

    select log_time, message from ft1 order by log_time desc limit 2;
    显示结果如下:

              log_time          |                  message
    ----------------------------+-------------------------------------------
     2022-08-24 08:04:36.699+00 | vfs open dir pg_log, num open dir 1
     2022-08-24 08:03:53.687+00 | create reference for flog_index_insert_bg
    (2 rows)
  6. 卸载插件。

    drop extension log_fdw;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论