LightDB之监控数据库进度报告

本文介绍了如何在LightDB环境中实时监控ANALYZE、CREATE INDEX、VACUUM和CLUSTER等数据库操作的进度。通过pg_stat_progress_视图,用户可以在不同会话中观察这些操作的状态,以了解数据库维护任务的执行情况。

环境

lightdb@lt_test=# select version();
                                                  version
-----------------------------------------------------------------------------------------------------------
 LightDB 13.8-22.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
(1 row)

ANALYZE 进度报告

每当ANALYZE运行时,pg_stat_progress_analyze视图将包含当前运行该命令的每个后端的一行。

analyze

另一个会话中:

select * from pg_stat_progress_analyze;\watch 0.1

在这里插入图片描述
在这里插入图片描述

CREATE INDEX 进度报告

可以通过查看pg_stat_progress_create_index视图。
示例:

#建测试表插入测试数据
create table tmp_idx_lt01 (a int,b text);

insert into tmp_idx_lt01 select t,'lightdb_' ||t from generate_series(1,10000000) t;

# 建索引
create index CONCURRENTLY idx_lt01_a  on tmp_idx_lt01 (a);

立刻在另一个会话中执行如下(每0.1秒快速查询):

select * from pg_stat_progress_create_index;\watch 0.1

得到如下状态:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

VACUUM 进度报告

vacuum的时候,可以观察pg_stat_progress_vacuum视图,做 vacuum full 的时候观察pg_stat_progress_cluster视图。
示例:

# 删除数据
delete from tmp_idx_lt01;

\dt+ tmp_idx_lt01;

lightdb@lt_test=# \dt+ tmp_idx_lt01;
                              List of relations
 Schema |     Name     | Type  |  Owner  | Persistence |  Size  | Description
--------+--------------+-------+---------+-------------+--------+-------------
 public | tmp_idx_lt01 | table | lightdb | permanent   | 498 MB |
(1 row)

# 做vacuum
vacuum ANALYZE tmp_idx_lt01;

立刻在另一个会话中执行:

select * from pg_stat_progress_vacuum;\watch 0.1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#清理数据后的表空间
lightdb@lt_test=# \dt+ tmp_idx_lt01;
                              List of relations
 Schema |     Name     | Type  |  Owner  | Persistence | Size  | Description
--------+--------------+-------+---------+-------------+-------+-------------
 public | tmp_idx_lt01 | table | lightdb | permanent   | 24 kB |
(1 row)

CLUSTER 进度报告

每当clustervacumm full运行时,pg_stat_progress_cluster视图将包含当前正在运行的每一个后台的记录。
vacumm full为例:

insert into tmp_idx_lt01 select t,'lightdb_' ||t from generate_series(1,10000000) t;

# 删除数据
delete from tmp_idx_lt01;

vacuum full tmp_idx_lt01;

立刻在另一个会话中执行:

select * from pg_stat_progress_cluster;\watch 0.1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值