PostgreSQL插件pg_repack介绍和简单使用【2】

embedded/2025/1/22 5:29:16/

文章目录

  • pg_repack用法介绍
    • OPTIONS指定选项
    • 重组选项
    • 连接选项
    • 通用选项

pg_repack用法介绍

OPTIONS指定选项

在这里插入图片描述

  • -a, --all
    重新打包所有数据库
  • -t, --table=TABLE
    仅打包指定表
  • -I, --parent-table=TABLE
    重新打包特定的父表及其继承表
  • -c, --schema=SCHEMA
    仅打包指定模式内的表
  • -s, --tablespace=TBLSPC
    移动重打包的表到新的表空间
  • -S, --moveidx
    也将重新打包的索引移动到表空间
  • -o, --order-by=COLUMNS
    按列排序,而不是按聚集键排序
  • -n, --no-order
    执行完全清理(VACUUM FULL)操作,而不是执行聚集(CLUSTER)操作
  • -N, --dry-run
    打印出本应重新打包的内容并退出
  • -j, --jobs=NUM
    为每个表使用多并行作业
  • -i, --index=INDEX
    仅移动指定的索引
  • -x, --only-indexes
    仅移动指定表的索引
  • -T, --wait-timeout=SECS
    在发生冲突时取消其他后台进程的超时时间
  • -D, --no-kill-backend
    超时时不终止其他后台进程
  • -Z, --no-analyze
    结束时不进行分析
  • -k, --no-superuser-check
    在客户端跳过超级用户检查
  • -C, --exclude-extension
    不要重新打包属于特定扩展的表。–no-error-on-invalid-index 即使发现无效索引也重新打包。–error-on-invalid-index 当发现无效索引时不重新打包,此选项已弃用,因为现在这是默认行为。–apply-count 在重放期间,一次事务中应用的元组数量。–switch-threshold 当剩余这么多元组需要追赶时,切换表。

重组选项

通常用于数据库管理系统中,指的是对数据库表、索引或数据进行重新组织或优化的过程。
这些“重组选项”或“重新组织选项”允许用户指定在执行重组操作时的一些参数或行为,以满足特定的性能优化、空间管理或数据完整性需求。

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

  • -a, --all
    尝试对集群中的所有数据库进行重新打包。对于未安装 pg_repack 扩展的数据库,将跳过处理。
  • -t TABLE, --table=TABLE
    仅对指定的表进行重新组织。可以使用多个 -t 开关来重新组织多个表。默认情况下,目标数据库中的所有符合条件的表都会被重新组织。
  • -I TABLE, --parent-table=TABLE
    对指定的表及其继承表进行重新组织。通过编写多个 -I 开关,可以对多个表层次结构进行重新组织。
  • -c, --schema
    仅对指定模式中的表进行重新打包。通过编写多个 -c 开关,可以对多个模式中的表进行重新打包。此选项可以与 –tablespace 一起使用,以便将表移动到不同的表空间。
  • -o COLUMNS [,…], --order-by=COLUMNS [,…]
    执行一个根据指定列排序的在线聚簇集操作。
  • -n, --no-order
    执行一个在线的VACUUM FULL操作。从1.2版本开始,这成为了非聚集表的默认操作。
  • -N, --dry-run
    列出将要重新打包的对象并退出。
  • -j, --jobs
    为PostgreSQL创建指定数量的额外连接,并使用这些额外连接来并行重建每个表上的索引。并行索引构建仅支持全表重新打包,而不支持使用 –index–only-indexes 选项。如果您的PostgreSQL服务器有额外的内核和可用的磁盘I/O,那么这可以是一种加速pg_repack的有用方法。
  • -s TBLSPC, --tablespace=TBLSPC
    将重新打包的表移动到指定的表空间:这实质上是 ALTER TABLE … SET TABLESPACE 命令的在线版本。除非同时指定了 –moveidx ,否则表的索引将保留在原始表空间中。
  • -S, --moveidx
    还将重新打包的表的索引移动到由–tablespace选项指定的表空间中。
  • -i, --index
    仅重新打包指定的索引。可以通过写入多个-i开关来重新打包多个索引。可以与 –tablespace 结合使用,将索引移动到不同的(表空间)。
  • -x, --only-indexes
    仅重新打包指定表的索引,这些表必须使用 –table–parent-table 选项进行指定。
  • -T SECS, --wait-timeout=SECS
    pg_repack 在重新打包过程的开始和结束时各需要获取一个排他锁。此设置控制 pg_repack 在获取这些锁时将等待多少秒。如果在此时间段后仍未能获取到锁,并且未指定 –no-kill-backend 选项,pg_repack 将强制取消与之冲突的查询。如果您使用的是 PostgreSQL 8.4 或更高版本,在超过此超时时间的两倍后,pg_repack 将回退到使用 pg_terminate_backend() 来断开任何剩余的后端连接。默认的超时时间是 60 秒。
  • -D, --no-kill-backend
    如果无法在指定的 –wait-timeout 时间内获取锁,则跳到重新打包表,而不是取消冲突的查询。默认值为false。
  • -Z, --no-analyze
    在完整表重组后禁用 ANALYZE。如果未指定,则在重组后运行 ANALYZE。
  • -k, --no-superuser-check
    跳过客户端中的超级用户检查。此设置在支持以非超级用户身份运行 pg_repack 的平台上很有用。
  • -C, --exclude-extension
    跳过属于指定扩展的表。一些扩展在规划时间等方面可能高度依赖于这些表。
  • –switch-threshold
    当日志表中剩余指定数量的元组(行)时切换表。此设置可用于防止无法跟上写入量大的表的进度。

