日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql配置管理器服务是空的_PostgreSQL 12 安装和配置

發布時間:2025/3/15 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql配置管理器服务是空的_PostgreSQL 12 安装和配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方晟數學院可以訂閱哦!

PostgreSQL 12 安裝和配置

?1

PostgreSQL 介紹

PostgreSQL是一個由加利福尼亞大學計算機科學部門基于Postgres 4.2版本開發的面向對象的數據庫管理系統。POSTGRES率先提出了許多概念,直到后來,這些概念才在一些商業數據庫系統中使用。PostgreSQL是一個后來開源的代碼始于伯克利源代碼。它支持大部分的SQL標準和提供了許多現代的特性。

·復雜查詢(complex queries)

·外鍵(foreign keys)

·觸發器(triggers)

·可更新視圖(updatable views)[物化視圖]

·事務完整性(transaction integrity)

·多版本并發控制(MVCC)

除此之外,用戶可以使用多種方式擴展PostgreSQL,例如通過添加以下:

·數據類型(data types)

·函數(functions)

·操作符(operators)

·聚合函數(aggregate functions)

·索引方式(index methods)

·過程語言(procedural languages)

并且由于自由通行,PostgreSQL可以通過任何人無論是出于私有化,商業化,或者學術上的任何目的免費地修改和發布。

?2

PostgreSQL 簡要發展史

現在被稱為PostgreSQL的對象關系數據庫管理系統派生于加利福尼亞大學伯克利分校所編寫發型的POSTGRES軟件包。PostgreSQL經過二十多年的發展,現已成為任何地方可以使用的最先進的開源數據庫。

2.1

伯克利 POSTGRES 項目

POSTGRE項目,由Michael Stonebraker教授主導,DARPA,ARO和NSF和ESL等。POSTGRES開始于1986年。最初的系統概念在ston86中被提出,最初的數據模型的定義出現子ROWE87中。ston87a中描述了規則系統設計。ston87b中詳細描述了存儲管理的基本原理和架構。

POSTGRES大致經歷了幾個版本:

1988年在ACM-SIGMOD會議上展示的于1987年第一個投入運行的"演示軟件"系統。ston90a描述的第一個版本(Version 1)于1986年6月發布給一些外部用戶。為回應對ston89中描述的第一個規則系統批評,在ston90b中重新設計了規則系統并于1990年6月發布了新規則系統的第二個版本(Version 2)。1991年發布的 Version 3為多個存儲管理增加了支持,改進了查詢執行器,并且重新寫了規則系統。往后發行的直到Postgres95之前的版本都注重于其可移植性和可靠性。

POSTGRES已經被用于實施不同的研究和產品應用。包括:金融數據分析系統,噴氣引擎性能監控包(jet engin performanc),和小行星追蹤數據庫,醫藥信息數據庫,和一些地理信息系統。POSTGRES也被一些大學用來作為教學的工具。最終,Illustra Information Technologies重構了其代碼并使其商業化。至1992年底,POSTGRES成為了Sequoia 2000 科學計算項目的主要數據管理器。

在1993年,外部社區的用戶規模幾乎增加了一倍。原型代碼維護和支持越來越明顯的占用了本應該進行數據庫研究的大量時間。為了減輕這種負擔,伯克利POSTGRES項目官方以版本 Version 4.2結束。

2.2

Postgres95

在1994年,Andrew Yu和Jolly Chen為 POSTGRES增加了SQL語言翻譯器。并起了一個新的名字,Postgres95正式開源。Postgre95代碼完全是 ANSI C,并且大小減少了25%。許多的內部改變提高了其性能和維護性。Postgre95 發型的1.0.x在Wisconsin Benchmark跑分中比POSTGRES Version 4.2要快30-50。除了修復bug,以下是主要增強的內容:

·查詢語言PostQUEL使用SQL代替,不支持子查詢,但是用戶自定義的函數可以在Postgres95中模仿子查詢。聚合函數重新實現。增加支持GROUP BY查詢語句。

·新的程序(psql)作為交互SQL查詢,該交互使用GNU的readline。很大程度上取代了舊的監控程序。

·一個新的front-end庫,libpgtcl,基于tcl的客戶端被支持。模版shell,pgtclsh,提供了新的tcl 命令在Postgres95服務器上和tcl應用程序交互。

·大對象接口被修改。倒置大對象是存儲大對象的僅有機制。(倒置文件系統被移除)

·實例級別的規則系統被移除。規則仍然可用由于重寫規則。

