久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    [轉帖]超詳細的PostgreSQL體系結構總結,值得收藏

     印度阿三17 2019-10-09

    超詳細的PostgreSQL體系結構總結,值得收藏

    https://www.toutiao.com/i6715390855772897800/

    ?

    原創?波波說運維?2019-07-26 00:03:00

    概述

    今天本文主要從日志文件、參數文件、控制文件、數據文件、redo日志(WAL)、后臺進程這六個方面來介紹一下PostgreSQL的架構。


    架構

    PostgreSQL的主要架構如下:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    ?


    一、日志文件

    1、日志文件種類

    1)$PGDATA/log 運行日志(pg10之前為$PGDATA/pg_log)

    2)$PGDATA/pg_wal 重做日志(pg10之前為$PGDATA/pg_xlog)

    3)$PGDATA/pg_xact 事務提交日志(pg10之前為$PGDATA/pg_clog)

    4)服務器日志,可以在啟動的時候指定,比如pg_ctl start -l ./alert.log

    2、 運行日志

    運行日志主要相關的參數如下,默認沒有開啟的話沒有log目錄,開啟后會自動生成。

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    ?

    3、事務日志pg_xact

    pg_xact是事務提交日志,記錄了事務的元數據。默認開啟。內容一般不能直接讀。

    4、 服務器日志

    如果用pg_ctl啟動的時候沒有指定-l參數來指定服務器日志,錯誤可能會輸出到cmd前臺。服務器日志記錄了數據庫的重要信息。

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

    $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來使之生效。

    主要的參數如下:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    ?

    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如下:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    pg_hba.conf如下:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?


    三、控制文件

    1、 控制文件位置

    $PGDATA/global/pg_control

    控制文件在數據庫目錄的global目錄下。控制文件記錄了數據庫的重要信息。

    2、 查看控制文件

    pg_controldata可以查看控制文件的內容

    $ pg_controldata $PGDATA
    pg_control version number: 1100
    Catalog version number: 201809051
    Database system identifier: 6684270596680436587 #dbid
    Database cluster state: in production # primary
    pg_control last modified: Thu 16 May 2019 02:26:37 PM CST
    Latest checkpoint location: 0/48812A0
    Latest checkpoint's REDO location: 0/4881268 #redo 位置
    Latest checkpoint's REDO WAL file: 000000010000000000000001 #wal文件號
    Latest checkpoint's TimeLineID: 1
    Latest checkpoint's PrevTimeLineID: 1
    Latest checkpoint's full_page_writes: on
    Latest checkpoint's NextXID: 0:572 #下一個事務id
    Latest checkpoint's NextOID: 16388 #下一個OID
    .....

    controlfile記錄了數據庫運行的一些信息,比如數據庫id,是否open,wal的位置,checkpoint的位置,等等。controlfile是很重要的文件,數據庫部署和調整。


    四、數據文件

    1、page

    pg中,每個索引和表都是一個單獨的文件,pg中叫做page。默認是每個大于1G的page會被分割pg_class.relfilenode.1這樣的文件。

    Page默認大小為8KB,最大32KB,一個數據塊中可存放多行的數據。塊中的結構如下圖:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    塊頭記錄了如下信息:

    • 塊的checksum值
    • 空閑空間的起始位置和結束位置
    • 特殊數據的起始位置
    • 其他一些信息
    • 行指針是一個32bit的數字,具體結構如下:
    • 行內容的偏移量,占15bit;
    • 指針的標記,占2bit;
    • 行內容的長度,占15bit。

    行指針中表示行內容的偏移量是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會變。對應的物理文件名字也會變。


    五、WAL日志

    1、wal位置

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

    2、wal命名格式

    文件名稱為16進制的24個字符組成,每8個字符一組,每組的意義如下

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    3、手動切換WAL日志的命令

    在PG10之前:

    highgo=# select pg_switch_xlog();
    pg_switch_xlog
    ----------------
    0/B000C48
    (1 row)

    在PG10之后:

    highgo=# select pg_switch_wal();
    pg_switch_wal
    ----------------
    0/B000C48
    (1 row)

    六、后臺進程

    pg后臺進程說明如下:

    超詳細的PostgreSQL體系結構總結,值得收藏

    ?

    來源:https://www./content-2-496051.html

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 婷婷五月综合丁香在线| 成人久久免费网站| 国产 亚洲 制服 无码 中文| 精品不卡一区二区三区| 国产精品点击进入在线影院高清| 无码国内精品人妻少妇| 综合激情亚洲丁香社区| 最新中文字幕AV无码专区不| 亚洲精品人妻中文字幕| 1000部拍拍拍18勿入免费视频| 天天爽夜夜爱| 精品一区二区三区在线播放视频 | 国偷自产一区二区三区在线视频| 中文字幕无码免费久久99| 亚洲国产精品综合久久20| 久久综合九色综合97欧美| 无码人妻精品一区二区三区下载| 久久精品无码鲁网中文电影| 亚洲精品宾馆在线精品酒店| 亚洲伊人久久精品影院| 无码国产偷倩在线播放| 高清看男人插曲女人视频| 欧洲免费一区二区三区视频| 色8久久人人97超碰香蕉987| 性欧美vr高清极品| 亚洲国产精品自产在线播放| 亚洲色欲色欱WWW在线| 日韩精品久久久肉伦网站| 午夜大片爽爽爽免费影院| 在线涩涩免费观看国产精品| 国产免费踩踏调教视频| 久久久久免费看成人影片| 精品午夜福利在线观看| 亚洲 制服 丝袜 无码| √天堂中文www官网在线| 免费久久人人爽人人爽AV| 99视频30精品视频在线观看| 久久人与动人物a级毛片| 亚洲精品欧美二区三区中文字幕| 成 人色 网 站 欧美大片| 加勒比无码人妻东京热|