成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維 架構(gòu)
今天本文主要從日志文件、參數(shù)文件、控制文件、數(shù)據(jù)文件、redo日志(WAL)、后臺(tái)進(jìn)程這六個(gè)方面來介紹一下PostgreSQL的架構(gòu)。

今天本文主要從日志文件、參數(shù)文件、控制文件、數(shù)據(jù)文件、redo日志(WAL)、后臺(tái)進(jìn)程這六個(gè)方面來介紹一下PostgreSQL的架構(gòu)。

架構(gòu)

PostgreSQL的主要架構(gòu)如下:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

一、日志文件

1. 日志文件種類

  • $PGDATA/log 運(yùn)行日志(pg10之前為$PGDATA/pg_log)
  • $PGDATA/pg_wal 重做日志(pg10之前為$PGDATA/pg_xlog)
  • $PGDATA/pg_xact 事務(wù)提交日志(pg10之前為$PGDATA/pg_clog)
  • 服務(wù)器日志,可以在啟動(dòng)的時(shí)候指定,比如pg_ctl start -l ./alert.log

2.  運(yùn)行日志

運(yùn)行日志主要相關(guān)的參數(shù)如下,默認(rèn)沒有開啟的話沒有l(wèi)og目錄,開啟后會(huì)自動(dòng)生成。

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

3. 事務(wù)日志pg_xact

pg_xact是事務(wù)提交日志,記錄了事務(wù)的元數(shù)據(jù)。默認(rèn)開啟。內(nèi)容一般不能直接讀。

4. 服務(wù)器日志

如果用pg_ctl啟動(dòng)的時(shí)候沒有指定-l參數(shù)來指定服務(wù)器日志,錯(cuò)誤可能會(huì)輸出到cmd前臺(tái)。服務(wù)器日志記錄了數(shù)據(jù)庫(kù)的重要信息。

lsof或許可以過濾出在寫的日志文件

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

二、參數(shù)文件

1. postgresql.conf

pg的主要參數(shù)文件,有很詳細(xì)的說明和注釋,和Oracle的pfile,MySQL的my.cnf類似。默認(rèn)在$PGDATA下。很多參數(shù)修改后都需要重啟。9.6之后支持了alter system來修改,修改后的會(huì)存在$PGDATA/postgresql.auto.conf下,可以reload或者 restart來使之生效。

主要的參數(shù)如下:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

2. pg_hba.conf

這個(gè)是黑白名單的設(shè)置。文件里有詳細(xì)的參數(shù)說明,默認(rèn)參數(shù)如下:

  • type 列有l(wèi)ocal,host,hostssl,hostnossl四種。local是本地認(rèn)證
  • database 可以是all,或者指定的數(shù)據(jù)庫(kù)
  • user列可以是all,或者具體的用戶
  • address 可以是ip或者網(wǎng)段
  • method比較重要,有"trust", "reject", "md5", "password", "scram-sha-256", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert"這么多可選。trust是免密登錄;reject是黑名單拒絕;md5是加密的密碼;password是沒有加密的密碼;ident是Linux下PostgreSQL默認(rèn)的local認(rèn)證方式,凡是能正確登錄服務(wù)器的操作系統(tǒng)用戶(注:不是數(shù)據(jù)庫(kù)用戶)就能使用本用戶映射的數(shù)據(jù)庫(kù)用戶不需密碼登錄數(shù)據(jù)庫(kù)

3. pg_ident.conf

pg_ident.con是用戶映射配置文件。結(jié)合pg_hba.connf中,method為ident可以用特定的操作系統(tǒng)用戶和指定的數(shù)據(jù)庫(kù)用戶登錄數(shù)據(jù)庫(kù)。如下:

pg_ident.conf如下:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

pg_hba.conf如下:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

三、控制文件

1. 控制文件位置

  1. $PGDATA/global/pg_control 

控制文件在數(shù)據(jù)庫(kù)目錄的global目錄下??刂莆募涗浟藬?shù)據(jù)庫(kù)的重要信息。

2. 查看控制文件

pg_controldata可以查看控制文件的內(nèi)容

  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文件號(hào) 
  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 #下一個(gè)事務(wù)id 
  14. Latest checkpoint's NextOID: 16388 #下一個(gè)OID 
  15. ..... 

controlfile記錄了數(shù)據(jù)庫(kù)運(yùn)行的一些信息,比如數(shù)據(jù)庫(kù)id,是否open,wal的位置,checkpoint的位置,等等。controlfile是很重要的文件,數(shù)據(jù)庫(kù)部署和調(diào)整。

