亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL如何配置參數處理系統

發布時間:2021-10-19 15:48:31 來源:億速云 閱讀:123 作者:柒染 欄目:大數據

本篇文章為大家展示了PostgreSQL如何配置參數處理系統,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

配置參數(或者叫GUC變量,grand unified configuration)常見的就是出現在 postgresql.conf 中的設置項,更多信息可查看文檔 19. Server Configuration ,本系列主要講他們在代碼中如何設置和發揮作用。

這個感覺要講清楚內容會很多,分幾篇寫,本篇主要講通用結構體各成員含義。

1、配置參數類型

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

每個類型有自己的定義結構體,同時它們又有一個通用結構體,見下。

2、參數定義通用結構體(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 */};

下邊挑重要的幾項逐個講解它們的作用。

3、配置參數名 name

無需多言

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

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

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

POSTMASTER只能在數據庫啟動時設置,啟動后及時修改也不會起作用,例如前邊文章提到的配置參數shared_buffers,修改它重新載入配置文件只會得到提示信息:parameter "shared_buffers" cannot be changed without restarting the server

SIGHUP可以在數據庫啟動時修改,或者使用HUP信號(命令pg_ctl reload)修改。它們不能在后端啟動(連接參數,有興趣可閱讀StartupPacket部分代碼)時或者在會話中(SET命令)修改。

config_generic 結構體定義前的注釋寫得很清楚,上下文定義參數允許在什么場景下修改。

5、分類 group

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

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

它們分別對應枚舉 config_group 的:FILE_LOCATIONSCONN_AUTHCONN_AUTH_SETTINGSCONN_AUTH_AUTHCONN_AUTH_SSL

這個似乎沒什么好解釋。

6、參數描述 short_desclong_desc

定義簡短和詳細的變量說明

7、標志位 flags

定義配置參數的的行為,例如:

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

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

8、其他成員的初始值

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

比如 vartype 表示配置參數的類型。

上述內容就是PostgreSQL如何配置參數處理系統,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新邵县| 东丰县| 垣曲县| 土默特左旗| 孝昌县| 江阴市| 黔江区| 晋中市| 滁州市| 安仁县| 高台县| 文水县| 金溪县| 蒙城县| 揭阳市| 乐至县| 浦县| 尉犁县| 三河市| 开鲁县| 罗城| 酒泉市| 涟源市| 社旗县| 漳浦县| 迁西县| 东兰县| 肃宁县| 永兴县| 景东| 浦县| 静乐县| 南城县| 秦安县| 武邑县| 郓城县| 普安县| 运城市| 舒兰市| 云梦县| 舞钢市|