找不到合适的 PG 巡检工具?快来试试这个

数据库 PostgreSQL
从 PostgreSQL 13 开始,PG Collector 会为每个 PostgreSQL 主版本提供一个专用脚本。每个 PG Collector 主版本都有自己的分支,主分支将用于支持 PostgreSQL 12 和更早版本的 PG Collector。

概述

PG Collector 可以安全地在生产环境中运行,并且不会创建任何数据库对象来生成输出。

借助 PG Collector,管理员可以深入了解数据库的各个方面,例如:

• 数据库大小

• 配置参数

• 已安装的扩展

• 清理与统计

• 未使用的索引和无效的索引

• 用户和角色信息

• Toast 表映射

• 数据库模式

• 碎片化(膨胀)

• 表空间信息

• 内存设置

• 表和索引的大小和信息

• 事务 ID

• 复制槽

• public 模式信息

• 未记录日志的表

要了解更多内容,请查看样例报告。

版本控制策略

从 PostgreSQL 13 开始,PG Collector 会为每个 PostgreSQL 主版本提供一个专用脚本。

每个 PG Collector 主版本都有自己的分支,主分支将用于支持 PostgreSQL 12 和更早版本的 PG Collector。

图片图片

如何下载 PG Collector?

从 pg-collector 发布中,选择与您的 PostgreSQL 主版本匹配的 PG Collector 版本。

图片图片

图片图片

如何查看 PG Collector 版本?

• 从 PG Collector 报告头部版面

图片图片

• 从 PG Collector 脚本头部注释

图片图片

PG Collector 报告头部版面

图片图片

PG Collector 样例报告

pg_collector v2.9

pg_collector v2.7

PG Collector 样例报告

PG Collector 输出

报告名称

PG Collector 脚本将使用以下命名约定生成 HTML 文件:pg_colletcor_[DB Name]-[timestamp].html。

[DB Name]:是连接到的数据库名称。

Example : pg_collector_testdb-2020-10-10_030920.html

报告位置

PG Collector 脚本将在 /tmp 目录下生成 HTML 文件。

如何运行 PG Collector 脚本?

1. 您需要 psql 才能连接到 postgresql 数据库,并运行 pg_collector.sql 脚本。

2. 在笔记本电脑或要从中访问数据库的主机中,下载 pg_collector.sql。

3. 使用 psql 登录数据库。

psql -h [hostname or RDS endpoint] -p [Port] -d [Database name ] -U [user name]

4. 运行 pg_collector.sql 脚本

\i pg_collector.sql
\q

或在 psql 中使用 -f 选项

psql -h [hostname or RDS endpoint] -p [Port] -d [Database name ] -U [user name] -f pg_collector.sql

示例:

$ psql -h localhost -p 5432 -d testdb -U mohamed

testdb=> \i pg_collector.sql
Output format is html.
Default footer is off.
testdb=> \q

$ ls -lhrt /tmp/pg_colletcor_*
-rw-r--r-- 1 mohamed mohamed 569K Oct  7 21:51 /tmp/pg_colletcor_testdb-2019-10-07_215146.html

5. 使用任何 Internet 浏览器打开报告。

备注

1. 如果您没有安装 pg_stat_statements 扩展,则在执行pg_colletcor.sql脚本时会看到以下错误。

postgres=> \i pg_collector.sql
Output format is html.
Default footer is off.
psql:pg_collector.sql:481: ERROR:  relation "pg_stat_statements" does not exist
LINE 10: from pg_stat_statements
              ^
psql:pg_collector.sql:495: ERROR:  relation "pg_stat_statements" does not exist
LINE 10: from pg_stat_statements
              ^
psql:pg_collector.sql:509: ERROR:  relation "pg_stat_statements" does not exist
LINE 10: from pg_stat_statements
              ^
psql:pg_collector.sql:523: ERROR:  relation "pg_stat_statements" does not exist
LINE 10: from pg_stat_statements
              ^
postgres=> \q

2. 如果数据库有数以万计的表,某些查询可能需要更长的时间。可以使用 statement_timeout,中止任何耗时超过指定毫秒数的语句。请查看以下示例。

postgres=> set statement_timeout=30000;
SET
postgres=> \i pg_collector.sql
Output format is html.
Report name and location: /tmp/pg_collector_postgres-2021-07-22_194944.html
psql:pg_collector.sql:1442: ERROR:  canceling statement due to statement timeou


责任编辑:武晓燕 来源: 红石PG
相关推荐

2021-01-27 11:36:34

代码开发工具

2023-10-11 16:33:37

2024-11-08 09:29:18

ExcelPostgreSQL类报表

2019-01-07 14:43:40

Python抢票刷票

2023-02-01 10:40:01

2022-06-12 23:11:40

Windows 11微软升级

2016-09-23 18:32:42

iTunesIOS 10苹果

2020-07-10 12:06:28

WebpackBundleless浏览器

2022-02-09 07:44:30

Go源码工具

2024-11-07 18:57:35

2022-01-26 07:18:57

工具GoGo 项目

2020-08-25 08:03:59

测试Sharness结构

2023-08-15 08:42:41

2020-12-02 08:31:47

Elasticsear

2020-11-04 16:34:45

单元测试技术

2022-06-17 11:10:43

PandasPolarsPython

2015-07-30 11:08:19

前端特效

2023-08-31 12:28:05

Mageia 9Linux

2020-11-12 09:55:10

百度

2022-04-02 14:50:22

Python工具包数据
点赞
收藏

51CTO技术栈公众号