四、數(shù)據(jù)文件

1. page

pg中,每個(gè)索引和表都是一個(gè)單獨(dú)的文件,pg中叫做page。默認(rèn)是每個(gè)大于1G的page會(huì)被分割pg_class.relfilenode.1這樣的文件。

Page默認(rèn)大小為8KB,最大32KB,一個(gè)數(shù)據(jù)塊中可存放多行的數(shù)據(jù)。塊中的結(jié)構(gòu)如下圖:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

塊頭記錄了如下信息:

  • 塊的checksum值
  • 空閑空間的起始位置和結(jié)束位置
  • 特殊數(shù)據(jù)的起始位置
  • 其他一些信息
  • 行指針是一個(gè)32bit的數(shù)字,具體結(jié)構(gòu)如下:
  • 行內(nèi)容的偏移量,占15bit;
  • 指針的標(biāo)記,占2bit;
  • 行內(nèi)容的長(zhǎng)度,占15bit。

行指針中表示行內(nèi)容的偏移量是15bit,能表示的最大偏移量是2^15=32768,因此塊的最大大小是32768,即32KB。

2. page物理位置

page的物理位置在$PGDATA/BASE/DATABASE_OID/PG_CLASS.RELFILENODE

需要注意的是,pg_class.relfilenode類似dba_objects.data_object_id,truncate表之后relfilenode會(huì)變。對(duì)應(yīng)的物理文件名字也會(huì)變。

五、WAL日志

1. wal位置

wal在$PGDATA/pg_wal下。10之前為pg_xlog

2. wal命名格式

文件名稱為16進(jìn)制的24個(gè)字符組成,每8個(gè)字符一組,每組的意義如下

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

3. 手動(dòng)切換WAL日志的命令

在PG10之前:

  1. highgo=# select pg_switch_xlog(); 
  2.  pg_switch_xlog  
  3. ---------------- 
  4.  0/B000C48 
  5. (1 row) 

在PG10之后:

  1. highgo=# select pg_switch_wal(); 
  2.  pg_switch_wal  
  3. ---------------- 
  4.  0/B000C48 
  5. (1 row) 

六、后臺(tái)進(jìn)程

pg后臺(tái)進(jìn)程說明如下:

面試官:談?wù)勀銓?duì)PG體系結(jié)構(gòu)的理解?

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2025-02-21 15:25:54

虛擬線程輕量級(jí)

2024-09-27 15:43:52

零拷貝DMAIO

2022-03-21 09:05:18

volatileCPUJava

2024-10-24 16:14:43

數(shù)據(jù)傳輸CPU零拷貝

2025-03-21 00:00:05

Reactor設(shè)計(jì)模式I/O 機(jī)制

2024-06-13 08:01:19

2024-08-27 12:36:33

2024-10-12 16:25:12

2024-08-26 14:52:58

JavaScript循環(huán)機(jī)制

2024-09-26 16:01:52

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

2025-04-09 00:00:00

2024-08-23 09:02:56

2020-12-01 08:47:36

Java異常開發(fā)

2020-06-12 15:50:56

options前端服務(wù)器

2021-11-05 10:07:13

Redis哈希表存儲(chǔ)

2020-06-19 15:32:56

HashMap面試代碼

2021-09-16 07:52:18

算法應(yīng)用場(chǎng)景
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产在线一区二区三区 | 在线伊人 | 欧美一区二区三区在线观看 | 亚洲国产成人av好男人在线观看 | 麻豆精品久久久 | 日韩精品免费在线观看 | 欧美精品一区二区三区蜜桃视频 | 日本福利视频 | 一区二区激情 | 一区二区三区国产 | 一级黄色片网址 | 日韩一区二区在线观看 | 九七午夜剧场福利写真 | xxxxx免费视频 | 97成人在线| 日韩欧美在线观看 | 国产精品国产三级国产aⅴ入口 | 国产精品国产三级国产aⅴ无密码 | 99在线免费观看视频 | 国产成人精品一区二区在线 | 久久国产精品久久久久久 | 九九99久久 | 天天插天天操 | 国产精品日本一区二区在线播放 | 一级片网址 | 国产色网站 | 国产精久久久久久久 | 黄色大片免费观看 | 久草福利| 在线日韩精品视频 | 色精品视频 | 一区二区三区四区不卡视频 | 日韩精品一二三区 | 亚洲系列第一页 | 91精品国产乱码久久久久久久久 | av毛片 | av大全在线观看 | www.av7788.com| 国产日韩欧美电影 | 久久久综合网 | 欧美精品在线一区 |