微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 命令查询处来。

原文地址:https://www.jb51.cc/postgresql/193495.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