-
share 目录存放着PostgreSQL的文档、 man、 示例文件以及一些扩展
-
include 目录是PostgreSQL的C、 C++的头文件
-
bin 目录就是PostgreSQL的应用程序了。
封装 SQL 命令的客户端程序
-
clusterdb:clusterdb 是 SQL CLUSTER 命令的一个封装。 PostgreSQL 是堆表存储的, clusterdb 通过索引对数据库中基于堆表的物理文件重新排序,它在一定场景下可以节省磁盘访问,加快查询速度。
举例如下:[postgres@pghost1 ~]$ /opt/pgsql/bin/clusterdb -h pghost1 -p 1921 -d my
-
reindexdb:reindexdb 是 SQL REINDEX 命令的一个封装。在索引物理文件发生损坏或索引膨胀等情况发生时,可以使用reindexdb命令对指定的表或者数据库重建索引并且删除旧的索引。
举例如下:[postgres@pghost1 ~]$ /opt/pgsql/bin/reindexdb -e -h pghost1 -p 1921 -
-
vacuumdb:vacuumdb 是 PostgreSQL 数据库独有的 VACUUM、VACUUM FREEZE 和 VACUUM FULL, VACUUM ANALYZE 这几个SQL命令的封装。 VACUUM 系列命令的主要职责是对数据的物理文件等的垃圾回收,是 PostgreSQL 中非常重要的一系列命令。
举例如下:
[postgres@pghost1 ~]$ /opt/pgsql/bin/vacuumdb -h pghost1 -p 1921 mydb
-
vacuumlo:vacuumlo用来清理数据库中未引用的大对象。
举例如下:[postgres@pghost1 ~]$ /opt/pgsql/bin/vacuumlo -h pghost1 -p 1921 mydb
-
createdb 和 dropdb:它们分别是 SQL 命令 CREATE DATABAS 和 DROP DATABASE 的封装。
例如在名为pghost1的主机, 端口为1921的实例中创建一个名为newdb的数据库, 并且加上注释, 命令如下所示:
[postgres@pghost1 ~]$ /opt/pgsql/bin/createdb -h pghost1 -p 1921 newdb "
删除名为newdb的数据库的命令如下所示:
[postgres@pghost1 ~]$ /opt/pgsql/bin/dropdb -h pghost1 -p 1921 newdb
-
createuser 和 dropuser:它们分别是 SQL 命令 CREATE USER 和 DROP USER 的封装。 可以通过帮助查看它们的参数说明。
例如创建一个名为 newuser 的非超级用户, newuser继承自 pg_monitor 系统角色, 只能有1个连接, 没有创建数据库的权限, 没有创建用户的权限, 并且立即给它设置密码, 命令如下所示:
[postgres@pghost1 ~]$ /opt/pgsql/bin/createuser -h pghost1 -p 1921 -c 1 Enter password for new role: Enter it again: CREATE ROLE newuser PASSWORD 'md518b2c3ec6fb3de0e33f5612ed3998fa4' NOSUP
是否超级用户、是否允许创建数据库、是否允许创建用户这三个权限可以使用--interactive参数提供交互界面, 使用更简单, 举例如下:
[postgres@pghost1 ~]$ /opt/pgsql/bin/createuser -h pghost1 -p 1921 -c 1 Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n CREATE ROLE newuser PASSWORD 'md545c93e6e78f597d46a41cfb08dea5ae3' NOSUP
删除名为newuser的用户的命令如下所示:
[postgres@pghost1 ~]$ /opt/pgsql/bin/dropuser -h pghost1 -p 192
-
pg_basebackup:取得一个正在运行中的PostgreSQL实例的基础备份。
-
pg_dump和pg_dumpall:都是以数据库转储方式进行备份的工具。
-
pg_restore:用来从pg_dump命令创建的非文本格式的备份中恢复数据。
-
oid2name:解析一个 PostgreSQL 数据目录中的 OID 和文件结点。
-
pgbench是运行基准测试的工具,平常我们可以用它模拟简单的压力测试。
-
pg_config:获取当前安装的 PostgreSQL 应用程序的配置参数。
-
pg_isready:工具用来检测数据库服务器是否已经允许接受连接。
-
pg_receivexlog:可以从一个运行中的实例获取事务日志的流。
-
pg_recvlogical:控制逻辑解码复制槽以及来自这种复制槽的流数据。
-
psql:是连接 PostgreSQL 数据库的客户端命令行工具, 是使用频率非常高的工具, 在客户端工具一章会专门讲解它的使用。
-
-h 参数指定需要连接的主机
-
-p 参数指定数据库实例的端口
-
-d 参数指定连接哪一个数据库,默认的是和连接所使用的用户的用户名同名的数据库
-
- 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) 最快, 还可以在发生I/O问题时提供诊断信息。
-
pg_test_timing:是一种度量系统计时开销以及确认系统时间绝不会回退的工具。
-
pg_upgrade:是 PostgreSQL 的升级工具
-
pg_waldump:用来将预写日志解析为可读的格式。
-
postgres:是 PostgreSQL 的服务器程序。
-
postmaster:可以从bin目录中看到, 是指向 postgres 服务器程序的一个软链接