postgresql自带指令命令系列三
目录
简介
bin目录
28.pg_verifybackup
29.pg_waldump
30.postgres
31.postmaster -> postgres
32.psql
33.reindexdb
34.vacuumdb
35.vacuumlo
总结:
简介
在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量
export PATH=/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix= [指定安装目录] 中的prefix参数设置相关。--bindir=DIR 参数可以指定bin目录的具体存放路径。postgresql对应的PATH变量没有设置正确,会导致执行文件对应的命令无法使用
本文使用postgresql-15.2版本进行讲解
bin目录
进入到对应的bin目录中去,可以看到有以下的执行文件,本博主将进行一一讲解
clusterdb
createdb
createuser
dropdb
dropuser
ecpg
initdb
oid2name
pg_amcheck
pg_archivecleanup
pg_basebackup
pgbench
pg_checksums
pg_config
pg_controldata
pg_ctl
pg_dump
pg_dumpall
pg_isready
pg_receivewal
pg_recvlogical
pg_resetwal
pg_restore
pg_rewind
pg_test_fsync
pg_test_timing
pg_upgrade
pg_verifybackup
pg_waldump
postgres
postmaster -> postgres
psql
reindexdb
vacuumdb
vacuumlo
接上文
28.pg_verifybackup
pg_verifybackup — 验证PostgreSQL集群的基础备份的完整性,当我们做完备份之后,可以只用该工具对备份进行验证
[postgres@vm03 ~]$ pg_basebackup -Fp -P -v -D backup/
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/18000060 on timeline 1
pg_basebackup: starting background WAL receiver
pg_basebackup: created temporary replication slot "pg_basebackup_2554"
41785/41785 kB (100%), 1/1 tablespace
pg_basebackup: write-ahead log end point: 0/18000138
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: syncing data to disk ...
pg_basebackup: renaming backup_manifest.tmp to backup_manifest
pg_basebackup: base backup completed
[postgres@vm03 ~]$
[postgres@vm03 ~]$ pg_verifybackup backup/
backup successfully verified
在实际完成数据库备份的时候,会生成backup_label,backup_manifest信息文件, pg_verifybackup会先读取backup_manifest文件的信息,然后验证备份文件目录的完整性,再接着基于读取backup_manifest文件的信息对备份文件下所有信息文件的效验。
[postgres@vm03 ~]$ cd backup/
[postgres@vm03 backup]$ ll
total 204
-rw------- 1 postgres postgres 227 Dec 9 18:34 backup_label
-rw------- 1 postgres postgres 141510 Dec 9 18:34 backup_manifest
drwx------ 5 postgres postgres 33 Dec 9 18:34 base
-rw------- 1 postgres postgres 44 Dec 9 18:34 current_logfiles
drwx------ 2 postgres postgres 4096 Dec 9 18:34 global
drwx------ 2 postgres postgres 246 Dec 9 18:34 log
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_commit_ts
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_dynshmem
-rw------- 1 postgres postgres 4774 Dec 9 18:34 pg_hba.conf
-rw------- 1 postgres postgres 1636 Dec 9 18:34 pg_ident.conf
drwx------ 4 postgres postgres 68 Dec 9 18:34 pg_logical
drwx------ 4 postgres postgres 36 Dec 9 18:34 pg_multixact
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_notify
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_replslot
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_serial
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_snapshots
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_stat
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_stat_tmp
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_subtrans
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_tblspc
drwx------ 2 postgres postgres 6 Dec 9 18:34 pg_twophase
-rw------- 1 postgres postgres 3 Dec 9 18:34 PG_VERSION
drwx------ 3 postgres postgres 60 Dec 9 18:34 pg_wal
drwx------ 2 postgres postgres 18 Dec 9 18:34 pg_xact
-rw------- 1 postgres postgres 88 Dec 9 18:34 postgresql.auto.conf
-rw------- 1 postgres postgres 29516 Dec 9 18:34 postgresql.conf
[postgres@vm03 backup]$ cat backup_label
START WAL LOCATION: 0/18000060 (file 000000010000000000000018)
CHECKPOINT LOCATION: 0/18000098
BACKUP METHOD: streamed
BACKUP FROM: primary
START TIME: 2023-12-09 18:34:47 CST
LABEL: pg_basebackup base backup
START TIMELINE: 1
29.pg_waldump
pg_waldump 是一个查看PostgreSQL 预写式日志的工具,常常用与PITR去读取对应时间点的LSN以进行PITR恢复
[postgres@vm03 backup]$ cd pg_wal/
[postgres@vm03 pg_wal]$ ll
total 16384
-rw------- 1 postgres postgres 16777216 Dec 9 18:34 000000010000000000000018
drwx------ 2 postgres postgres 6 Dec 9 18:34 archive_status
[postgres@vm03 pg_wal]$ pg_waldump 000000010000000000000018
rmgr: Standby len (rec/tot): 50/ 50, tx: 0, lsn: 0/18000028, prev 0/170001C0, desc: RUNNING_XACTS nextXid 91773 latestCompletedXid 91772 oldestRunningXid 91773
rmgr: Standby len (rec/tot): 50/ 50, tx: 0, lsn: 0/18000060, prev 0/18000028, desc: RUNNING_XACTS nextXid 91773 latestCompletedXid 91772 oldestRunningXid 91773
rmgr: XLOG len (rec/tot): 114/ 114, tx: 0, lsn: 0/18000098, prev 0/18000060, desc: CHECKPOINT_ONLINE redo 0/18000060; tli 1; prev tli 1; fpw true; xid 0:91773; oid 24610; multi 1; offset 0; oldest xid 716 in DB 1; oldest multi 1 in DB 1; oldest/newest commit timestamp xid: 0/0; oldest running xid 91773; online
rmgr: XLOG len (rec/tot): 34/ 34, tx: 0, lsn: 0/18000110, prev 0/18000098, desc: BACKUP_END 0/18000060
rmgr: XLOG len (rec/tot): 24/ 24, tx: 0, lsn: 0/18000138, prev 0/18000110, desc: SWITCH
30.postgres
这是一个非常重要的指令,常常再因为数据库运行故障时,会使用单用户模式进入数据库中进行排查。
[postgres@vm03 ~]$ postgres --singlePostgreSQL stand-alone backend 15.3
backend>
使用CTRL+D退出单用户模式
该指令也可以启动数据库,实现后台运行
nohup postgres > nohup.out 2>&1 &
postgres 2893 2361 1 19:05 pts/0 00:00:00 postgres
postgres 2894 2893 0 19:05 ? 00:00:00 postgres: logger
postgres 2895 2893 0 19:05 ? 00:00:00 postgres: checkpointer
postgres 2896 2893 0 19:05 ? 00:00:00 postgres: background writer
postgres 2898 2893 0 19:05 ? 00:00:00 postgres: walwriter
postgres 2899 2893 0 19:05 ? 00:00:00 postgres: autovacuum launcher
postgres 2901 2893 0 19:05 ? 00:00:00 postgres: logical replication launcher
postgres 2905 2788 0 19:05 pts/3 00:00:00 ps -ef
postgres 2906 2788 0 19:05 pts/3 00:00:00 grep --color=auto postgres
无论你使用pg_ctl start 还是postgres 启动数据库,都会拉起一个postgres进程。在使用pg_ctl start启动数据库的时候,其实也就是去调用postgres进行启动数据库。
31.postmaster -> postgres
postmaster是postgres的一个废弃的别名,一直使用软连接挂载到postgres上。
32.psql
这是一个进入postgresql数据库,在学习postgresql数据库非常常见的一个指令工具。
33.reindexdb
这是一个重建数据库或者数据库表的指令工具。数据库在使用的时候常常由于位置情况导致,表的索引损坏的情况,此时可以使用该指令,对表的索引进行重建。
创建测试数据。
CREATE TABLE test_table (id SERIAL PRIMARY KEY,name VARCHAR(200)
);CREATE INDEX idx_test_table_name ON test_table(name);INSERT INTO test_table (id ,name ) select id , md5(id::text) from generate_series(2,80000) as id ;
查看索引所在地址,
postgres=# select pg_relation_filepath('idx_test_table_name');pg_relation_filepath
----------------------base/5/25105
(1 row)
删掉索引文件
rm -rf $PGDATA/base/5/25105
此时查询该表便会报错,提示索引文件缺失
postgres=# select * from test_table;
ERROR: could not open file "base/5/25105": No such file or directory
使用 reindexdb对其进行修复
[postgres@vm03 ~]$ reindexdb -t test_table -i idx_test_table_name
[postgres@vm03 ~]$
此时再次查看文件变可以查看了

