PostgreSQL:自动删除旧分区
我正在使用Imperial Wicket的精细自动分区功能(用于PostgreSQL)创建每周分区来存储大量数据。数据库每周增长约100GB,因此需要经常注意确保服务器不会耗尽磁盘空间PostgreSQL:自动删除旧分区,postgresql,Postgresql,我正在使用Imperial Wicket的精细自动分区功能(用于PostgreSQL)创建每周分区来存储大量数据。数据库每周增长约100GB,因此需要经常注意确保服务器不会耗尽磁盘空间 我已经搜索过了,但找不到任何基于磁盘空间阈值或时间段自动删除表的解决方案。是否有任何本机PostgreSQL解决方案或开发的函数可以自动删除旧分区,或者这是一个roll my own solution类型的问题?这似乎是一个roll my own solution类型的问题。由于我使用的是Imperial Wic
我已经搜索过了,但找不到任何基于磁盘空间阈值或时间段自动删除表的解决方案。是否有任何本机PostgreSQL解决方案或开发的函数可以自动删除旧分区,或者这是一个roll my own solution类型的问题?这似乎是一个roll my own solution类型的问题。由于我使用的是Imperial Wicket的自动表分区函数,因此我将其用作开发新函数的基础,该函数可以删除比指定日期更早的分区表 该守则可于 用法类似于Imperial Wicket的语法,支持日/周/月/年分区方案。例如,要删除使用每周分区创建的名为“my_table_name”的表分区,这些分区比180天前的一周早,请执行SQL语句:
SELECT public.drop_partitions(current_date-180, 'public', 'my_table_name', 5, 'week');
由于您是按日期范围进行分区的,所以您可能需要查看pg_partman。它将能够半自动地满足您的需要,并具有许多用于分区管理的内置功能。