PostgreSQL12客户端程序与服务器程序介绍
客户端程序
1. 封装SQL命令的客户端程序
clusterdb
clusterdb是SQL CLUSTER命令的一个封装。PostgreSQL是堆表存储的,clusterdb通过索引对数据库中基于堆表的物理文件重新排序,它在一定场景下可以节省磁盘访问,加快查询速度。
举例如下:
/web/pgsql12/bin/clusterdb -h 192.168.0.68 -U postgres -p 5432 -d testdb
reindexdb
reindexdb是SQL REINDEX命令的一个封装,在索引物理文件发生损坏或索引膨胀等情况发生时,可以使用reindexdb命令对指定的表或者数据库重建索引并且删除旧的索引。
举例如下:
/web/pgsql12/bin/reindexdb -e -h 192.168.0.68 -U postgres -p 5432 -d testdb
vacuumdb
vacuumdb是PostgreSQL数据库独有的VACUUM、VACUUM FREEZE和VACUUM FULL,VACUUM ANALYZE这几个SQL命令的封装。VACUUM系列命令的主要职责是对数据的物理文件等的垃圾回收,
是PostgreSQL中非常重要的一系列命令。
举例如下:
/web/pgsql12/bin/vacuumdb -h 192.168.0.68 -U postgres -p 5432 -d testdb
vacuumlo
vacuumlo用来清理数据库中未引用的大对象。
举例如下:
/web/pgsql12/bin/vacuumlo -h 192.168.0.68 -U postgres -p 5432 -d testdb
createdb和dropdb
创建一个名为newdb的数据库,并且加上注释,命令如下:
/web/pgsql12/bin/createdb -h 192.168.0.68 -U postgres -p 5432 newdb "New database."
删除名为newdb的数据库的命令如下:
/web/pgsql12/bin/dropdb -h 192.168.0.68 -U postgres -p 5432 newdb
createuser和dropuser
创建一个名为newuser的非超级用户,newuser继承自pg_monitor系统角色,只能有一个连接,没有创建数据库的权限,没有创建用户的权限,并且立即给它设置密码,命令如下:
/web/pgsql12/bin/createuser -h 192.168.0.68 -p 5432 -c 1 -g pg_monitor -D -R -S -P -e newuser
是否超级用户、是否允许创建数据库、是否允许创建用户者三个权限可以使用--interactive参数提供交互界面,使用更简单,举例如下:
/web/pgsql12/bin/createuser -h 192.168.0.68 -p 5432 -c 1 -g pg_monitor --interactive -e -P newuser
删除名为newuser的用户的命令如下:
/web/pgsql12/bin/dropuser -h 192.168.0.68 -p 5432 newuser
2. 备份与恢复的客户端程序
- pg_basebackup 取得一个正在运行中的PostgreSQL实例的基础备份。
- pg_dump和pg_dumpall都是以数据库转储方式进行备份的工具。
- pg_restore 用来从pg_dump命令创建的非文本格式的备份中恢复数据。
3. 其它客户端程序 - pgbench 是运行基准测试的工具,平常我们可以用它模拟简单的压力测试。
- pg_config 获取当前安装的PostgreSQL应用程序的配置参数。
- PostgrSQL包装了pg_isready工具用来检测数据库服务器是否已经允许接受连接。
- pg_receivexlog可以从一个运行中的实例获取事务日志的流。
- pg_recvlogical控制逻辑解码复制槽以及来自这种复制槽的流数据。
- psql是连接PostgreSQL数据库的客户端命令行工具,是使用频率非常高的工具。
服务器程序
服务器程序包括:
- initdb用来创建新的数据库目录。
- pg_archivecleanup清理PostgreSQL WAL归档文件的工具。
- pg_controldata显示数据库服务器的控制信息。
- pg_ctl是初始化、启动、停止、控制数据库服务器的工具。
- pg_resetwal可以清除预写日志并且有选择的重置存储在pg_control文件中的一些控制信息。当服务器由于控制文件损坏,pg_resetwal可以作为最后的手段。
- pg_rewind是在master、slave角色发生切换时,将原master通过同步模式恢复,避免重做基础备份的工具。
- pg_test_fsync可以通过一个快速的测试,了解系统使用哪一种预写日志的同步方法最快,还可以在发生I/O问题时提供诊断信息。
- pg_test_timing是一种度量系统计时开销以及确认系统时间绝不会回退的工具。
- pg_upgrade是PostgreSQL的升级工具。
- pg_waldump用来将预写日志解析为可读的格式。
- postgres是PostgreSQL的服务器程序。
- postmaster可以从bin目录看到,是指向postgres服务器程序的一个软链接。
本文来自博客园,作者:霸都运维,转载请注明原文链接:https://www.cnblogs.com/wangjie20200529/p/15151548.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!