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

来源:互联网 发布:淘宝返利机器人微信 编辑:程序博客网 时间:2024/06/08 17:45

进程和内存架构图:
主进程:
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 命令查询处来。


 
原创粉丝点击