<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 17.2\. 創建數據庫集群 在做任何事情之前,必須先初始化磁盤上的數據存儲區,叫作_數據庫集群_ (標準SQL術語稱為"目錄集群")。一個數據庫集群是一系列數據庫的集合, 這些數據庫可以通過單個數據庫服務器的實例管理。在初始化后,一個數據庫集群將包含一個叫`postgres` 的數據庫,這個庫是給工具、用戶和第三方程序使用的缺省數據庫。數據庫服務器本身并不要求`postgres` 數據庫的存在,但是很多外部工具假設它存在。另外一個在每個集群初始化過程中創建的數據庫叫`template1`。 正如其名一樣,這個數據庫將作為隨后創建的數據庫的模版;在實際工作中不應該使用這個庫 (參閱[Chapter 21](#calibre_link-672)獲取有關創建數據庫的信息)。 用文件系統的術語來說,一個數據庫集群是一個目錄,所有數據都將存放在這個目錄中。 我們把它稱做_數據目錄_或_數據區_。 在哪里存放數據完全取決于你的選擇,我們沒有缺省值,盡管`/usr/local/pgsql/data` 或`/var/lib/pgsql/data`這樣的目錄很常用。要初始化一個數據庫集群, 可以使用[initdb](#calibre_link-542),命令, 這個命令與PostgreSQL一起安裝。你可以用`-D` 選項指定數據目錄的位置,例如: ``` <samp class="literal">$</samp> <kbd class="literal">initdb -D /usr/local/pgsql/data</kbd> ``` 你必須以PostgreSQL用戶的身份來執行這條命令, 這一點我們在前面一節描述過。 > **Tip:** 作為`-D`選項的替代品,你還可以使用`PGDATA`環境變量。 可選的,你可以通過[pg_ctl](#calibre_link-544)程序運行 `initdb`,像這樣: ``` <samp class="literal">$</samp> <kbd class="literal">pg_ctl -D /usr/local/pgsql/data initdb</kbd> ``` 如果你使用`pg_ctl`啟動或停止服務器(參閱[Section 17.3](#calibre_link-1097))可能會更直觀, 所以`pg_ctl`將會是你管理數據庫服務器實例唯一使用的命令。 如果你聲明的路徑還不存在,`initdb`將試圖創建它。如果你按照我們的建議創建了一個非特權帳戶的話, 你很有可能缺少做這些事情的權限。這時,你可以自己創建該目錄(以 root 身份)然后把該目錄的所有權交給 PostgreSQL用戶。下面是可能有效的方法: ``` root# <kbd class="literal">mkdir /usr/local/pgsql/data</kbd> root# <kbd class="literal">chown postgres /usr/local/pgsql/data</kbd> root# <kbd class="literal">su postgres</kbd> postgres$ <kbd class="literal">initdb -D /usr/local/pgsql/data</kbd> ``` 如果數據目錄看起來像已經初始化過了,那么`initdb`會拒絕運行。 因為數據目錄包含所有存儲在數據庫里的數據,所以出于安全考慮,這個目錄不能給任何非授權用戶訪問。 因此,`initdb`禁止除PostgreSQL用戶帳戶以外的任何用戶訪問這個目錄。 不過,因為目錄的內容是安全的,所以缺省的客戶端認證設置允許任意本地用戶連接到數據庫甚至成為超級用戶。 如果你不信任本地用戶,我們建議你使用`initdb`的`-W`, `--pwprompt`或 `--pwfile` 選項給超級用戶賦予一個口令。還有,聲明`-A md5`或`-A password`,這樣就不會使用缺省的`trust` 身份認證。或者在執行`initdb`之后,第一次啟動服務器_之前_ 修改`pg_hba.conf`文件。另外一些合理的方法包括`peer` 認證或者用文件系統權限禁止連接。參閱[Chapter 19](#calibre_link-14)獲取更多細節。 `initdb`同時也為數據庫集群初始化缺省區域。通常, 它將只是使用環境中的區域設置并且把它們應用于初始化的數據庫。我們可以為數據庫聲明不同的區域; 有關這些的更多信息可以在[Section 22.1](#calibre_link-1271)中找到。在特定數據庫集群里的缺省排序順序是由 `initdb`設置的,而且當你能用不同的排序順序創建新的數據庫時, initdb創建的模板數據庫中使用的排序不能改變,除非刪除并重新創建它們。使用非`C`或`POSIX` 的區域還會有性能影響。因此,第一次就選擇正確很重要。 `initdb`還為數據庫集群設置缺省的字符集編碼。通常這個應該選擇與區域匹配。 詳見[Section 22.3](#calibre_link-1272)。 ## 17.2.1\. 網絡文件系統 許多安裝在網絡文件系統創建數據庫集群。有時直接通過NFS或通過使用網絡附加存儲(NAS) 設計內部使用NFS。PostgreSQL并不為NFS文件系統做什么特別的, 意味著他假設NFS和本地連接驅動器(DAS,直接附加存儲)的行為一樣。如果客戶端和服務器NFS 實現有非標準的語義,會引起可靠性問題(參閱[http://www.time-travellers.org/shane/papers/NFS_considered_harmful.html](http://www.time-travellers.org/shane/papers/NFS_considered_harmful.html))。 特別的,延遲的(異步的)寫入NFS服務器可能會引起可靠性問題;如果可能, 同步的(沒有緩存)安裝NFS文件系統以避免這個問題。同樣,不建議軟安裝NFS。 (存儲區域網絡(SAN)使用一個低級的通信協議而不是NFS。)
                  <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>

                              哎呀哎呀视频在线观看