前端之家收集整理的这篇文章主要介绍了
postgresql核心架构--安装后的目录介绍,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
进程和内存架构图: 主进程: Postmaster 位于安装目录的bin目录下,主进程是整个
数据库实例的总控进程,负责启动和
关闭该
数据库实例。 可以运行postmaster、postgres命令并
加上合适的参数启动
数据库,实际上postmaster命令是一个指向postgres的
链接。 更多的时候是通过pg_ctl来启动
数据库,pg_ctl也是通过运行postgres来启动
数据库的。 客户端每次与
数据库建立连接时,postgre
sql数据库会启动一个服务进程来给这个连接服务,所以postgre
sql是进程架构模型。 当某个服务进程出现
错误时,Postmaster主进程会
自动完成系统的恢复。 辅助进程: SyslogLogger(系统日志)进程 在postgre
sql.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/pg
sql bin 二进制可执行
文件目录 include 头
文件目录 lib 动态库目录 share 文档和配置模板
文件 数据目录的结构 一般使用PGDATA指向数据目录的根目录。这个目录是在安装时指定的 目录的初始化使用initdb来完成,完成后根目录下就会
生成3个
配置文件 postgre
sql.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 命令
查询处来。
原文链接:https://www.f2er.com/postgresql/193495.html