postgresql核心架构--安装后的目录介绍

进程和内存架构图: 主进程: Postmaster 位于安装目录的bin目录下,主进程是整个数据库实例的总控进程,负责启动和关闭数据库实例。 可以运行postmaster、postgres命令并加上合适的参数启动数据库,实际上postmaster命令是一个指向postgres的链接。 更多的时候是通过pg_ctl来启动数据库,pg_ctl也是通过运行postgres来启动数据库的。 客户端每次与数据库建立连接时,postgresql数据库会启动一个服务进程来给这个连接服务,所以postgresql是进程架构模型。 当某个服务进程出现错误时,Postmaster主进程会自动完成系统的恢复。 辅助进程: SyslogLogger(系统日志)进程 在postgresql.conf文件中配置,参数为logging_collect=on 设置了日志文件的大小和存在时间,当达到条件时就会关闭旧的日志文件,并创建新的日志文件。 BgWriter(后台写)进程 周期性地把共享内存中的脏页写到磁盘上的进程。 当网数据库中插入或更新数据时,并不会马上把数据持久到数据文件中,主要是为了提高插入、更新、删除数据的性能。 通过 “bgwriter_”开头的配置参数来控制。 WaLWriter(预写式日志)进程 在修改数据之前,必须把这些修改操作记录到磁盘中,这样后面更新实际数据时,就不需要实时地把数据持久化到文件中了。 日志保存在pg_xlog下,每个xlog文件认大小是16MB. PgArch(归档)进程 在wal日志被覆盖前,把wal日志备份出来。 AutoVAcuum(系统自动清理)进程 PgStat(统计收集)进程 系统表pg_statistic中存储了PgStat收集的各类统计信息。 共享内存 主要用作数据块的缓冲区,以便提高读写性能。wal日志缓冲区和clog缓冲区也存在共享内存中。 本地内存 暂存一些不需要全局存储的数据。主要分为临时缓冲区,work_mem,maintenance_work_mem. 安装目录的结构 /usr/local/pgsql bin 二进制可执行文件目录 include 头文件目录 lib 动态库目录 share 文档和配置模板文件 数据目录的结构 一般使用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日志的目录 表空间的目录 创建完表空间后,会在表空间的根目录下生成带有“catelog version”的子目录,可由 pg_controldata 命令查询处来。

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...