34.vacuumdb
清理数据库中的死元组,并回收存储空间的工具,往往数据库正常启动状态下,会有autovacuum launcher 进程,会自动清理数据库的死元组信息,并更新统计信息,优化器会根据新的统计信息对数据的相关优化判断重新定义。
vacuumdb简单理解,也就时vacuum的SQL命令的一个封装工具
[postgres@vm03 ~]$ vacuumdb -z
vacuumdb: vacuuming database "postgre
35.vacuumlo
vacuumlo 是一个 "会" 从 PostgreSQL 数据库移除所有孤立的大对象的简单程序。
总结:
本博主,根据在实际工作使用的频率,以及对于数据库故障处理,日常维护的重要性进行评星(满星五颗星)。
| 重要性 | 指令 | 作用 |
| ***** | clusterdb | 重组或重新排序数据库表,以优化性能。 |
| ** | createdb | 创建新的数据库。 |
| **** | createuser | 创建新的数据库用户。 |
| ** | dropdb | 删除数据库。 |
| **** | dropuser | 删除数据库用户。 |
| ** | ecpg | 处理嵌入式 SQL。 |
| ** | initdb | 初始化新的 PostgreSQL 数据库实例。 |
| ***** | oid2name | 转换 OID(对象标识符)为名称。 |
| *** | pg_amcheck | 检查 PostgreSQL 索引的一致性。 |
| ** | pg_archivecleanup | 从归档目录中删除不再需要的 WAL 日志文件。 |
| ***** | pg_basebackup | 创建 PostgreSQL 数据库的基础备份。 |
| ***** | pgbench | 进行 PostgreSQL 数据库基准测试。 |
| **** | pg_checksums | 校验和控制和修复数据文件。 |
| **** | pg_config | 显示 PostgreSQL 的编译配置。 |
| ** | pg_controldata | 显示 PostgreSQL 数据库控制信息。 |
| **** | pg_ctl | 启动、停止、或重新加载 PostgreSQL 服务器。 |
| ***** | pg_dump | 备份 PostgreSQL 数据库 |
| ***** | pg_dumpall | 备份所有 PostgreSQL 数据库和角色 |
| * | pg_isready | 检查 PostgreSQL 服务器是否准备好接收连接。 |
| ** | pg_receivewal | 接收 WAL 日志流并将其写入文件。 |
| * | pg_recvlogical | 接收逻辑复制流。 |
| ***** | pg_resetwal | 重置 PostgreSQL 数据库的日志文件。 |
| ***** | pg_restore | 恢复 PostgreSQL 数据库备份。 |
| **** | pg_rewind | 数据库增量、全量备份工具,可用与PITR相关技术点 |
| *** | pg_test_fsync | 测试文件同步方法的性能。 |
| *** | pg_test_timing | 测试 PostgreSQL 服务器的计时器。 |
| **** | pg_upgrade | 升级 PostgreSQL 数据库到新版本。 |
| ** | pg_verifybackup | 验证 PostgreSQL 数据库备份的一致性。 |
| **** | pg_waldump | 显示 PostgreSQL WAL 文件的内容。 |
| *** | postgres | PostgreSQL 服务器进程。 |
| * | postmaster | PostgreSQL 主进程。 |
| **** | psql | PostgreSQL 的交互式终端。 |
| ***** | reindexdb | 重新建立 PostgreSQL 数据库中的索引。 |
| ***** | vacuumdb | 释放未使用的存储空间并优化数据库。 |
| * | vacuumlo | 释放未使用的大对象存储空间。 |
相关文章:
postgresql自带指令命令系列三
目录 简介 bin目录 28.pg_verifybackup 29.pg_waldump 30.postgres 31.postmaster -> postgres 32.psql 33.reindexdb 34.vacuumdb 35.vacuumlo 总结: 简介 在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量 export PATH/…...
Java_mybatis-结果集映射-ResultTypeResultMap
Mybatis返回值接收 可以使用两种方式进行参数的接收 resultTyperesultMap 这两种分别都是需要在Mapper.xml文件中去设置的 当结果是一个简单的对象或者list或者map,对象中没有嵌套对象,或者集合时,就可以直接使用resultType 反之如果需要…...
【Java】MySQL存储 MD5 值应该用 VARCHAR 还是CHAR?
CHAR 非常适合存储 MD5 值。因为MD5 值是一个定长的值,对于固定长度的非常短的列,CHAR比VARCHAR的效率更高。 CHAR和VARCHAR的区别: 1)存储长度不同,CHAR 的长度是固定的,VARCHAR 的长度是可变的 假设,当我们定义 CHA…...
pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm
1 torch.rand:构造均匀分布张量 torch.rand是用于生成均匀随机分布张量的函数,从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量,其调用方法如下所示: torch.rand(sizes, outNone) ➡️ Tensor 参数: sizes&…...
2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)
大家好,从昨天肝到现在,终于完成了2023第二届全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘的完整论文啦。 给大家看一下目录吧: 目录 摘 要: 10 一、问题重述 12 二.问题分析 13 2.1问题一 13 2.2问…...
Qt 面试指南
一、c基础知识 1、进程和线程的同步方式 进程:1)管道,是内核里的一串缓存 2)消息队列 3)共享内存 4)信号量机制 5)信号 6)socket 线程:1)等待通知机制 2&…...
开利网络的数字化技术加持下,加快扶贫和乡村振兴的效果和进程!
今日,来自山区省份的从事公益、区域民族文化传播、帮扶贫困地区脱贫、农业兴村贵州项目组一行来开利进行数字化脱贫、帮助乡村振兴解决方案探讨交流,交流中,开利网络总结出历经多年实践验证且行之有效的数字化经营、数字化建设经验得到与会成…...
PR剪辑视频做自媒体添加字幕快速方式(简单好用的pr视频字幕模板)
如何选择合适的字幕添加进短视频呢?首先要先确定增加的视频风格,简约、商务、科技感、炫酷;再确定用途,注释、标记、语音翻译、引用、介绍;最后在相应的模板中挑选几个尝试,悬着一个最切合主题的使用&#…...
金融行业文件摆渡,如何兼顾安全和效率?
金融行业是数据密集型产业,每时每刻都会产生海量的数据,业务开展时,数据在金融机构内部和内外部快速流转,进入生产的各个环节。 为了保障基础的数据安全和网络安全,金融机构采用网络隔离的方式来隔绝外部网络的有害攻击…...
[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System EG1: 烧水与控温水壶EG2: 蓄水与最终水位闭环控制系统 EG1: 烧水与控温水壶 EG2: 蓄水与最终水位 h ˙ q i n A − g h A R \dot{…...
每日一题,杨辉三角
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]...
Java_Mybatis_缓存
缓存 1.概述 Mybatis 缓存:MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制 2.会话缓存(一级缓存) sqlSession 级别的,也就是说,使用同一个 sqlSession 查询同一 sql 时&#x…...
C#基础面试题集
C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述private,public,protected,internal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前…...
可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案
由于我国养宠物群体的不断膨胀,宠物市场也占据了经济的很大一部分,宠物做为人类的好朋友,可以给人们带来极高的精神抚慰,作为“毛孩子”家长,爱宠人士自然不会亏待自家宠物,都会选择最好的口粮以供宠物食用…...
ArkUI组件
目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image:图片展示组件 示例 配置控制授权申请 2、Text:文本显示组件 示例 3、TextInput:文本输入组件 示例 4、Button:按钮组件 5、Slider:滑动条组件 …...
C语言--动态内存【详细解释】
一.动态内存介绍🍗 在C语言中,动态内存分配是指在程序运行时根据需要动态申请内存空间,以便在程序的不同阶段存储和使用数据。动态内存的分配与释放需要一组函数来实现,包括malloc、calloc、realloc和free。 malloc: 函数用于分配…...
施工现场安全管理系统
伴随着社会发展,各行各业都十分注重安全生产管理;建筑施工行业,由于施工环境具有复杂性、危险源较多、施工人员素质参差不齐等因素,导致安全事故时有发生;凡尔码施工安全管理系统,灵活根据施工现场管理要求…...
电线电缆行业生产管理MES系统解决方案
电线电缆行业生产管理mes系统核心功能 基础数据管理:对基础数据进行统一管理,包括组织架构、原材料数据、设备数据、报工数据、检验数据、员工数据等工艺与BOM管理:对工艺标准进行统一管理,包括工艺的版本管理、关联型号管理&…...
滑动窗口最大值和前K个高频元素
滑动窗口最大值和前K个高频元素 239. 滑动窗口最大值 核心:建立一个单调队列,维护里面的最大值,并且从大到小的顺序即可!【只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。…...
C语言实现在顺序表中找到最大值
用C语言实现在顺序表中找到最大值: #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
无需布线的革命:电力载波技术赋能楼宇自控系统 在楼宇自动化领域,传统控制系统依赖复杂的专用通信线路,不仅施工成本高昂,后期维护和扩展也极为不便。电力载波技术(PLC)的突破性应用,彻底改变了…...
数据挖掘是什么?数据挖掘技术有哪些?
目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...
