加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

面试官:谈谈你对PG体系结构的理解?

发布时间:2019-07-27 09:33:15 所属栏目:编程 来源:波波说运维
导读:本日本文首要从日记文件、参数文件、节制文件、数据文件、redo日记(WAL)、靠山历程这六个方面来先容一下PostgreSQL的架构。 架构 PostgreSQL的首要架构如下: 一、日记文件 1. 日记文件种类 $PGDATA/log 运行日记(pg10之前为$PGDATA/pg_log) $PGDATA/pg_wa
副问题[/!--empirenews.page--]

本日本文首要从日记文件、参数文件、节制文件、数据文件、redo日记(WAL)、靠山历程这六个方面来先容一下PostgreSQL的架构。

架构

PostgreSQL的首要架构如下:

口试官:谈谈你对PG系统布局的领略?

一、日记文件

1. 日记文件种类

  • $PGDATA/log 运行日记(pg10之前为$PGDATA/pg_log)
  • $PGDATA/pg_wal 重做日记(pg10之前为$PGDATA/pg_xlog)
  • $PGDATA/pg_xact 事宜提交日记(pg10之前为$PGDATA/pg_clog)
  • 处事器日记,可以在启动的时辰指定,好比pg_ctl start -l ./alert.log

2.  运行日记

运行日记首要相干的参数如下,默认没有开启的话没有log目次,开启后会自动天生。

口试官:谈谈你对PG系统布局的领略?

口试官:谈谈你对PG系统布局的领略?

3. 事宜日记pg_xact

pg_xact是事宜提交日记,记录了事宜的元数据。默认开启。内容一样平常不能直接读。

4. 处事器日记

假如用pg_ctl启动的时辰没有指定-l参数来指定处事器日记,错误也许会输出到cmd前台。处事器日记记录了数据库的重要信息。

lsof或者可以过滤出在写的日记文件

  1. $lsof -c postgres| grep REG | grep -v /usr | grep -v /dev | grep -v /SYS 

二、参数文件

1. postgresql.conf

pg的首要参数文件,有很具体的声名和注释,和Oracle的pfile,MySQL的my.cnf相同。默认在$PGDATA下。许多参数修改后都必要重启。9.6之后支持了alter system来修改,修改后的会存在$PGDATA/postgresql.auto.conf下,可以reload可能 restart来使之见效。

首要的参数如下:

口试官:谈谈你对PG系统布局的领略?

口试官:谈谈你对PG系统布局的领略?

2. pg_hba.conf

这个是利害名单的配置。文件里有具体的参数声名,默认参数如下:

  • type 列有local,host,hostssl,hostnossl四种。local是当地认证
  • database 可所以all,可能指定的数据库
  • user列可所以all,可能详细的用户
  • address 可所以ip可能网段
  • method较量重要,有"trust", "reject", "md5", "password", "scram-sha-256", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert"这么多可选。trust是免密登录;reject是黑名单拒绝;md5是加密的暗码;password是没有加密的暗码;ident是Linux下PostgreSQL默认的local认证方法,往往能正确登录处事器的操纵体系用户(注:不是数据库用户)就能行使本用户映射的数据库用户不需暗码登录数据库

3. pg_ident.conf

pg_ident.con是用户映射设置文件。团结pg_hba.connf中,method为ident可以用特定的操纵体系用户和指定的数据库用户登录数据库。如下:

pg_ident.conf如下:

口试官:谈谈你对PG系统布局的领略?

pg_hba.conf如下:

口试官:谈谈你对PG系统布局的领略?

三、节制文件

1. 节制文件位置

  1. $PGDATA/global/pg_control 

节制文件在数据库目次的global目次下。节制文件记录了数据库的重要信息。

2. 查察节制文件

pg_controldata可以查察节制文件的内容

  1. $ pg_controldata $PGDATA 
  2. pg_control version number: 1100 
  3. Catalog version number: 201809051 
  4. Database system identifier: 6684270596680436587 #dbid 
  5. Database cluster state: in production # primary 
  6. pg_control last modified: Thu 16 May 2019 02:26:37 PM CST 
  7. Latest checkpoint location: 0/48812A0 
  8. Latest checkpoint's REDO location: 0/4881268 #redo 位置 
  9. Latest checkpoint's REDO WAL file: 000000010000000000000001 #wal文件号 
  10. Latest checkpoint's TimeLineID: 1 
  11. Latest checkpoint's PrevTimeLineID: 1 
  12. Latest checkpoint's full_page_writes: on 
  13. Latest checkpoint's NextXID: 0:572 #下一个事宜id 
  14. Latest checkpoint's NextOID: 16388 #下一个OID 
  15. ..... 

controlfile记录了数据库运行的一些信息,好比数据库id,是否open,wal的位置,checkpoint的位置,等等。controlfile是很重要的文件,数据库陈设和调解。

四、数据文件

1. page

pg中,每个索引和表都是一个单独的文件,pg中叫做page。默认是每个大于1G的page会被支解pg_class.relfilenode.1这样的文件。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读