PostgreSQL如何配置參數(shù)處理系統(tǒng)

本篇文章為大家展示了PostgreSQL如何配置參數(shù)處理系統(tǒng),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供鑲黃網(wǎng)站建設(shè)、鑲黃做網(wǎng)站、鑲黃網(wǎng)站設(shè)計(jì)、鑲黃網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、鑲黃企業(yè)網(wǎng)站模板建站服務(wù),十余年鑲黃做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

配置參數(shù)(或者叫GUC變量,grand unified configuration)常見的就是出現(xiàn)在 postgresql.conf 中的設(shè)置項(xiàng),更多信息可查看文檔 19. Server Configuration ,本系列主要講他們?cè)诖a中如何設(shè)置和發(fā)揮作用。

這個(gè)感覺要講清楚內(nèi)容會(huì)很多,分幾篇寫,本篇主要講通用結(jié)構(gòu)體各成員含義。

1、配置參數(shù)類型

布爾、整形、浮點(diǎn)(雙精度)、字符串、枚舉

每個(gè)類型有自己的定義結(jié)構(gòu)體,同時(shí)它們又有一個(gè)通用結(jié)構(gòu)體,見下。

2、參數(shù)定義通用結(jié)構(gòu)體(src/include/utils/guc_tables.h

struct config_generic{  /* constant fields, must be set correctly in initial value: */
  const char *name;     /* name of variable - MUST BE FIRST */
  GucContext  context;    /* context required to set the variable */
  enum config_group group;  /* to help organize variables by function */
  const char *short_desc;   /* short desc. of this variable's purpose */
  const char *long_desc;    /* long desc. of this variable's purpose */
  int     flags;      /* flag bits, see guc.h */
  /* variable fields, initialized at runtime: */
  enum config_type vartype; /* type of variable (set only at startup) */
  int     status;     /* status bits, see below */
  GucSource source;     /* source of the current actual value */
  GucSource reset_source; /* source of the reset_value */
  GucContext  scontext;   /* context that set the current value */
  GucContext  reset_scontext; /* context that set the reset value */
  GucStack   *stack;      /* stacked prior values */
  void     *extra;      /* "extra" pointer for current actual value */
  char     *sourcefile;   /* file current setting is from (NULL if not * set in config file) */
  int     sourceline;   /* line in source file */};

下邊挑重要的幾項(xiàng)逐個(gè)講解它們的作用。

3、配置參數(shù)名 name

無需多言

4、參數(shù)所在上下文 contextsrc/include/utils/guc.h

typedef enum{  PGC_INTERNAL,  PGC_POSTMASTER,  PGC_SIGHUP,  PGC_SU_BACKEND,  PGC_BACKEND,  PGC_SUSET,  PGC_USERSET} GucContext;

INTERNAL不允許修改,或者說不允許編譯后修改,部分參數(shù)是可以在編譯時(shí)定義的,比如塊大小。編譯完成后如果修改編譯出新程序,很可能會(huì)造成無法啟動(dòng)已經(jīng)初始化好的data cluster。
簡(jiǎn)單說,這類參數(shù)只允許 show 命令查看。

POSTMASTER只能在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)設(shè)置,啟動(dòng)后及時(shí)修改也不會(huì)起作用,例如前邊文章提到的配置參數(shù)shared_buffers,修改它重新載入配置文件只會(huì)得到提示信息:parameter "shared_buffers" cannot be changed without restarting the server。

SIGHUP可以在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)修改,或者使用HUP信號(hào)(命令pg_ctl reload)修改。它們不能在后端啟動(dòng)(連接參數(shù),有興趣可閱讀StartupPacket部分代碼)時(shí)或者在會(huì)話中(SET命令)修改。

config_generic 結(jié)構(gòu)體定義前的注釋寫得很清楚,上下文定義參數(shù)允許在什么場(chǎng)景下修改。

5、分類 group

在文檔里可以清楚的看到參數(shù)的分類,以v11文檔為例:

19.2. File Locations
19.3. Connections and Authentication
    19.3.1. Connection Settings
    19.3.2. Authentication
    19.3.3. SSL

它們分別對(duì)應(yīng)枚舉 config_group 的:FILE_LOCATIONS、CONN_AUTHCONN_AUTH_SETTINGS、CONN_AUTH_AUTHCONN_AUTH_SSL

這個(gè)似乎沒什么好解釋。

6、參數(shù)描述 short_desclong_desc

定義簡(jiǎn)短和詳細(xì)的變量說明

7、標(biāo)志位 flags

定義配置參數(shù)的的行為,例如:

GUC_LIST_INPUT 輸入可以是列表格式GUC_NO_SHOW_ALL 不包含在SHOW ALL命令的結(jié)果中

更多定義可查看src/include/utils/guc.h

8、其他成員的初始值

剩下的成員在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)初始化,guc.c里的初始定義不包括它們(只看了一部分,應(yīng)該是這樣的)。

比如 vartype 表示配置參數(shù)的類型。

上述內(nèi)容就是PostgreSQL如何配置參數(shù)處理系統(tǒng),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:PostgreSQL如何配置參數(shù)處理系統(tǒng)
分享路徑:http://muchs.cn/article0/gdecoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、企業(yè)網(wǎng)站制作靜態(tài)網(wǎng)站、企業(yè)建站網(wǎng)站設(shè)計(jì)公司、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)