<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 18.1\. 設置參數 ## 18.1.1\. 參數名和值 所有參數名都是大小寫不敏感的。每個參數都可以接受四種類型之一: 布爾、整數、浮點數、字符串。布爾值可以是(都是大小寫無關) `on`, `off`, `true`, `false`, `yes`, `no`, `1`, `0` 或這些東西的任意清晰無歧義的前綴。 一些設置指定內存或時間值,其隱含的單位可能是: kB(千字節)、塊(通常是8KB)、毫秒、秒、分鐘等等。 隱含單位可以通過引用`pg_settings`.`unit`獲取。為了避免混淆, 可以在指定數值的同時指定單位。可用內存單位:`kB`(千字節), `MB`(兆字節), `GB`(吉字節); 可用時間單位:`ms`(毫秒), `s`(秒), `min`(分鐘), `h`(小時), `d`(天)。 內存單位中的"千"等于1024, 而不是1000。 作為字符串參數的同樣方式指定"枚舉"類型參數,但被限制在值的有限集合中。 可以從`pg_settings`.`enumvals`找到允許的值。 枚舉參數值是不區分大小寫的。 ## 18.1.2\. 通過配置文件設置參數 設置這些參數的一個方法是編輯`postgresql.conf`文件, 它通常在數據目錄里(當數據庫集群目錄初始化的時候,會在那里安裝一個缺省拷貝)。比如, 下面是一個該文件的例子: ``` # This is a comment log_connections = yes log_destination = 'syslog' search_path = '"$user", public' shared_buffers = 128MB ``` 參數是每條一行。選項名和值之間的等號是可選的。 空白和空行被忽略。井號(`#`)引入注釋。 非簡單標識符或者數字必須用單引號包圍。 如果需要在參數值里嵌入單引號,要么寫兩個單引號(推薦方法),要么用反斜扛包圍。 主服務器進程每次收到SIGHUP信號 后都會重新讀取這個配置文件, 最簡單的發送方法就是使用來自命令行的`pg_ctl reload` 或者調用SQL函數`pg_reload_conf()`。 同時主服務器進程也將這個信號廣播給所有正在運行的服務器進程, 這樣現有會話也能得到新值。另外,你可以只向一個服務器進程直接發送信號。 有些參數只能在服務器啟動的時候設置;對這些條目的修改將被忽略, 直到下次服務器重啟。配置文件中的無效參數設置在SIGHUP處理中也被忽略(但已登錄)。 ## 18.1.3\. 設置參數其他的方法 第二種設置這些配置參數的方法是把它們作為命令行參數傳遞給`postgres`,比如: ``` postgres -c log_connections=yes -c log_destination='syslog' ``` 命令行選項覆蓋`postgresql.conf`中的矛盾設置。請注意, 這意味著你不能通過編輯`postgresql.conf`在運行時改變其數值,因此, 雖然命令行方法很方便,但會付出靈活性的代價。 有時候,給某一個特定會話一個命令行參數也是很有用的。 可以在客戶端使用環境變量`PGOPTIONS` 來實現這個目的: ``` env PGOPTIONS='-c geqo=off' psql ``` (可以用于任何基于libpq的客戶端應用, 不光是psql): 請注意,這個變量對那些需要在服務器啟動后固定的選項或者 必須在`postgresql.conf`里聲明的選項是無效的。 并且,我們可以給一個用戶或者一個數據庫賦予一套選項設置。 在一個會話開始的時候,裝載所涉及到的用戶和數據庫的缺省設置。 命令[ALTER ROLE](#calibre_link-17)和[ALTER DATABASE](#calibre_link-1431) 分別用于配置這些設置。 針對每個數據庫的設置將覆蓋任何從`postgres`命令行或者配置文件收到的設置, 然后接著又被針對每個用戶的設置覆蓋; 最后又會都被針對每個會話的設置覆蓋。 一些選項可以在獨立的SQL會話中修改,方法是使用[SET](#calibre_link-675)命令,比如: ``` SET ENABLE_SEQSCAN TO OFF; ``` 如果允許用`SET`設置,這種針對每個數據庫的設置將覆蓋任何來自其它方面的設置。 有些參數不能通過`SET`改變:比如,如果這些選項不重啟動PostgreSQL就無法合理控制其行為。 同樣,有些參數只能由超級用戶通過`SET`或`ALTER`修改,而普通用戶不能修改。 ## 18.1.4\. 檢查參數設置 [SHOW](#calibre_link-509)命令檢查所有參數的當前值。 我們也可以用虛表`pg_settings` 來顯示和更新當前會話的運行時參數。當它們改變時,參見[Section 47.66](#calibre_link-967)獲取詳細信息,以及不同變量類型的描述。 `pg_settings`等效于`SHOW` 和`SET`,但是用起來更方便,因為它可以和其它表連接起來使用, 或者用任意用戶需要的選擇條件來查詢。 它還包含了來自`SHOW`的每個參數的更多詳細信息。 ## 18.1.5\. 配置文件包含 除了參數設置外,`postgresql.conf`文件還包含_include指令_, 它聲明了另外一個文件的讀取和處理,正如在這一點上插入到配置文件。 這個特性允許配置文件被分成物理上獨立部分。 Include指令看起來像: ``` include 'filename' ``` 如果文件名不是絕對路徑,那么它被看成包含引用配置文件目錄的相對路徑。 可以進行嵌套。 此外,還有一個`include_if_exists`指令,它的作用和 `include`指令是相同的,除了被引用的文件不存在或無法讀取時的行為。 規則的`include`會認為這是一個錯誤條件,但`include_if_exists` 只是記錄一條消息,并繼續處理引用的配置文件。 `postgresql.conf`文件也包含`include_dir`指令,聲明了配置文件的 整個目錄,它的類似用法: ``` include_dir 'directory' ``` 非絕對路徑遵循和單個文件包括指令相同的規則, 它們是相對于包含引用的配置文件目錄。在該目錄中,唯一一個非目錄的文件, 其名以后綴`.conf`的將被包括在內。 文件名以`.`字符開頭的被排除在外, 為防止出錯,它們都隱藏在一些平臺上。在include目錄中的多個文件 按照文件名的順序進行處理。 文件名按照C語言環境的規則排序。字母前的數字和小寫字母前大寫字母。 包含文件或目錄可用于數據庫配置邏輯上獨立的部分, 而不是單一的`postgresql.conf`文件。 考慮有兩個數據庫服務器公司, 每一個有不同的內存量。 有可能有配置都共享的元素,比如日志。 但是服務器內存相關參數兩者之間不同。 也有可能是服務器特定的自定義。 管理這種情況的方法是打破了自定義配置更改為你的網站的三個文件。 你可以添加這些到你的`postgresql.conf`文件末尾,包括: ``` include 'shared.conf' include 'memory.conf' include 'server.conf' ``` 所有系統可能有同樣的`shared.conf`文件。具有特定內存量的每個服務器可以共享 相同的`memory.conf`;可能有8GB內存的服務器,另一個是16GB。 最后`server.conf`可能真正有服務器特定配置文件信息。 另外一個可能是創建配置文件目錄,并且將這些信息放入文件中。 比如,`conf.d`目錄可能在`postgresql.conf`末尾被引用: ``` include_dir 'conf.d' ``` 那么你可以像這樣在`conf.d`目錄中命名文件: ``` 00shared.conf 01memory.conf 02server.conf ``` 這顯示了文件被加載的明確順序。這是非常重要的,因為當服務器正在讀取它使用的配置時, 只讀取最后的設置。 這個例子中的`conf.d/02server.conf`的一些設置會覆蓋 `conf.d/01memory.conf`中設置的值。 你可能會使用這種配置目錄的方法,當命名這些文件更加詳細時: ``` 00shared.conf 01memory-8GB.conf 02server-foo.conf ``` 這樣的安排使每個配置文件的變化具有唯一名稱。 當一些服務器的配置都存儲在一個地方的時候,這可以幫助消除歧義。比如版本 控制存儲(版本控制下存儲數據庫配置文件是另一種很好的做法)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看