You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行pg_partman.run_maintenance()遇默认分区约束错误求解决方案

解决pg_partman维护时默认分区数据冲突的问题

一、立即修复当前错误

1. 定位冲突数据

首先找出默认分区中属于待创建分区(示例中为2023-11)的记录:

SELECT * FROM raw.bupa_trace_resultados_default
WHERE your_partition_column >= '2023-11-01 00:00:00-03' 
  AND your_partition_column < '2023-12-01 00:00:00-03';

替换your_partition_column为实际的分区字段(如时间戳字段)。

2. 迁移冲突数据到目标分区

检查目标分区是否已存在:

SELECT tablename FROM pg_tables 
WHERE tablename = 'bupa_trace_resultados_p2023_11' AND schemaname = 'raw';

若分区已存在,执行数据迁移:

-- 插入数据到目标分区
INSERT INTO raw.bupa_trace_resultados_p2023_11
SELECT * FROM raw.bupa_trace_resultados_default
WHERE your_partition_column >= '2023-11-01 00:00:00-03' 
  AND your_partition_column < '2023-12-01 00:00:00-03';

-- 验证数据量匹配(删除前必做)
SELECT COUNT(*) FROM raw.bupa_trace_resultados_default 
WHERE your_partition_column >= '2023-11-01 00:00:00-03' 
  AND your_partition_column < '2023-12-01 00:00:00-03';
SELECT COUNT(*) FROM raw.bupa_trace_resultados_p2023_11;

-- 删除默认分区中的冲突数据
DELETE FROM raw.bupa_trace_resultados_default
WHERE your_partition_column >= '2023-11-01 00:00:00-03' 
  AND your_partition_column < '2023-12-01 00:00:00-03';

3. 重新执行维护

现在可以正常运行pg_partman维护:

SELECT pg_partman.run_maintenance('raw.bupa_trace_resultados');

二、配置自动处理(避免未来重复报错)

1. 更新pg_partman配置

开启自动数据迁移功能:

UPDATE partman.part_config
SET move_data = true,
    automatic_maintenance = 'on'
WHERE parent_table = 'raw.bupa_trace_resultados';

2. 定期执行数据迁移+维护

使用pg_cron(或系统cron)调度任务,先迁移默认分区数据,再执行维护:

-- 示例:每天凌晨2点执行
SELECT cron.schedule('daily-partman-maintenance', '0 2 * * *', $$
    -- 分批迁移默认分区数据到对应分区(避免锁表)
    SELECT pg_partman.partition_data('raw.bupa_trace_resultados_default', p_batch_size := 1000, p_batch_count := 100);
    -- 执行分区维护
    SELECT pg_partman.run_maintenance('raw.bupa_trace_resultados');
$$);
  • p_batch_size:每批迁移的行数
  • p_batch_count:最大批次数,可根据数据量调整

内容的提问来源于stack exchange,提问作者Luis Riquelme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:43:13