網(wǎng)站建設(shè)下什么科目武漢seo搜索引擎優(yōu)化
安裝方式
1 安裝包方式 (Packages and Installers)
支持的操作系統(tǒng)包括
- liunx
- Macos
- Windows
- BSD
- Solaris
2 源碼安裝 (Source code)
下載源碼包
通過下載地址PostgreSQL: File Browser
可以看到有各個(gè)版本的源碼目錄 選擇13.12的版本,源碼包提供另種打包壓縮方式 分別為tar.bz2和 tar.gz。這里下載postgresql-13.12.tar.gz
上傳至需要安裝的服務(wù)器
解壓源碼包
tar -zxvf postgresql-13.12.tar.gz
之后出現(xiàn)源碼目錄 postgresql-13.12,包含的文件如下?
安裝所需依賴或要求
編譯過程中需要的依賴包
- GNU?make版本3.80或以上 通過make --version命令查看版本
- 需要有一個(gè)編譯器, 推薦GCC
- 默認(rèn)時(shí)將自動(dòng)使用GNU?Readline庫(kù),它允許psql(PostgreSQL的命令行 SQL 解釋器)記住你輸入的每一個(gè)命令并且允許你使用箭頭鍵來找回和編輯之前的命令
- 需要tar來解包源代碼
- zlib壓縮庫(kù),來支持 pg_dump和pg_restore中對(duì)壓縮歸檔。
使用yum 安裝上面的包
yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib
可選的依賴包
- Perl
- Python
- Tcl
- 支持加密的客戶端連接,則需要OpenSSL,最低的版本要求是1.0.1。
- Kerberos、OpenLDAP和/或PAM服務(wù)的認(rèn)證
空間要求
- 大概需要近 350 MB 用于存放編譯過程中的源碼樹和大約 40 MB 用于安裝目錄
安裝
./configure
該腳本將運(yùn)行一些測(cè)試來決定一些系統(tǒng)相關(guān)的變量, 并檢測(cè)你的操作系統(tǒng)的特殊設(shè)置,并且最后將在編譯樹中創(chuàng)建一些文件以記錄它找到了什么。
構(gòu)建(build)
默認(rèn)時(shí)所有文件都將安裝到/usr/local/pgsql
make
make install
/usr/local/pgsql目錄下的文件夾
設(shè)置環(huán)境變量
~/.bash_profile 在這個(gè)文件中設(shè)置只影響本用戶
/etc/profile 在這個(gè)文件中設(shè)置只影響所有用戶
export PATH=/usr/local/pgsql/bin:$PATH export MANPATH=/usr/local/pgsql/share/man:$MANPATH export LD_LIBRARY_PATH=/usr/local/pgsql/lib export PGPORT=5432 export LANG=en_US.UTF8 export PS1="[`whoami`@`hostname`:"'$PWD]$' export PGDATA=/home/storage/pgsql/data export PGHOME=/usr/local/pgsql
共享庫(kù)
以便讓運(yùn)行時(shí)鏈接器更快地找到共享庫(kù)
/sbin/ldconfig /usr/local/pgsql/lib /sbin/ldconfig -m /usr/local/pgsql/lib
平臺(tái)支持
CPU
CPU 架構(gòu)上工作:x86、 x86_64、IA64、PowerPC、PowerPC 64、S/390、S/390x、Sparc、Sparc 64、ARM、MIPS、MIPSEL和PA-RISC
操作系統(tǒng)
?Linux(所有最近的發(fā)布)、Windows(XP及以上)、 FreeBSD、OpenBSD、NetBSD、macOS、AIX、HP/UX 和 Solaris。其他類 Unix 系統(tǒng)可能也可以工作,但是目前沒有被測(cè)試。
創(chuàng)建普通用戶
通常使用postgres這個(gè)用戶名
groupadd postgres
useradd postgres -g postgres
創(chuàng)建目錄修改權(quán)限
mkdir -p /home/storage/pgsql/data
chown -R postgres:postgres /home/storage/pgsql/data
chown -R postgres:postgres /usr/local/pgsql
初始化
方式一
initdb -D /home/storage/pgsql/data
方式二
pg_ctl -D /home/storage/pgsql/data initdb
啟動(dòng)數(shù)據(jù)庫(kù)
pg_ctl -D /home/storage/pgsql/data -l logfile start
停止數(shù)據(jù)庫(kù)
直接管理服務(wù)器時(shí),可以通過向?postgres?進(jìn)程發(fā)送不同的信號(hào)來控制關(guān)閉的類型:
SIGTERM
這是智能關(guān)閉模式。在接收SIGTERM后, 服務(wù)器將不允許新連接,但是會(huì)讓現(xiàn)有的會(huì)話正常結(jié)束它們的工作。僅當(dāng)所有的會(huì)話終止后它才關(guān)閉。 如果服務(wù)器處在線備份模式,它將等待直到在線備份模式不再被激活。當(dāng)在線備份模式被激活時(shí), 仍然允許新的連接,但是只能是超級(jí)用戶的連接(這一例外允許超級(jí)用戶連接來終止在線備份模式)。 如果服務(wù)器在恢復(fù)時(shí)請(qǐng)求智能關(guān)閉,恢復(fù)和流復(fù)制只有在所有正常會(huì)話都終止后才停止。
SIGINT
這是快速關(guān)閉模式。服務(wù)器不再允許新的連接,并向所有現(xiàn)有服務(wù)器進(jìn)程發(fā)送SIGTERM,讓它們中斷當(dāng)前事務(wù)并立刻退出。然后服務(wù)器等待所有服務(wù)器進(jìn)程退出并最終關(guān)閉。 如果服務(wù)處于在線備份模式,備份模式將被終止并致使備份無用。
SIGQUIT (不建議)
這是立即關(guān)閉模式。服務(wù)器將給所有子進(jìn)程發(fā)送?SIGQUIT并且等待它們終止。如果有任何進(jìn)程沒有在 5 秒內(nèi)終止,它們將被發(fā)送?SIGKILL。主服務(wù)器進(jìn)程將在所有子進(jìn)程退出之后立刻退出,而無需做普通的數(shù)據(jù)庫(kù)關(guān)閉處理。這將導(dǎo)致在下一次啟動(dòng)時(shí)(通過重放 WAL 日志)恢復(fù)。只在緊急 時(shí)才推薦這種方式。
kill -INT `head -1 /home/storage/pgsql/data/postmaster.pid`
連接數(shù)據(jù)庫(kù)
psql
服務(wù)器參數(shù)設(shè)置 或 調(diào)優(yōu)
1 共享內(nèi)存和信號(hào)量
默認(rèn)的共享內(nèi)存設(shè)置通常已經(jīng)足夠好了,除非您將shared_memory_type設(shè)置為sysv,即使這樣, 也只適用于低默認(rèn)值的舊內(nèi)核版本。System V信號(hào)量不在此平臺(tái)上使用。
共享內(nèi)存大小設(shè)置可以通過sysctl界面更改。例如,允許 16 GB:
$ sysctl -w kernel.shmmax=17179869184 $ sysctl -w kernel.shmall=4194304
2 Linux大頁面
3 資源限制
Unix類操作系統(tǒng)強(qiáng)制了許多種資源限制,這些限制可能干擾你的PostgreSQL服務(wù)器的操作。尤其重要的是對(duì)每個(gè)用戶的進(jìn)程數(shù)目的限制、每個(gè)進(jìn)程打開文件數(shù)目的限制以及每個(gè)進(jìn)程可用的內(nèi)存的限制。這些限制中每個(gè)都有一個(gè)“硬”限制和一個(gè)“軟”限制。實(shí)際使用的是軟限制,但用戶可以自己修改成最大為硬限制的數(shù)目。而硬限制只能由root用戶修改
4 systemd RemoveIPC
如果正在使用systemd,則必須注意IPC資源(包括共享內(nèi)存) 不會(huì)被操作系統(tǒng)過早刪除
方式一 創(chuàng)建用戶時(shí)使用以下方式,創(chuàng)建postgres為系統(tǒng)用戶
useradd -r
adduser --system
useradd --help
-r, --system create a system account
方式二 如果用戶創(chuàng)建不正確 或者 無法修改的情況下
修改文件 /etc/systemd/logind.conf
添加配置
RemoveIPC=no
5 Linux內(nèi)存使用問題
設(shè)置為可以使用物理內(nèi)存 和 交換空間(swap),可以避免在內(nèi)存用盡時(shí)PG進(jìn)程發(fā)生OOM
sysctl -w vm.overcommit_memory=2
某些情況中,降低內(nèi)存相關(guān)的配置參數(shù)可能有所幫助,特別是shared_buffers、work_mem和hash_mem_multiplier。在其他情況中,允許太多連接到數(shù)據(jù)庫(kù)服務(wù)器本身也可能導(dǎo)致該問題。
在很多情況下,最好減小max_connections并且轉(zhuǎn)而利用外部連接池軟件。
?參考
GitHub上的書籍
GitHub - faisalbasra/postgres_books
中文文檔
http://postgres.cn/docs/13
一個(gè)安裝博客
Linux上生產(chǎn)環(huán)境源碼方式安裝配置postgresql12_mob604757057176的技術(shù)博客_51CTO博客