·介紹規則SQL特性的簡短手冊也伴隨源代碼在 Postgre95中發布。

·GNU make(替代了BSD make)被用來重構。同時,Postgres95也能夠被未打包的GCC編譯

2.3

PostgreSQL

到1996年,很明顯,Postgres95經不起時間的考驗。因此選擇了一個新的名字,PostgreSQL,同時,版本號被置于6.0開始。至此,PostgreSQL正式作為開源數據庫正式被發行。

2.4

PostgreSQL的特點

PostgreSQL支持市面上流行的所有操作系統,包括Unix,Linux和Windows,也支持如AIX,Solaris,MacOS等,這為PostgreSQL的推廣奠定了基礎。同時,PostgreSQL以支持豐富的編程接口,如流行的Java, C,C++,Python等,也支持如Perl,Tcl,Ruby等編程接口,也支持windows下的ODBC編程接口,編程接口的豐富和通用特性為PostgreSQL提供了廣泛的開發者支持。

PostgreSQL同時支持豐富的數據類型,也支持豐富的服務器編程,如觸發器,存儲過程,服務器編程接口,后臺工作進程,邏輯解碼,復制進度追蹤等。

?3

配置和安裝

3.1

系統環境準備

Redhat Enterprise 7.6

PostgresSQL 12

編譯環境要求:

make 版本3.8以上

GCC編譯器(兼容C99)

解壓命令tar

記錄命令行操作包readline(沒有該包無法使用方向鍵)

可選環境要求:

因為PostgreSQL支持服務器編程,因此可以根據需要安裝需要的模塊

如perl python tcl等

也可以啟用本地語言支持NLS,該功能需要安裝gettext

支持加密的客戶端連接(需要安裝openssl)使用服務支持驗證(kerberos,openldap,pam)

準備包(需提前配置好yum源)

準備包(需提前配置好yum源)

yum install -y \

libicu-devel.x86_64 \

icu.x86_64 \

perl-ExtUtils-Embed.noarch \

readline.x86_64 \

readline-devel.x86_64 \

zlib-devel.x86_64 \

openssl-devel.x86_64 \

pam-devel.x86_64 \

libxml2-devel.x86_64 \

libxslt-devel.x86_64 \

systemd-devel.x86_64 \

python36.x86_64 \

python36-devel.x86_64 \

openldap.x86_64 \

openldap-devel.x86_64 \

docbook*

3.2

系統設置

1 關閉防火墻

[root@sdedu ~]# systemctl? stop firewalld

[root@sdedu ~]# systemctl? disable firewalld

#如果不關閉防火墻,則將postgres 端口服務添加至防火墻中

[root@sdedu ~]# firewall-cmd? --add-port=5432 ?--permanent

2 關閉Selinux

#會話及關閉

[root@sdedu ~]# setenforce 0

#永久關閉

