PostgreSQL的扩展(extensions)-常用的扩展之pg_repack

2024-04-27 13:44

本文主要是介绍PostgreSQL的扩展(extensions)-常用的扩展之pg_repack,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack

pg_repack 是一款非常有用的 PostgreSQL 扩展工具,它能够重新打包(repack)表和索引以回收空间并减少碎片,而且在这个过程中不会锁定表,允许数据库在重整过程中继续对数据进行读写操作。这是与 PostgreSQL 内建的 VACUUM FULL 命令相比的一个重大优势,因为 VACUUM FULL 在重新组织表以回收空间时会锁定表。

特性

  • 最小化锁定时间pg_repack在重组表和索引的时候减少了锁的使用时间,使得数据库对于读写操作几乎总是可用的。
  • 重新打包表和索引:不仅可以对表进行重新打包,还可以重新打包索引,减少索引碎片。
  • 兼容性:支持多个 PostgreSQL 版本。

安装 pg_repack

要使用 pg_repack,你需要先在你的 PostgreSQL 服务器上安装它。安装方法可能因操作系统而异。以下是一些常见的安装方法:

  • Debian/Ubuntu

    sudo apt-get install postgresql-XX-repack
    

    其中 XX 是 PostgreSQL 的版本号,例如 1213 等。

  • RHEL/CentOS

    首先,你需要启用 PostgreSQL 官方仓库,然后安装 pg_repack。例如,对于 PostgreSQL 12:

    sudo yum install pg_repack12
    
  • 从源代码安装

    如果你的系统没有预打包的 pg_repack 版本,你可以从源代码编译安装。
    下载网址:https://pgxn.org/dist/pg_repack/
    在这里插入图片描述

–编译安装
cd /home/pg16/resource
[pg16@test resource]$ unzip pg_repack-1.5.0.zip
[pg16@test resource]$ cd pg_repack-1.5.0/
[pg16@test pg_repack-1.5.0]$ make
[pg16@test pg_repack-1.5.0]$ make install

```

当你安装好 pg_repack 后,需要在目标数据库上创建扩展:

[pg16@test pg_repack-1.5.0]$ psql -p 5777
psql (16.2)
Type "help" for help.postgres=# CREATE EXTENSION pg_repack;
CREATE EXTENSION
postgres=# SELECT * FROM pg_extension;oid  |      extname       | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-------+--------------------+----------+--------------+----------------+------------+-----------+--------------14270 | plpgsql            |       10 |           11 | f              | 1.0        |           | 16423 | pg_stat_statements |       10 |         2200 | t              | 1.10       |           | 16454 | pg_repack          |       10 |         2200 | f              | 1.5.0      |           | 
(3 rows)

使用 pg_repack

在安装并配置 pg_repack 之后,你可以通过命令行工具 pg_repack 来重新组织表和索引。以下是一些基本用法:

  • 重新打包特定表:

    pg_repack -d databasename -t tablename
    
  • 重新打包所有表:

    pg_repack -d databasename
    
  • 重新打包特定索引:

    pg_repack -d databasename --only-indexes -t tablename
    

请记得,使用 pg_repack 之前,确保你已经有了足够的权限来执行这些操作,并且对数据库做了适当的备份。

注意事项

  • pg_repack 运行期间,尽管它最小化了锁的时间,但在最后阶段仍然需要短暂的锁定,以便完成表的替换。因此,最好在数据库负载相对较低的时间段运行它。
  • 确保在执行大量数据重组之前备份数据库,以免出现不可预测的情况导致数据丢失。

这篇关于PostgreSQL的扩展(extensions)-常用的扩展之pg_repack的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940657

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX