PostgreSQL使用经典的C/S架构的程序,这些应用程序可以分为两大类:客户端程序和服务器端程序;接下来就介绍一下这两类的程序;
客户端程序
客户端程序可以分为几大类,下面分别介绍:
1、封装 SQL 命令的客户端程序
clusterdb : CLUSTER 命令的封装,PostgreSQL是对表存储的,clusterdb通过索引对基于堆表的物理文件进行重新排序,类似 Oracle 聚簇表
reindexdb : REINDEX 命令的封装,在索引物理文件发生损坏或索引膨胀等情况发生时,使用reindexdb对指定的库或表进行索引重建
vacuumdb : VACUUM [FREEZE|FULL|ANALYZE] 命令的封装,对数据的物理文件进行垃圾回收
vacuumlo : 清理数据库中未引用的大对象
createdb/dropdb : CREATE DATABASE/DROP DATABASE命令的封装
createuser/dropuser: CREATE USER/DROP USER命令的封装
2、备份恢复的客户端程序
pg_basebackup : 获取正在运行中的 PostgreSQL 实例的基础备份
pg_dump/pg_dumpall : 以数据库转储的方式进行备份
pg_restore : 用来从 pg_dump 命令创建的非文本格式的备份中进行数据恢复
3、其他客户端程序
ecpg : 用于C 程序 PostgreSQL 嵌入式 SQL 预处理器,将 SQL 调用替换为特殊函数调用,转为普通 C 代码
oid2name : 解析数据目录中的 OID 和文件节点
pgbench : 基础测试工具,可模拟简单的压力测试
pg_config : 获取当前安装的PostgreSQL 的参数配置
pg_isready : 检测数据库服务器是否允许连接
pg_receivexlog : 从运行中的实例获取事务日志流
pg_recvlogical : 控制逻辑解码复制槽,及来自这种复制槽的流数据
psql : 连接 PG 的客户端命令行工具
服务器程序
initdb用来创建新的数据库目录
pg_archivecleanup用于清理PostgreSQL WAL归档文件的工具
pg_controldata显示数据库服务器的控制信息,例如目录版本、预写日志和检查点信息
pg_ctl初始化、启动、停止、控制数据库服务器的工具
pg_resetwal可以清除预写日志并且有选择地重置存储在pg_control文件中的一些控制信息。当服务器由于控制文件损坏,pg_resetwal可以作为最后的手段
pg_rewind是在master、slave角色发生切换是,将原master通过同步模式恢复,避免重做基础备份工具
pg_test_fsync可以通过一个快速的测试,了解系统使用哪一种与写日志的同步方法(wal_sync_method)最快,还可以在发生IO问题时提供诊断信息
pg_test_timing是一种度量系统计时开销以及确认系统时间绝对不会回退的工具
pg_upgrade是PostgreSQL的升级工具
pg_waldump用来将预写日志解析为可读的格式
postgres是PostgreSQL的服务器程序
postmaster可以从bin目录看到,是指向postgres服务器程序的一个软连接
到此,PostgreSQL客户端和服务器端程序先介绍到这里,如果文章对您有帮助,请您继续关注博主后续文章;