[root@sdedu ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3 配置資源限制

[root@sdedu ~]# cat /etc/security/limits.conf? | tail -6

postgres soft nofile 4096?

postgres hard nofile 65536

postgres soft nproc 2048

postgres hard nporc 16384

postgres soft stack 10240

postgres hard stack 65536

#nofile 最大能打開的文件描述符

#nproc 最大的進程數

#stack 最大棧空間大小(單位為kb)

3.3

源碼編譯安裝

源碼安裝通常可以根據自己的要求完成定制化的安裝,如目錄規劃,內存大小,日志大小,臟塊緩存大小及實現PostgreSQL支持的PL/tcl pl/perl pl/python等服務器過程化編程語言等等,以根據業務調整安裝配置參數來提高服務器性能和充分利用服務器資源。具體步驟如下:

1 上傳包至服務器/root/pack目錄

[root@sdedu pack]# ls postgresql-12.0.tar.bz2

postgresql-12.0.tar.bz2

2 創建postgres用戶并授權壓縮包權限

? ?由于postgresql的啟動停止等命令只能使用postgres用戶操作,因此必須要創建postgres用戶

[root@sdedu ~]# useradd -u 2000 postgres

[root@sdedu ~]# chown postgres:postgres pack/postgresql-12.0.tar.bz2

#移動 postgresql-12.0.tar.bz2 包到 /home/postgres用戶下

[root@sdedu ~]# mv pack/postgresql-12.0.tar.bz2? /home/postgres/

3?切換到postgres用戶,并解壓源碼包

[root@sdedu ~]# su - postgres

[postgres@sdedu ~]$ tar -jxf postgresql-12.0.tar.bz2

4 進入到解壓目錄

[postgres@sdedu ~]$ cd postgresql-12.0/

[postgres@sdedu postgresql-12.0]$ ll

5 創建PostgreSQL用戶的安裝目錄并授權

? ?切換到root用戶執行下列命令

[root@sdedu ~]# mkdir -p /data/pgsql/

[root@sdedu ~]# chown postgres.postgres -R /data/

6 執行configure預先檢測配置環境

? ?以下操作都以postgres用戶進行

#切換至 postgres用戶并進入到源碼解壓目錄

./configure \

--prefix=/data/pgsql/ \ ?#準備安裝路徑

--exec-prefix=/data/pgsql/exec \ #定義安裝結構路徑

--bindir=/data/pgsql/bin \ #定義PostgreSQL 相關服務命令

--sysconfdir=/data/pgsql/etc \ #定義系統配置目錄

--libdir=/data/pgsql/exec/lib \ #定義相關庫和動態庫目錄

--includedir=/data/pgsql/include \ #定義支持C 和 C++ 支持的頭文件

--datarootdir=/data/pgsql/share \ #定義可供數據庫只讀的根目錄

--datadir=/data/pgsql/share/data \ #定義可以數據庫制度的目錄

--localedir=/data/pgsql/share/locale \ #定義域目錄

--mandir=/data/pgsql/share/man \ #定義 man 幫助手冊目錄

--docdir=/data/pgsql/share/doc/postgresql \ #定義 doc 格式幫助文檔

--htmldir=/data/pgsql/share/html \ #定義html 格式幫助文檔

--enable-nls="zh_CN" \ #定義主機支持的語言環境

--with-pgport=5432 \ #定義數據庫服務的監聽端口

--with-perl \ #啟用支持 pl/perl 的服務器編程語言

--with-python \ #啟用支持 pl/python 的服務器編程語言

--with-tcl \ #啟用支持 pl/tcl 的服務器編程語言

--with-icu \ #啟用支持 icu 的動態庫

--with-openssl \ #啟用支持 ssl(安全套接層) 連接

--with-pam \ #啟用支持PAM認證模塊

--with-ldap \ #啟用支持輕量級訪問目錄數據庫

--with-systemd \ # 啟用 systemd 服務器

--with-readline \ #啟用支持命令行記錄功能

--with-libxml \ #啟用 SQL 支持的XML 功能

--with-libxslt \ #啟用 SQL 支持的 XML2 的依賴

--with-segsize=2 \ #配置段大小,默認數據文件段大小為 1G

--with-blocksize=8 \ #配置數據塊的I/O大小

--with-wal-blocksize=8 #配置 wal 塊的I/O大小

7 執行編譯并安裝

[postgres@sdedu ~]$ export COPT='-Werror'

#執行編譯,-j 表示使用多job編譯,受限于CPU核數和線程數

[postgres@sdedu ~]$ make all -j16

#如果要build 所有可以build的內容(html 和man 以及contrib等)使用如下

make world –j16

#編譯安裝

make install –j16

#如果需要安裝手冊幫助文檔,執行

make install-docs –j16

#如果使用全局編譯操作,那么使用

make install-world –j16

8?導入PostgreSQL lib庫

[postgres@sdedu ~]$ export LD_LIBRARY_PATH=/data/pgsql/exec/lib

9 導入PostgreSQL的命令可執行路徑

[postgres@sdedu ~]$ export PATH=/data/pgsql/bin:$PATH

10 導入MAN幫助信息

[postgres@sdedu ~]$ export MANPATH=/data/pgsql/share/man

為方便起見,將以上環境變量寫入到/data/pgsql/exec/postgresql.env中?

[postgres@sdedu ~]$ cat >> /data/pgsql/exec/postgresql.env <

> export LD_LIBRARY_PATH=/data/pgsql/exec/lib

> export PATH=/data/pgsql/bin:\$PATH

> export MANPATH=/data/pgsql/share/man

> EOF

然后將該文件添加到/home/postgres/.bash_profile中,并重新讀取環境變量

11?初始化數據目錄

pg_ctl -D /data/pgsql/pgdata/ initdb

或者

initdb -D /data/pgsql/pgdata?

12 啟動數據庫

[postgres@sdedu ~]$ pg_ctl? start -D /data/pgsql/pgdata/ -l /tmp/logfile

注意,啟動停止數據庫必須使用 postgres 用戶執行

13 登錄數據庫

[postgres@sdedu ~]$ psql -U postgres -d postgres

14 如果使用root用戶登錄數據庫,則在/root/.bash_profile中配置PostgreSQL的環境變量(不建議這樣做)

15 停止數據庫

[postgres@sdedu ~]$ pg_ctl? stop -D /data/pgsql/pgdata/ -l /tmp/logfile ile

至此,PostgreSQL 12源碼編譯安裝完成,現在既可以在數據庫中執行各種符合規范的操作。

16 配置postgresql系統服務控制單元和開機啟動

配置該服務之后,Redhat Linux就可以使用 systemctl系統控制命令來啟動PostgreSQL數據庫了。

使用root用戶切換到 /usr/lib/systemd/system目錄,編輯postgresql-12.service文件,該文件默認不存在,需要手動編輯,如下:

[root@sdedu system]# cat postgresql-12.service

[Unit]

Description=PostgreSQL database server

After=network.target

[Service]

Type=forking

User=postgres

Group=postgres

Environment=PGPORT=5432

Environment=PGDATA=/data/pgsql/pgdata

OOMScoreAdjust=-1000

ExecStart=/data/pgsql/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300

ExecStop=/data/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/data/pgsql/bin/pg_ctl reload -D ${PGDATA} -s

TimeoutSec=300

[Install]

WantedBy=multi-user.target

然后之下下列命令啟用服務控制守護

[root@sdedu init.d]# systemctl? daemon-reload

使用systemctl系統服務控制命令啟動postgresql

[root@sdedu ~]# systemctl? start postgresql-12.service

?4

rpm 安裝

目前的Linux 7的發行版本已經集成了PostgreSQL 的相關套件,只需要配置好yum源既可以使用 yum 軟件安裝命令安裝,系統自帶的postgresql的版本為9.2版本。

1 配置yum

[root@sdedu ~]# cat /etc/yum.repos.d/local.repo

[local]

name=local

baseurl=file:///mnt

enabled=1

gpgcheck=0

2 更新yum源

[root@sdedu ~]# yum clean all && yum repolist all

3 檢查PostgreSQL相關軟件套件

[root@sdedu yum.repos.d]# yum list all | grep ^postgresql

4 執行yum安裝

[root@sdedu ~]# yum install -y postgresql-server.x86_64

使用yum安裝后,默認的命令路徑位于/usr/bin下

5 初始化數據目錄

#創建初始化數據目錄

[root@sdedu ~]# mkdir -p /pg92/pgdata/data/

#為數據目錄授權 postgres 用戶所屬主和所屬組

[root@sdedu ~]# chown postgres.postgres -R /pg92

#切換至 postgres 用戶

[root@sdedu ~]# su – postgres

#執行 初始化數據庫命令

[postgres@sdedu ~]$ /usr/bin/initdb? -D ?/pg92/pgdata/data/

6 啟動數據庫

[postgres@sdedu ~]$ /usr/bin/pg_ctl start -D /pg92/pgdata/data/ -l /tmp/logfile

server starting

7 配置服務開機啟動

[root@sdedu ~]# systemctl enable postgresql.service

Yum安裝配置相對于簡單,可以作為學習入門

?5

拓展

除了使用操作系統本身集成的postgresql軟件套件外,也可以通過官方網站獲取官方集成的rpm軟件套件,下去可自行嘗試,在Linux下下載必須要保證網絡暢通,具體下載地址:

https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

下載官方提供的 rpm 源配置包

然后使用rpm 安裝該包

[root@sdedu ~]# rpm -ivh pgdg-redhat-repo-latest.noarch.rpm

或者直接使用yum進行安裝

[root@sdedu ~]# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

然后執行yum安裝客戶端

[root@sdedu ~]# yum install postgresql12

執行yum安裝數據庫服務端

[root@sdedu ~]# yum install postgresql12-server

初始化數據目錄

[root@sdedu ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb

通過systemctl啟動數據庫和配置開機啟動

[root@sdedu ~]# systemctl? start postgresql-12

[root@sdedu ~]# systemctl? enable postgresql-12

推薦閱讀

MySQL之通用二進制格式的安裝方法

2019-07-03

再見2019,你好2020

2020-01-01

晟數學院成為首批中國PG培訓認證體系合作伙伴

2019-07-05

點擊“閱讀原文

總結

以上是生活随笔為你收集整理的sql配置管理器服务是空的_PostgreSQL 12 安装和配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。