PostgreSQL 安装目录的结构


摘要:

      pg采用的是常见的C/S架构,服务器端叫做postgres(服务器端的主程序和进程都叫这个名字,启动pg之后在服务器上至少可以看到6个postgres进程,对应于pg的几个主要的模块,并且每增加一个客户端连接,服务器段就会增加一个postgres进程来和客户端交互),管理所有的数据文件、接受客户端的连接、执行客户端提交的操作。客户端则可以是JDBC/ODBC、psql命令行客户端、嵌入式SQL客户端等等。

   pg的目录结构很清晰,一个是安装目录,默认在/usr/local/pgsql下。另外一个就是存放数据文件和配置文件的目录,文档中叫做cluster's data directory,内核分析中译作数据集簇。数据集簇通常叫做PGDATA。每个数据库实例都会有一个PGDATA,每台机器上可以并存多个不同的实例


1.根目录:

   bin           include           lib         share             

2.各个目录的整体内容:

        (1)bin:  二进制可执行文件目录,此目录下有postgres,psql等可执行程序.

        (2)include: 头文件目录.

        (3)lib 动态库目录,PG程序运行需要的动态库都在此目录下,如libpg.so.

        (4) share: 此目录下存放有文档和配置模板文件,一些扩展包的sql文件,在此目录的子目录extension下.

3.bin目录下,主要包括:服务端应用程序,客户端应用程序,扩展模块程序,其他四个部分.

        (1)服务端应用程序:  指用于控制和管理服务相关的应用程序,这些程序智能用于在数据库服务器所在主机上使用,常见的为 initdb,pg_ctl,createdb,createuser,dropdb,dropuser等。initdb用于创建新的postgresql数据集簇(实例),pg_ctl用于启动、停止或者重启postgresql服务,查看服务状态。

            语法: 

./initdb -D ../PGDATA [-W]    
./pg_ctl -D ../PGDATA  start\stop\restart
./crestedb\createuser mydb
./dropdb\dropuser mydb

        (2)客户端应用程序:指用于连接数据库,设置运行参数,操作数据的应用程序。这些应用一般可以在任何主机上运行,与数据库服务器所处位置无关。其中四个常用工具:psql,pg_dump,pg_restore等.

./psql mydb    #连接数据库
pg_dump [connection-option...] [option...] [dbname]  #备份数据库
pg_restore [connection-option...] [option...] [dbname]  #恢复数据库
       (3)扩展数据库: 扩展模块位于源码包中的contrib目录下,里面有些扩展模块编译后生成一个应用程序放在bin目录下,如pg bench(压力测试工具),pg_test_fsync(pg_test_fsync为 wal_sync_method报告以微秒计的平均文件同步操作时间, 也能被用来提示用于优化commit_delay值的方法),oid2name(解析一个PostgreSQL数据目录中的 OID 和文件结点) 这些扩展模块程序默认在编译时是没有加载的,需要时进入相应目录编译和安装

4.share 目录:包括doc,locale,postgresql文件.

   doc:保存文档模板文件.

    locale:储存语言包.

    postgresql:配置模板文件

            (1)extension:扩展包的sql文件.

            (2)timezone:时区文件.

            (3)timezonesets:时区设置文件

            (4)tsearch_data: 全局索引.

              以及pg_hba.conf ,pg_ident.conf,pg_service.conf 等配置模板文件.

5.PGDATA:数据目录.

          一般使用PGDATA指向数据目录的根目录,在安装时指定,所以,安装时选择一个目录作为数据目录的根目录,而且,每个数据库实录都需要有这个一个目录,目录初始化用initdb来完成。完成后根目录下就会生成3个配置文件

postgresql.conf : 数据库实例的主配置文件,基本上所有的配置参数都在此文件中;

pg_hba.conf: 认证配置文件,配置了允许哪些ip访问数据库,认证的方法是什么等信息;
pg_ident.conf :认证方式的用户映射文件。
此目录下还有一些子目录:
base:默认表空间目录,建立的表格储存在此目录中.
global: 一些共享系统表的目录
pg_clog: commit log的目录
pg_log:系统日志目录,在查询一些系统错误时就可查看此目录下的日志文件
pg_stat_tmp:统计信息的存储目录
pg_tblsp: 存储了指向各个用户自建表空间实际目录的链接方式
pg_twophase:使用两阶段提交功能时分布式事务的存储目录 
pg_xlog:wal日志的目录 

你可能感兴趣的:(postgresql)