postgresql自带指令命令系列三

news2024/11/17 19:50:18

目录

简介

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 --single

PostgreSQL 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

         postmasterpostgres的一个废弃的别名,一直使用软连接挂载到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释放未使用的大对象存储空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTA 输出三角形面积和周长

#include<stdio.h> #include<math.h>//使用sqrt需要使用此头文件 int main() {int a, b, c, d;float s, area, perimeter;scanf("%d %d %d", &a, &b, &c);if (a b < c || a c < b || b c < a)//三角形任意两边之和大于第三边pri…

【小白专用】在 vs 中使用 nuget 安装NPOI

C#操作Excel有多种方法&#xff0c;如通过数据库的方式来读写Excel的OleDb方式&#xff0c;但是OleDb方式需要安装微软office&#xff0c;还可以通过COM组件方式操作Excel&#xff0c;也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要…

【Linux】如何对文本文件进行有条件地划分?——cut命令

cut 命令可以根据一个指定的标记&#xff08;默认是 tab&#xff09;来为文本划分列&#xff0c;然后将此列显示。 例如想要显示 passwd 文件的第一列可以使用以下命令&#xff1a;cut –f 1 –d : /etc/passwd cut&#xff1a;用于从文件的每一行中提取部分内容的命令。-f 1&…

windows建立软链 报 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

当我执行网上提供的mklink 的时候&#xff0c;出现 mklink : 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。怎么回事&#xff0c;原来&#xff0c;要在执行的签名加 cmd /c 当我执行建立软链接时&#xff0c;提示 没有足够的权限&#xff0c;要用管理…

玩转大数据13: 数据伦理与合规性探讨

1. 引言 随着科技的飞速发展&#xff0c;数据已经成为了现代社会的宝贵资产。然而&#xff0c;数据的收集、处理和利用也带来了一系列的伦理和合规性问题。数据伦理和合规性不仅关乎个人隐私和权益的保护&#xff0c;还涉及到企业的商业利益和社会责任。因此&#xff0c;数据…

【ArcGIS微课1000例】0079:ArcGIS Earth根据经纬坐标生成点shapefile

本文以气象台站数据的生成为例,详细介绍ArcGIS Earth中导入X、Y经纬度坐标,生成Shapefile点数据的流程。 文章目录 一、气象台站分布二、添加经纬度坐标三、符号化设置四、另存为一、气象台站分布 根据气象台站的经纬度坐标,可以很方便的在各种GIS平台上生成点,并保存为多…

CPU运行AI模型记录

使用 CPU 运行 AI 模型 目前人工智能很火&#xff0c;但是手头没有合适的显卡&#xff0c;成了瓶颈和门槛&#xff0c;一直没机会试下。正好知乎上看到一篇文章&#xff0c; CPU 运行中文模型&#xff0c;最近换了台机器。垃圾佬 E5 平台&#xff0c;性能不高&#xff0c;但是…

附录A SQL入门之样例表

编写SQL语句需要良好地理解基本数据库设计。如果不知道什么信息存放在什么表中&#xff0c;表与表之间如何互相关联&#xff0c;行中数据如何分解&#xff0c;那么要编 写高效的SQL是不可能的。 强烈建议读者实际练习本书的每个例子。所有课都共同使用了一组数据文件。为帮助你…

Linux CentOS 7.6安装jdk1.8教程

安装教程 第一种方式&#xff08;通过yum安装&#xff09;&#xff1a;第一步&#xff1a;输入查找命令&#xff1a;第二步&#xff1a;输入安装命令&#xff1a;第三步&#xff1a;安装完成&#xff0c;输入安装命令后&#xff0c;等到出现Complete&#xff01;代表安装完成第…

springboot+jdbcTemplate+sqlite编程示例——以沪深300成分股数据处理为例

