面试官:谈谈你对PG体系结构的理解?
副标题[/!--empirenews.page--]
今天本文主要从日志文件、参数文件、控制文件、数据文件、redo日志(WAL)、后台进程这六个方面来介绍一下PostgreSQL的架构。 架构 PostgreSQL的主要架构如下: 一、日志文件 1. 日志文件种类
2. 运行日志 运行日志主要相关的参数如下,默认没有开启的话没有log目录,开启后会自动生成。 3. 事务日志pg_xact pg_xact是事务提交日志,记录了事务的元数据。默认开启。内容一般不能直接读。 4. 服务器日志 如果用pg_ctl启动的时候没有指定-l参数来指定服务器日志,错误可能会输出到cmd前台。服务器日志记录了数据库的重要信息。 lsof或许可以过滤出在写的日志文件
二、参数文件 1. postgresql.conf pg的主要参数文件,有很详细的说明和注释,和Oracle的pfile,MySQL的my.cnf类似。默认在$PGDATA下。很多参数修改后都需要重启。9.6之后支持了alter system来修改,修改后的会存在$PGDATA/postgresql.auto.conf下,可以reload或者 restart来使之生效。 主要的参数如下: 2. pg_hba.conf 这个是黑白名单的设置。文件里有详细的参数说明,默认参数如下:
3. pg_ident.conf pg_ident.con是用户映射配置文件。结合pg_hba.connf中,method为ident可以用特定的操作系统用户和指定的数据库用户登录数据库。如下: pg_ident.conf如下: pg_hba.conf如下: 三、控制文件 1. 控制文件位置
控制文件在数据库目录的global目录下。控制文件记录了数据库的重要信息。 2. 查看控制文件 pg_controldata可以查看控制文件的内容
controlfile记录了数据库运行的一些信息,比如数据库id,是否open,wal的位置,checkpoint的位置,等等。controlfile是很重要的文件,数据库部署和调整。 四、数据文件 1. page pg中,每个索引和表都是一个单独的文件,pg中叫做page。默认是每个大于1G的page会被分割pg_class.relfilenode.1这样的文件。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |