溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Centos如何安裝postgresql?

發(fā)布時(shí)間:2020-05-25 10:21:34 來源:億速云 閱讀:341 作者:Leah 欄目:數(shù)據(jù)庫

今天小編就為大家?guī)硪黄榻BCentos安裝postgresql的文章。小編覺得挺實(shí)用的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

這篇文章給大家分享的是linux安裝win7系統(tǒng)的詳細(xì)安裝教程,相信大部分人都還不知道怎么安裝,為了讓大家學(xué)會,給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

安裝概要

環(huán)境centos 7.4/5/6 x86_64,源碼安裝,安裝過程沒啥好說的,主要是配置服務(wù)器的參數(shù);既然是服務(wù)器,咱還是要嚴(yán)謹(jǐn)點(diǎn),再說linux COPY 速度也很快,體力活;

下載介質(zhì):wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz

1 軟件包安裝

yum install net-tools -y
yum install sysstat -y
yum install iotop libXp redhat-lsb gcc gdb –y
yum install xorg-x11-xauth -y
yum install -y vim lrzsz tree wget gcc gcc-c++ readline-devel hwloc smartmontools
--db
yum install -y readline readline-devel openssl openssl-devel zlib zlib-devel numactl


2 啟用大頁

啟用大頁:

DB:

/etc/default/grub
net.ifnames=0 biosdevname=0 default_hugepagesz=2M hugepagesz=2M hugepages=81920 transparent_hugepage=never

執(zhí)行生效命令

grub2-mkconfig -o /boot/grub2/grub.cfg

修改大頁數(shù)量,不用重啟生效:

sysctl -w vm.nr_hugepages=81920

復(fù)查:

cat /proc/cmdline
cat /sys/kernel/mm/transparent_hugepage/enabled
[root@kbj-db-1 ~]# grep -i hugepage /proc/meminfo
AnonHugePages:         0 kB
HugePages_Total:   81920
HugePages_Free:    44703
HugePages_Rsvd:    43036
HugePages_Surp:        0
Hugepagesize:       2048 kB


 3 更改內(nèi)核參數(shù)

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.panic_on_oops=1
net.core.somaxconn = 8192
net.ipv4.tcp_keepalive_time = 600  #默認(rèn)7200
net.ipv4.ip_local_port_range = 10000 65000 #默認(rèn)32768到61000 
net.ipv4.tcp_max_syn_backlog = 8192 #默認(rèn)1024
net.ipv4.tcp_max_tw_buckets = 5000 #默認(rèn)65535
#vm.nr_hugepages = 81920  #Db 啟用81920*2M的大頁
kernel.sem = 4096 128000 64  512
vm.swapniess=10
大頁的算法官方提供了一個(gè)腳本:
#!/bin/bash
pid=`head -1 $PGDATA/postmaster.pid`
echo "Pid:            $pid"
peak=`grep ^VmPeak /proc/$pid/status | awk '{ print $2 }'`
echo "VmPeak:            $peak kB"
hps=`grep ^Hugepagesize /proc/meminfo | awk '{ print $2 }'`
echo "Hugepagesize:   $hps kB"
hp=$((peak/hps))
echo Set Huge Pages:     $hp

4更改用戶限制

vi /etc/security/limits.conf
postgres soft nproc 16384
postgres hard nproc 16384
postgres soft nofile 65536
postgres hard nofile 65536


5修改環(huán)境變量(HISTORY)

vi /etc/profile

export.UTF8

export HISTTIMEFORMAT="%F %T "

export HISTSIZE=12000

ulimit -SHn 65536

6更改數(shù)據(jù)庫服務(wù)器磁盤IO算法

磁盤的IO調(diào)度算法,根據(jù)實(shí)際情況調(diào)整,推薦cfq/noop


echo noop>/sys/block/sdb/queue/scheduler
cat /sys/block/sdb/queue/scheduler
[noop] deadline cfq
[root@kbj-db-1 ssd]# time dd if=/dev/zero of=/ssd/test.dmp bs=8192 count=12800000
^C記錄了4873412+0 的讀入
記錄了4873412+0 的寫出
39922991104字節(jié)(40 GB)已復(fù)制,35.9298 秒,1.1 GB/秒

7配置用戶及目錄

