PostgreSQL:引數簡介

Ryan_Bai發表於2020-12-15

該檔案是 PostgreSQL 的引數檔案,該檔案中配置了 PostgreSQL 啟動所讀取的初始化引數,如果沒有指定初始化引數,使用預設的初始化引數啟動。類似於 Oracle 中的初始化引數檔案。

分類

  • internal:這些引數是隻讀引數,其中有些引數是 postgres 程式寫死的,或者使用一些不同的編輯選項確定的;有些引數是資料庫例項初始化時就確定了的,之後就不能再改變此引數值了。這類引數值不能配置在 postgresql.conf 中,因為它們是由 postgres 程式和在初始化例項時寫死的。

  • postmaster:改變這些引數值需要重啟 PostgreSQL 例項。在 postgresql.conf 檔案中改變這些引數後,需要重啟 PostgreSQL 例項才能生效。

  • sighup:在 posgtresql.conf 檔案中可改變這些引數的值,不需要重啟資料庫,只需要向 postmaster 程式傳送 SIGHUP 訊號,讓其重啟配置新的引數值就可以了。postmaster 程式接收到 SIGHUP 訊號後,也會向它的子程式傳送 SIGHUP 訊號,讓新的引數值在所有的程式中都生效。

  • backend:在 postgresql.conf 更改這些設定無需重啟伺服器,只需要 postmaster 傳送一個 SIGHUP 訊號,讓它重新讀取 postgresql.conf 中新的配置值即可,但新的配置值只會出現在這之後的新連線中,在已有的連線中,這些引數的值不會改變。這些引數的值也可以在新連線時,由連線的一些引數改變。

  • superuser:這類引數可以由超級使用者使用 set 來改變。而超級使用者改變引數值時,只會影響自身的 session 配置,不會影響其他使用者。向 postmaster 程式傳送 SIGHUP 訊號,也只會影響後續建的連線,不會影響現有的連線。

  • user:普通使用者可使用 set 命令透過此類引數來改變本連線中的配置值。除了普通使用者都可以改變外,這類引數與 superuser 類引數沒有區別。

修改引數

  • 全域性配置修改

    • 修改 postgresql.conf 配置檔案(用於永久修改,需要重啟資料庫)

    • 透過 ALTER SYSTEM 命令修改

      ALTER SYSTEM SET listen_addresses='*';

      會自動編輯 postgresql.auto.conf 檔案,在資料庫啟動時會載入此檔案,並用它的配置覆蓋 postgresql.conf 中已有的配置(不要手動修改它)

  • 非全域性配置修改

    • DATABASE 級別

      ALTER DATABASE <庫名> SET listen_addresses='*';
      ALTER DATABASE <庫名> RESET listen_addresses
    • SESSION 級別

      • SET 命令

        SET listen_addresses='*';
        SET listen_addresses TO DEFAULT;
      • PG_SETTINGS 檢視

        UPDATE `pg_settings`
           SET setting = '*'
         WHERE name = 'listen_addresses'
      • set_config

        SELECT set_config('configparameter',new_value,false)
    • ROLE 級別

      ALTER ROLE <角色名> IN DATABASE <庫名> SET listen_addresses='*';
      ALTER ROLE <角色名> IN DATABASE <庫名> RESET listen_addresses

檢視引數

  • 資料字典檢視

  • SELECT name,setting 
      FROM pg_settings
     WHERE name ~ 'xxx';
    SELECT current_setting(name);
  • show all

引數生效

pg_ctl -D /pgdata/10/data reload
SELECT pg_reload_conf()

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2742274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章