连接选项

连接到服务器的选项。您不能同时使用 –all–dbname–table–parent-table

在这里插入图片描述

  • -a, --all
    重组所有数据库
  • -d DBNAME, --dbname=DBNAME
    指定要重组的数据库的名称。如果未指定此选项且未使用-a(或–all),则会从环境变量 PGDATABASE 中读取数据库名称。如果未设置该环境变量,则使用为连接指定的用户名。
  • -h HOSTNAME, --host=HOSTNAME
    指定服务器上运行机器的主机名。如果该值以斜杠(/)开头,则它将被用作Unix域套接字的目录。
  • -p PORT, --port=PORT
    指定服务器监听连接的TCP端口号或本地Unix域套接字文件的扩展名。
  • -U USERNAME, --username=USERNAME
    用于连接的用户名。
  • -w, --no-password
    从不提示输入密码。如果服务器需要密码认证,且无法通过其他方式(如.pgpass文件)提供密码,则连接尝试将失败。此选项在批处理作业和脚本中可能很有用,因为在这些情况下没有用户在场输入密码。
  • -W, --password
    强制程序在连接到数据库之前提示输入密码。
    此选项并非必不可少,因为如果服务器要求密码认证,程序会自动提示输入密码。然而,pg_repack在发现服务器需要密码时会浪费一次连接尝试。在某些情况下,输入-W以避免额外的连接尝试是值得的。

通用选项

在这里插入图片描述

  • -e, --echo
    回显发送到服务器的命令。
  • -E LEVEL, --elevel=LEVEL
    从DEBUG、INFO、NOTICE、WARNING、ERROR、LOG、FATAL和PANIC中选择输出消息级别。默认级别是INFO。
  • –help
    显示程序的使用方法。
  • –version
    显示程序的版本号。

http://www.ppmy.cn/embedded/155973.html

相关文章

Flink在流处理中,为什么还会有窗口的概念呢

窗口操作在流处理中看似有些反直觉,因为流处理通常处理的是无限数据流,数据不断流入而没有明确的结束点。然而,窗口操作却是流处理的一个核心概念,特别是在需要对流数据进行 聚合、统计、处理 等操作时,窗口的概念就显…

22. C语言 输入与输出详解

本章目录: 前言1. 输入输出的基础概念1.1 标准输入输出流1.2 输入输出函数 2. 格式化输出与输入2.1 使用 printf() 进行输出示例 1: 输出字符串示例 2: 输出整数示例 3: 输出浮点数 2.2 使用 scanf() 进行输入示例 4: 读取整数和字符改进方案:使用getchar()清理缓冲…

“大模型横扫千军”背后的大数据挖掘--浅谈MapReduce

文章目录 O 背景知识1 数据挖掘2 邦费罗尼原则3 TF.IDF4 哈希函数5 分布式文件系统 一、MapReduce基本介绍1. Map 任务2. 按键分组3. Reduce 任务4. 节点失效处理5.小测验:在一个大型语料库上有100个map任务和若干reduce任务: 二、基于MapReduce的基本运…

2. CSS 中的单位

CSS 中的单位 CSS 新单位:vmin 和 vmax vmin vmin 表示相对于视口宽度和高度中较小者的百分比。 vmax vmax 表示相对于视口宽度和高度中较大者的百分比。 例如,如果视口的宽度为 1000px,高度为 800px,那么 1vmax 就等于 10p…

GRE协议(附华三实验)

概述 通用路由封装协议,可以对某些网络层协议(如IPX、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在网络中传输,是一种三层协议,个人认为这是最简单的VPN技术 GRE提供了将一种协议的报文…

SQL-leetcode—1084. 销售分析 III

1084. 销售分析 III 表: Product --------------------- | Column Name | Type | --------------------- | product_id | int | | product_name | varchar | | unit_price | int | --------------------- product_id 是该表的主键(具有唯一值的列&…

AWTK fscript 中的 输入/出流 扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 iostream 扩展函数 1.iostream_get_istream 获取输入流对象。 原型 iostream_get_istream(iostream) > object示例 va…

登录、注册、忘记密码、首页HTML模板

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>登录</title><style>body {display: fl…