CentOS安裝PotsgreSQL11及簡單配置過程記錄
根據蒐集的資料安裝測試並在安裝測試過程中整理的文件,如有不足希望不吝賜教。
因為公司一個專案可能使用PotsgreSQL作為資料庫,因此領導領導安排先初步瞭解下其安裝配置以及簡單的備份,以下是對安裝過程的簡單記錄。
這個是備份記錄:《CentOS7中PotsgreSQL11雙機備份簡單配置過程記錄》
目錄
一、安裝
安裝部分來自官網文件,地址: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