groupadd -g 106 ssl-cert
groupadd -g 107 postgres
useradd -g postgres -G ssl-cert -u 104 postgres
chown postgres:postgres -R /ssd
su - postgres
[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/
[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/pg114data
[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/114arch
[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/pg114home

8設(shè)置postgresql環(huán)境變量

export PGDATA=/ssd/database/pg114data
export PGARCH=/ssd/database/114arch
export PGHOME=/ssd/database/pg114home
export LD_LIBRARY_PATH=/ssd/database/pg114home/lib
export PATH=$PGHOME/bin:$PATH PATH=$PATH:$HOME/.local/bin:$HOME/bin

9安裝

./configure根據(jù)實(shí)際情況選擇

tar -xzvf postgresql-11.4.tar.gz
cd postgresql-11.4/
./configure --prefix=/ssd/database/pg114home --with-python --with-ossp-uuid --with-libxml --with-openssl --enable-dtrace --enable-debug
cd /ssd/postgresql-11.4/contrib/
make make install /ssd/postgresql-11.4/contrib/file_fdw
cd $PGHOME/bin/
 ./initdb -D $PGDATA
#連接數(shù)據(jù)庫 
psql -p5432 -Upostgres -d postgres
#安裝插件
create extension pg_buffercache ;
create extension pg_stat_statements;
CREATE EXTENSION file_fdw;
create extension pgrowlocks;
CREATE SERVER file_fdw_server FOREIGN DATA WRAPPER file_fdw;
 select current_database(),* from pg_extension
 select * from pg_available_extensions where name like '%uuid%';
 --擴(kuò)展插件檢查 
select * from pg_available_extensions where name in ( 'fuzzystrmatch','pg_visibility','tablefunc','amcheck','intarray','tsm_system_time','pgrowlocks','tcn','dict_int','unaccent','btree_gin','dict_xsyn','intagg','insert_username','dblink','lo','uuid-ossp','adminpack','bloom','postgres_fdw','pageinspect','pg_freespacemap','pg_prewarm','pgcrypto','pg_buffercache','file_fdw','btree_gist','xml2','citext','pg_stat_statements','refint','pgstattuple','timetravel','hstore','moddatetime','isn','cube','autoinc','pg_trgm','ltree','plpgsql','seg','tsm_system_rows','earthdistance')
說明一下:
指定安裝參數(shù): 
--with-wal-segsize=SEGSIZE
設(shè)置WAL 段尺寸,以 M 字節(jié)計(jì)。這是 WAL 日志中每一個(gè)獨(dú)立文件的尺寸。調(diào)整這個(gè)值來控制傳送 WAL 日志的粒度非常有用。默認(rèn)尺寸為 16 M字節(jié)。這個(gè)值必須是2的冪并且在 1 到 1024 (M字節(jié))之間。注意修改這個(gè)值需要一次 initdb。
--with-segsize=SEGSIZE
設(shè)置段尺寸,以 G 字節(jié)計(jì)。大型的表會被分解成多個(gè)操作系統(tǒng)文件,每一個(gè)的尺寸等于段尺寸。這避免了與操作系統(tǒng)對文件大小限制相關(guān)的問題。默認(rèn)的段尺寸(1G字節(jié))在所有支持的平臺上都是安全的。如果你的操作系統(tǒng)有“l(fā)argefile”支持(如今大部分都支持),你可以使用一個(gè)更大的段尺寸。這可以有助于在使用非常大的表時(shí)消耗的文件描述符數(shù)目。但是要當(dāng)心不能選擇一個(gè)超過你將使用的平臺和文件系統(tǒng)所支持尺寸的值。你可能希望使用的其他工具(如tar)也可以對可用文件尺寸設(shè)限。如非絕對必要,我們推薦這個(gè)值應(yīng)為2的冪。注意改變這個(gè)值需要一次 initdb。
--with-blocksize=BLOCKSIZE
設(shè)置塊尺寸,以 K 字節(jié)計(jì)。這是表內(nèi)存儲和I/O的單位。默認(rèn)值(8K字節(jié))適合于大多數(shù)情況,但是在特殊情況下可能其他值更有用。這個(gè)值必須是2的冪并且在 1 和 32 (K字節(jié))之間。注意修改這個(gè)值需要一次 initdb。
--with-wal-blocksize=BLOCKSIZE
設(shè)置WAL 塊尺寸,以 K 字節(jié)計(jì)。這是 WAL 日志存儲和I/O的單位。默認(rèn)值(8K 字節(jié))適合于大多數(shù)情況,但是在特殊情況下其他值更好有用。這個(gè)值必須是2的冪并且在 1 到 64(K字節(jié))之間。注意修改這個(gè)值需要一次 initdb。
--with-python 制作PL/Python服務(wù)器端編程語言。
完整參考:http://www.postgres.cn/v2/document


10 更改日志文件默認(rèn)配置

1 #啟用DDL記錄

log_statement=ddl

2日志保留91,log_line_prefix = '%m %p %u %d %r %a '

log_rotation_age = 91d
log_rotation_size = 20MB
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

3 啟用文件權(quán)限,EFK使用

log_file_mode=0604

4 啟用長時(shí)SQL記錄auto_explain.log_min_duration=10000

archive_mode = on
archive_command = 'cp %p /home/postgres/arch/%f'
wal_level =replica

以上就是Centos安裝postgresql的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI