時間:2024-02-14 10:20作者:下載吧人氣:32
initdb 官網(wǎng)
initdb創(chuàng)建了一個新的PostgreSQL數(shù)據(jù)庫集群。數(shù)據(jù)庫集群是由單個服務(wù)器實例管理的數(shù)據(jù)庫集合。
創(chuàng)建數(shù)據(jù)庫集群包括數(shù)據(jù)庫所在的目錄、生成共享目錄表(屬于整個集群而不是任何特定數(shù)據(jù)庫的表)以及創(chuàng)建template1和postgres數(shù)據(jù)庫。稍后創(chuàng)建新數(shù)據(jù)庫時,將復(fù)制template1數(shù)據(jù)庫中的所有內(nèi)容(因此,template1中安裝的任何內(nèi)容都會自動復(fù)制到以后創(chuàng)建的每個數(shù)據(jù)庫中。),postgres數(shù)據(jù)庫是供用戶、實例程序和第三方應(yīng)用程序使用的默認數(shù)據(jù)庫。
盡管initdb將嘗試創(chuàng)建指定的數(shù)據(jù)目錄,但如果所需數(shù)據(jù)目錄的父目錄是根目錄,則它可能沒有權(quán)限。要再這樣的設(shè)置中初始化,需要創(chuàng)建一個空數(shù)據(jù)目錄作為根目錄,然后使用chown將目錄的所有權(quán)分配給數(shù)據(jù)庫用戶賬戶,然后su成為運行initdb的數(shù)據(jù)庫用戶。
initdb必須作為擁有服務(wù)器進程的用戶運行,因為服務(wù)器需要訪問initdb創(chuàng)建的文件和目錄。由于服務(wù)器不能作為root用戶運行,所以也不能作為root用戶運行initdb。
出于安全原因,在默認情況下,initdb創(chuàng)建的新集群只能由集群所有者訪問。——allow-group-access選項允許與集群所有者屬于同一組的任何用戶讀取集群中的文件。這對于作為非特權(quán)用戶執(zhí)行備份非常有用。
initdb初始化數(shù)據(jù)庫集群的默認語言環(huán)境和字符集編碼。在創(chuàng)建數(shù)據(jù)庫時,可以分別設(shè)置字符集編碼、排序順序(LC_COLLATE)和字符集類(LC_CTYPE,例如upper、lower、digit)。initdb確定template1數(shù)據(jù)庫的那些設(shè)置,這些設(shè)置將作為所有其他數(shù)據(jù)庫的默認設(shè)置。
要更改默認的排序順序或字符集類,請使用——lc-collate和——lc-ctype選項。除了C或POSIX之外的排序順序也會造成性能損失。由于這些原因,在運行initdb時選擇正確的語言環(huán)境是很重要的。
其余的語言環(huán)境類別可以在服務(wù)器啟動后更改。還可以使用——locale設(shè)置所有語言環(huán)境類別的默認值,包括排序順序和字符集類。所有服務(wù)器語言環(huán)境值(lc_*)都可以通過SHOW All來顯示。
-D directory/--pgdata=directory
此選項指定應(yīng)該存儲數(shù)據(jù)庫集群的目錄。必傳。也可以設(shè)置環(huán)境變量PGDATA來替換-D選項。
-U username/--username=username
選擇數(shù)據(jù)庫superuser的用戶名。這默認為運行initdb的用戶的名稱。
-E encoding/--encoding=encoding
選擇模板數(shù)據(jù)庫的編碼。這也是您稍后創(chuàng)建的任何數(shù)據(jù)庫的默認編碼,
--lc-collate/--lc-ctype
更改默認的排序順序或字符集類。
-k/--data-checksums
在數(shù)據(jù)頁上使用校驗和來幫助檢測I/O系統(tǒng)的損壞,否則系統(tǒng)將是靜默的。啟用校驗和可能會導(dǎo)致顯著的性能損失。如果設(shè)置,則計算所有數(shù)據(jù)庫中所有對象的校驗和。所有校驗和失敗將在pg_stat_database視圖中報告。
su – pguser001 -c “/u01/pgsql/bin/initdb –username=pguser001 –encoding=UTF8 –lc-collate=C –lc-ctype=en_US.
utf8 –data-checksums -D /data”
網(wǎng)友評論