PostgreSQL11-5源碼編譯安裝

1、PostgreSQL概述

     PostgreSQL是一種先進的、流行的對象-關係型數據庫管理系統(Object-relational database management system,簡稱 ORDBMS )。它幾乎可以完美的運行於各種平臺,且源碼開發。它是目前功能最爲強大、特性最爲豐富、結構最爲複雜的開源數據庫系統。之所以稱其爲 對象關係型數據庫管理系統,是因爲它不但支持關係型數據庫的所有功能,而且還具備着類、繼承等對象數據庫特徵。 它具有非常豐富的功能集,有着完善的SQL標準支持、多版本併發控制、時間點恢復、異步複製、嵌套事務、在線/熱備份、預寫日誌容錯等技術等等,並且其軟件版本非常之穩定。

2、PostgreSQL發展歷史

     PostgreSQL數據庫誕生於加州大學伯克利分校(UCB), 最初是由該大學的 Michael Stonebraker 教授創建,最初他領導了關係型數據Ingres的研究項目計劃,而該數據庫也是PostgreSQL的雛形。從Ingres到最終我們得以看到的PostgreSQL數據庫,中間歷經了許多故事,詳細細節可以參考Wiki。從PostgreSQL最初的雛形到現在的12版本,其整體發展歷程如圖1所示。
在這裏插入圖片描述
                              圖1 PostgreSQL數據庫發展歷程
     若查看每個主版本中的每個次版本的發佈時間等詳細信息,請[查看PostgreSQL官網的版本目錄]

3、PostgreSQL安裝準備

     安裝設備爲CentOS操作系統。該設備硬件各參數指標如下:
         操作系統:CentOS Linux release 7.5.1804 (Core)
         CPU型號: Intel® Xeon® CPU E3-1225 v3 @ 3.20GHz
         CPU核數: cpu cores : 4
         CPU個數: 1
         設備內存:MemTotal: 8097544 kB

3.1 源碼下載

     PostgreSQL官方提供了二進制包源碼編譯安裝這兩種方式。其下載地址是[PostgreSQL核心發行版]。下載頁面如下圖2所示。
在這裏插入圖片描述
                              圖2 PostgreSQL二進制包及源碼包下載地址

     本次採用源碼編譯安裝方式,點擊 源代碼 下面的 文件瀏覽器,將會自動跳轉到PostgreSQL數據庫所有的版本列表頁面。然後選擇自己需要的版本(本次測試的PostgreSQL版本是11.5)。如圖3所示
在這裏插入圖片描述
                        圖3 PostgreSQL源碼包列表下載地址

3.2 源碼編譯安裝

     新建一個目錄,用於存放從PostgreSQL官網下載來的 xxx.tar.gz 格式的壓縮包。

3.2.1 新建 TestPgSql115 目錄,用於存放postgresql-11.5.tar.gz壓縮包

在這裏插入圖片描述

3.2.2 拷貝壓縮包,並解壓

將 postgresql-11.5.tar.gz 拷貝至該目錄下。並解壓該文件(tar -zxvf postgresql-11.5.tar.gz), 得到postgresql-11.5
在這裏插入圖片描述

3.2.3 cd 到解壓出來的postgresql-11.5目錄

在這裏插入圖片描述

3.2.4 開始配置(./configure)、編譯(make)並安裝(make install)

     源碼編譯安裝 共有3部曲,依次是:./configure(配置) 、 make(編譯) 、 make install(安裝)configure是一個配置文件腳本,用於配置軟件包。用來檢測你的安裝平臺的一些目標特徵。比如它會檢測你當前的系統環境是不是有CC或GCC,注意,它只是檢測,並不是說它需要這些CC/GCC。執行該腳本時候,如果不配置--prefix該選項,則安裝後可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr /local/share,比較凌亂且不易管理。每個軟件包的安裝,其configure腳本所支持的選項參數也不相同,但是對應的該軟件包一般都會附加README.md文件進行說明的。 ./configure --help 可以看到,當前的configure配置腳本所支持的所有參數選項。如圖所示:
在這裏插入圖片描述
選項太多,該圖只截取一小部分數據。上圖中紅色框 處說明,如果不指定安裝路徑,則PostgreSQL 將會被安裝到 /usr/local/pgsql 目錄下。

3.2.4.1 ./configure

     這裏指定安裝後的可執行文件資源放在/home/ssd/TestPgSql115/PG_DATA(./configure --prefix=/home/ssd/TestPgSql115/PG_DATA)目錄下。
在這裏插入圖片描述

3.2.4.2 make

     執行make命令,如下圖所示。
在這裏插入圖片描述

3.2.4.3 make install

     該命令執行大概需要6分鐘左右,具體時間數組跟你當前的設備硬件配置有關係。配置越高,性能越好,則編譯並安裝的速度也越快,反之,則需要更久的時間。安裝結束之後,終端會打印提示 PostgreSQL已安裝完成
在這裏插入圖片描述

