postgresql 12.5軟體原始碼安裝

jaymarco發表於2020-11-27

接下來介紹如何原始碼安裝postgresql12.5,需要提前準備一臺centos7 4C,8G主機來做這個實驗。

一、環境準備

1.1、OS引數最佳化

1.1.1   關閉操作透明大頁

# 透過引數關閉大頁

echo never > /sys/kernel/mm/transparent_hugepage/enabled  

echo 'echo never >   /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local

# 驗證是否關閉了透明大頁

grep HugePages_Total  /proc/meminfo

cat /proc/sys/vm/nr_hugepages

1.1.2 核心引數調優

修改核心引數誰的/etc/sysctl.conf ,增加以下內容後,執行 sudo sysctl -p 生效。

vm.dirty_expire_centisecs=3000

net.ipv4.tcp_synack_retries=2

net.core.rmem_default=262144

vm.dirty_background_bytes=409600000

net.core.wmem_default=262144

vm.mmap_min_addr=65536

vm.overcommit_ratio=90

kernel.shmmni=819200

net.core.rmem_max=4194304

vm.dirty_writeback_centisecs=100

fs.file-max=76724600

net.core.somaxconn=4096

fs.aio-max-nr=1048576

net.ipv4.tcp_max_tw_buckets=262144

vm.swappiness=0

fs.nr_open=20480000

net.ipv4.tcp_fin_timeout=5

net.ipv4.ip_local_port_range=40000   65535

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_mem=8388608   12582912 16777216

kernel.shmmax = 329853488332

kernel.shmall=80530636

kernel.shmmni =   4096

kernel.msgmax =   65536

kernel.msgmni =   2005

kernel.msgmnb =   65536

kernel.sem=4096   2147483647 2147483646 512000

net.ipv4.tcp_keepalive_intvl=20

net.ipv4.tcp_keepalive_time=60

vm.overcommit_memory=0

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=4096

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_rmem=8192   87380 16777216

net.ipv4.tcp_wmem=8192   65536 16777216

net.core.wmem_max=4194304

vm.dirty_ratio=80

net.core.netdev_max_backlog=10000

vm.zone_reclaim_mode=0

net.ipv4.tcp_tw_reuse=1

vm.nr_hugepages=192000

vm.nr_overcommit_hugepages=1000000

vm.overcommit_memory   = 2

  建立 /etc/security/limits.d/limits.conf ,內容如下:

* soft nofile 655360

* hard nofile   655360

* soft nproc 655360

* hard nproc 655360

* soft memlock   unlimited

* hard memlock   unlimited

* soft core   unlimited

* hard core   unlimited

 1.1.3  關閉防火牆服務和selinux

-- 關閉防火牆

systemctl stop   firewalld

systemctl disable   firewalld

-- 關閉 selinux

vi /etc/selinux/config

SELINUX=disabled               -- 修改為disabled

1.2 postgres使用者建立

groupadd   postgres;useradd -g  postgres postgres

echo " postgres23" | passwd  postgres--stdin

1.3 postgresql軟體包下載

postgresql官網下載12.5軟體包  ,下載連結如下

二、Postgresql安裝

2.1 PG編譯安裝

解壓軟體包

tar xvf postgresql-12.5.tar.gz   -C /data/

編譯 pg 軟體

mkdir -p   /data/postgresql12.5/

cd   /data/postgresql-12.5/

./configure   –prefix=/data/postgresql12.5/

make   && make install

安裝後,可執行檔案,庫檔案等都會安裝在 /data/postgresql12.5/ 中。

[postgres@localhost   pg1205]$ ls

bin  data    include  lib  share

2.2 配置環境變數

將以下幾行變數新增至postgres 使用者的下的環境變數檔案 .bash_profile中 ,並執行命令source .bash_profile生效。

export.utf8

export PGHOME=/data/postgresql12.5/

export PGDATA=$PGHOME/data/

export PGPORT=5432

export   LD_LBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

export   PATH=$PGHOME/bin:$PATH

2.3 初始化資料庫

以下操作都是在postgres使用者下進行

建立資料庫儲存目錄

m kdir   $PGDATA

Postgresql 資料庫的配置檔案,資料檔案等都會存放在這個路徑下。

初始化資料庫

i nitdb   –locale=C -E UNICODE -D $PGDATA

 

如下示例說明資料庫建立成功

  The files belonging to this database system   will be owned by user "postgres".

This   user must also own the server process.

 

The   database cluster will be initialized with locale "C".

The   default text search configuration will be set to "english".

 

Data   page checksums are disabled.

 

fixing   permissions on existing directory /data/postgresql12.5/data ... ok

creating   subdirectories ... ok

selecting   dynamic shared memory implementation ... posix

selecting   default max_connections ... 100

selecting   default shared_buffers ... 128MB

selecting   default time zone ... America/New_York

creating   configuration files ... ok

running   bootstrap script ... ok

performing   post-bootstrap initialization ... ok

syncing   data to disk ... ok

 

initdb:   warning: enabling "trust" authentication for local connections

You can   change this by editing pg_hba.conf or using the option -A, or

--auth-local   and --auth-host, the next time you run initdb.

 

Success.   You can now start the database server using:

 

    pg_ctl -D /data/postgresql12.5/data/ -l   logfile start

2.4 修改配置檔案

這裡主要修改如下兩個配置檔案

l   postgresql.conf 針對例項的配置

l   pg_hba.conf 針對資料庫訪問的控制

postgresql.conf配置檔案修改成如下

listen_ addresses = '*'          #   what IP address(es) to listen on;

                                        #   comma-separated list of addresses;

                                        # defaults to   'localhost'; use '*' for all

                                        #   (change requires restart)

port =   5432                             #   (change requires restart)

max_connections   = 1000                  # (change requires restart)

pg_hba.conf配置檔案新增如下行

host      all             all             0.0.0.0/0               md5

 以上配置已經完成

2.5 啟動資料庫

手動啟動資料庫使用如下命令

p g_ctl   -D $PGDATA  stop  # 停止 pg 命令

pg_ctl -D   $PGDATA  start  # 啟動 pg 命令

  如下是啟停PG示例

[postgre s@zabbix data]$ pg_ctl -D $PGDATA -l logfile start

waiting   for server to start.... done

server   started

[postgres@   zabbix data]$ pg_ctl -D $PGDATA stop

waiting   for server to shut down.... done

server   stopped

2.6 配置服務開機自啟動

此步驟需要root使用者操作。 postgresql 的安裝包中提供了資料庫啟動與關閉的指令碼,可以幫助我們簡化操作,也可以 用作開機啟動的指令碼和service/systemctl 控制服務的指令碼。 指令碼位於:

/data/postgresql-12.5/contrib/start-scripts

設定開機啟動

c p   /data/postgresql-12.5/contrib/start-scripts/linux /etc/init.d/postgresql

chkconfig   –add postgresql

chmod 755   /etc/init.d/postgresql

然後調整/etc/init.d/postgresql指令碼如下內容

prefix= /data/postgresql12.5 # 軟體的安裝路徑

PGDATA="/data/postgresql12.5/data"   # 資料存放路徑

PGUSER=postgres   # 啟動 postgresql 服務的使用者

透過service 命令控制啟動和關閉

s ervice   postgresql stop

service postgresql   start


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2737480/,如需轉載,請註明出處,否則將追究法律責任。

相關文章