引言 我们在自己做一些小的项目或者小的数据处理分析的时候&#xff0c;很多时候是不需要用到mysql这样的大型数据库&#xff0c;并且也不需要用到maven这样很重的框架的&#xff0c;取而代之可以使用jdbcTemplatesqlite这样的组合。 本文就介绍一下使用springbootjdbcTempla…

画对比折线图【Python】

出这一期想必是我做某个课程作业遇到了。 由于去各个官网下载对比图要钱&#xff0c;我还是不想花钱的&#xff01;真讨厌&#xff01;浅浅水一期。 以下是要做的对比图的数据&#xff1a; 代码&#xff1a; from matplotlib import pyplot as plt#设置中文显示plt.rcParams[…

C语言 题目

1.写一个函数算一个数的二进制(补码)表示中有几个1 #include<stdio.h>//统计二进制数中有几个1 //如13:1101 //需要考虑负数情况 如-1 结果应该是32// n 1101 //n-1 1100 //n 1100 //n-1 1011 //n 1000 //n-1 0111 //n 0000 //看n的变化 int funca(int c){int co…

浪潮信息 KeyarchOS 安全可信攻防体验

1. KeyarchOS——云峦操作系统简介 KeyarchOS 即云峦服务器操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统&#xff0c;支持 x86、ARM 等主流架构处理器&#xff0c;广泛兼容传统 CentOS 生态产品和创新技术产品&#xff0c;可为用…

【Delphi】一个函数实现ios,android震动功能 Vibrate(包括3D Touch 中 Peek 震动等)

一、前言 我们在开发移动端APP的时候&#xff0c;有时可能需要APP能够提供震动功能&#xff0c;以便提醒操作者&#xff0c;特别是ios提供的3D Touch触感功能&#xff0c;操作者操作时会有触感震动&#xff0c;给操作者的感觉很友好。那么&#xff0c;在Delphi的移动端FMX开发中…

Java群聊程序

先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class QLFWD{public static ServerSocket server_socket;public static ArrayList<S…

Nacos 基础篇:Nacos简介、基本概念、基本架构、Standalone单机搭建部署

文章目录 什么是Nacos基本架构逻辑架构及其组件介绍领域模型数据模型服务领域模型配置领域模型 下载目录结构配置启动 什么是Nacos Nacos&#xff1a;(Dynamic) Naming and Configuration Service&#xff0c;动态的服务发现和配置的服务&#xff0c;是一个更易于构建云原生应…

二维码智慧门牌管理系统升级:社区关怀

文章目录 前言一、系统的工作原理二、系统功能与关怀服务三、社区关怀的意义 前言 随着科技的发展&#xff0c;生活日益智能化&#xff0c;门牌系统也随之发展。近日&#xff0c;一种新型的二维码智慧门牌管理系统正在崛起&#xff0c;以创新的方式将社区关怀融入到每一个家庭…

浮点数在计算机中如何存储

举例&#xff1a; 结果&#xff1a; 文字描述&#xff1a; 先将浮点数转化为二进制的表示形式&#xff0c; 接着将其二进制的形式按照科学计数法来表示&#xff0c; 符号位的确定&#xff1a;正数0&#xff0c; 负数1 指数的确定&#xff1a;将其二进制表示成为科学计数法…

通过Nginx的log日志对站点进行数据统计

文章目录 前言统计独立ip访问数量查看访问最频繁的前100个IP查看访问100次以上的IP查询某个IP的详细访问情况,按访问频率排序统计所有的PV数统计当天的PV数查看访问最频的页面(TOP100)每分钟请求量统计每小时请求量统计可视化报表工具 前言 请自行确认nginx的日志是否开始且知…

Windows使用Redis

Windows使用Redis 前言一、安装wsl2&#xff08;Windows Subsystem for Linux&#xff09;二、在wsl中下载并安装Redis一主二仆哨兵模式 前言 主要是记录一下&#xff0c;免得自己忘了。 一、安装wsl2&#xff08;Windows Subsystem for Linux&#xff09; Redis官网中说&…