您可以通过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日志文件名称。
使用指南
- 创建log_fdw插件。
create extension log_fdw; - 创建外部数据库服务器。
使用log_fdw创建一个名为log_server的虚拟外部服务器,映射到PostgreSQL数据库中。示例如下:
create server log_server foreign data wrapper log_fdw; - 调用
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) - 创建外部表。
显示结果如下: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) - 查询外部表(即查询相对应的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) - 卸载插件。
drop extension log_fdw;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




