1. 程式人生 > >CentOS安裝PotsgreSQL11及簡單配置過程記錄

CentOS安裝PotsgreSQL11及簡單配置過程記錄

根據蒐集的資料安裝測試並在安裝測試過程中整理的文件,如有不足希望不吝賜教。


因為公司一個專案可能使用PotsgreSQL作為資料庫,因此領導領導安排先初步瞭解下其安裝配置以及簡單的備份,以下是對安裝過程的簡單記錄。

這個是備份記錄:《CentOS7中PotsgreSQL11雙機備份簡單配置過程記錄》


目錄

一、安裝

二、連線PostgreSQL資料庫

1.切換postgres使用者

2.列出所有的資料庫

3.退出資料庫

三、PostgreSQL資料庫目錄

四、PostgreSQL簡單配置

1.修改監聽的ip和埠

2.修改資料庫log相關的引數

3.記憶體引數的配置

五、配置連結host

1.修改pg_hba.conf檔案

六、其他


 

一、安裝

安裝部分來自官網文件,地址:https://www.postgresql.org/download/linux/redhat/

本次安裝環境為:centos7(×86_64) + PostgreSQL11、

Install the repository RPM:(1、2、3步可以新增-y引數)

yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

Install the client packages:

yum install postgresql11

Optionally install the server packages:

yum install postgresql11-server

Optionally initialize the database and enable automatic start:

/usr/pgsql-11/bin/postgresql-11-setup initdb

設定開機啟動。啟動以及檢視狀態:

systemctl enable postgresql-11

systemctl start postgresql-11

systemctl status postgresql-11

 

二、連線PostgreSQL資料庫

1.切換postgres使用者

並連線資料庫:su - postgres

 

2.列出所有的資料庫

 

3.退出資料庫

 

三、PostgreSQL資料庫目錄

1.預設位置

當前位置下data目錄為資料庫目錄。使用pwd檢視當前目錄:

檢視data目錄:

 

四、PostgreSQL簡單配置

PostgreSQL資料庫的配置主要是通過修改資料目錄下的postgresql.conf檔案來實現

1.修改監聽的ip和埠

使用postgresql使用者連線資料庫後,進入到/var/lib/pgsql/data目錄下,編輯postgresql.conf檔案:

根據實際修改,修改完成後需要重啟資料庫才能生效:

 

2.修改資料庫log相關的引數

日誌收集,一般是開啟的:

日誌目錄,一般使用預設值:

只保留一天的日誌,進行迴圈覆蓋

 

3.記憶體引數的配置

共享記憶體的大小,用於共享資料塊。如果你的機器上有足夠的記憶體,可以把這個引數改的大一些,這樣資料庫就可以快取更多的資料塊,當讀取資料時,就可以從共享記憶體中讀,而不需要再從檔案上去讀取。

單個SQL執行時,排序、hash json所用的記憶體,SQL執行完後,記憶體就釋放了。

 

五、配置連結host

1.修改pg_hba.conf檔案

同樣的,在postgres使用者下,修改pg_hba.conf檔案,在檔案最後新增需要允許訪問的主機ip:

vim /var/lib/pgsql/11/data/pg_hba.conf

上面為允許任何主機訪問,或者修改為指定ip即可,例如:host all all 172.17.0.9/32 trust

 

六、其他

1.json欄位

之前使用sqlservr和mysql比較多,可以存json格式資料但基本是當作字串處理,而postgresql可以直接處理json格式資料,將欄位作為條件查詢:

假設有欄位msg,型別為json,儲存資料如下:

{"ip": "172.17.0.84","user": "postgres","password": "postgres"}

{"ip": "172.17.0.86","user": "postgres","password": "postgres"}

 

如果要查詢ip為172.17.0.84的資料,可以使用下面的語句:

select * from tablename where (msg->>'ip')::text = '172.17.0.84';

 

這裡只是稍稍嘗試了一下,個人覺得這個在一些時候很實用,比如某個實體的屬性,可以使用json格式儲存,這樣會少很多欄位,並且屬性擴充套件時的資料庫成本幾乎可以忽略。不知道這麼理解是不是正確。


END