3.2.5 配置環境變量

     PostgreSQL安裝完成之後,爲了操作的方便,最好將其路徑加入到環境變量配置文件/etc/profile 。這樣之後的所有系列操作,都不需要加上命令的絕對路徑而操作,會方便許多。
在這裏插入圖片描述
      LD_LIBRARY_PATH路徑爲PostgreSQL數據庫源碼編譯出來之後的動態庫所存放位置。

libecpg.a          libecpg_compat.so.3     libecpg.so.6     libpgfeutils.a  
libpgtypes.so      libpq.a(靜態庫)        libpq.so.5.11
libecpg_compat.a   libecpg_compat.so.3.11  libecpg.so.6.11  libpgport.a     
libpgtypes.so.3    libpq.so(動態庫)       pkgconfig
libecpg_compat.so  libecpg.so              libpgcommon.a    libpgtypes.a    
libpgtypes.so.3.11 libpq.so.5              postgresql

修改之後,執行 source /etc/profile 使其生效。

3.2.6 查看psql版本(psql --version)

在這裏插入圖片描述

4、初始化PostgreSQL數據庫集簇

     在上一級中3的一系列操作下,PostgreSQL數據庫已經安裝完成。然而,這並不表示所有的工作均已做完。 因爲我們還未指定PostgreSQL數據庫表的數據存放位置,還未生成模板數據庫以及相應的文件等信息。所以這個時候PostgreSQL是還不能正常工作的。必須等指定說明PostgreSQL數據庫中數據表中數據存放位置等等之後纔可以工作。

4.1 創建數據庫集簇目錄

在這裏插入圖片描述
     創建data目錄(絕對路徑:/home/ssd/TestPgSql115/data)用來存儲PostgreSQL數據庫表中的數據和配置文件等信息。並修改其目錄的操作權限chown postgres:postgres /home/ssd/TestPgSql115/data/


[root@Thor TestPgSql115]# ll
總用量 25388
drwx------ 2 postgres postgres     4096 1023 20:44 data
drwxr-xr-x 6 root     root         4096 1021 15:41 PG_DATA
drwxrwxrwx 6     1107     1107     4096 1023 18:07 postgresql-11.5
-rw-r--r-- 1 root     root     25940612 1021 15:30 postgresql-11.5.tar.gz
-rw-r--r-- 1 root     root          122 1021 19:22 start.sh
-rw-r--r-- 1 root     root          113 1021 19:22 stop.sh

4.2 創建數據庫集簇

創建命令:su postgres -c '/home/ssd/TestPgSql115/PG_DATA/bin/initdb -D /home/ssd/TestPgSql115/data/'
在這裏插入圖片描述
提示數據庫集簇已經創建成功,並且現在你可以使用/home/ssd/TestPgSql115/PG_DATA/bin/pg_ctl -D /home/ssd/TestPgSql115/data/ -l logfile start命令來啓動數據庫的進程服務。此刻,該data目錄下多了這些目錄和文件。

drwx------ 5 postgres postgres 4.0K 1023 20:51 base
drwx------ 2 postgres postgres 4.0K 1023 20:51 global
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_commit_ts
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_dynshmem
-rw------- 1 postgres postgres 4.5K 1023 20:51 pg_hba.conf
-rw------- 1 postgres postgres 1.6K 1023 20:51 pg_ident.conf
drwx------ 4 postgres postgres 4.0K 1023 20:51 pg_logical
drwx------ 4 postgres postgres 4.0K 1023 20:51 pg_multixact
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_notify
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_replslot
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_serial
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_snapshots
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_stat
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_stat_tmp
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_subtrans
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_tblspc
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_twophase
-rw------- 1 postgres postgres    3 1023 20:51 PG_VERSION
drwx------ 3 postgres postgres 4.0K 1023 20:51 pg_wal
drwx------ 2 postgres postgres 4.0K 1023 20:51 pg_xact
-rw------- 1 postgres postgres   88 1023 20:51 postgresql.auto.conf
-rw------- 1 postgres postgres  24K 1023 20:51 postgresql.conf

5、啓動PostgreSQL數據庫服務器

     開始啓動PostgreSQL數據庫進程(修改postgresql.conf配置文件中端口爲5678)。命令:su postgres -c '/home/ssd/TestPgSql115/PG_DATA/bin/pg_ctl -D /home/ssd/TestPgSql115/data/ -m fast'

(1) chmod 700 -R /home/ssd/TestPgSql115/data/
(2) su postgres -c ‘/home/ssd/TestPgSql115/PG_DATA/bin/pg_ctl -D /home/ssd/TestPgSql115/data/ -m fast start’

在這裏插入圖片描述
提示PostgreSQL數據庫進程服務已經起來了。查看下5678端口是否已經在監聽。
在這裏插入圖片描述

6、登錄數據庫Test

使用命令psql -p 5678b -U postgres; 登錄PostgreSQL數據庫(若想要登錄時候輸入密碼,則加上 -W),其中p表示端口U表示登錄用戶。可以看到已經成功登錄數據庫。
在這裏插入圖片描述
查看PostgreSQL數據庫服務器的版本,看是否未爲11.5。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章