PG版本概述
 
https://ftp.postgresql.org/pub/source/

15是当前(2022年)新出的版本,对大数据的支持比较强
13-14主要实现了分区表的功能
12 版本相对之前的版本是一个大的跨越
centos7 源码安装
centos7环境准备
docker run -itd --name pg5 -h pg5 --net mydk --ip 192.168.73.115 -v /opt:/opt/  -v /tmp:/tmp cent7 bash
docker exec -it pg5 bash

docker run -itd --name pg6 -h pg6 --net mydk --ip 192.168.73.116 -v /opt:/opt/  -v /tmp:/tmp cent7 bash
docker exec -it pg6 bash
yum install -y net-tools libaio numactl

依赖包检查
rpm -qa | grep readline-devel
rpm -qa | grep zlib-devel

yum search readline-devel

# 这个目录有讲究,如果出现命令执行完但软件包没下载的情况,就换/tmp目录试试 
mkdir -p /tmp/rpm 

yum install --downloadonly --downloaddir=/tmp/rpm readline-devel.x86_64
yum install --downloadonly --downloaddir=/tmp/rpm zlib-devel

rpm -Uvh --force --nodeps *.rpm

目录准备 
mkdir -p /opt/app/pg/

cd /opt/soft/pg
tar -xvf postgresql-12.13.tar.gz
./configure --prefix=/opt/app/pg
make
make install

创建存储数据的目录
mkdir -p /opt/app/pg/data
mkdir -p /opt/app/pg/walback
adduser postgres
chown -R postgres /opt/app/pg/data

su - postgres

PGHOME=/opt/app/pg
PGDATA=$PGHOME/data
ARCLOG_PATH=$PGHOME/walback
PATH=$PGHOME/bin:$PATH
export PGHOME PGDATA ARCLOG_PATH PATH

initdb
pg_ctl start
psql -U postgres

postgres=# \password
Enter new password for user "postgres":Book_1234
Enter it again:
postgres-# \q

### 设置监听
修改data目录下的pg_hba.conf配置文件,将IPv4 local connections下面的一行改为如下所示:
```sh
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust

```

postgresql.conf配置文件

```sh
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 = 300           # (change requires restart)

```

重启PostgreSQL服务:
pg_ctl restart
pg_ctl stop
pg_ctl start 

createuser tpf   -h 127.0.0.1 -p 5432  -c 30 -s --replication -d -l -r -P

测试表
CREATE TABLE t_sample AS
 SELECT a1::int
 FROM generate_series(1, 100) AS a1;

ALTER TABLE t_sample ADD COLUMN a2 int;
ALTER TABLE t_sample ADD COLUMN a3 int DEFAULT 10;
ALTER TABLE t_sample ADD COLUMN a4 text DEFAULT 'weixiao';
ALTER TABLE t_sample ADD COLUMN a5 int DEFAULT random()*1000;
alter table t_sample alter COLUMN a1 type bigint;
centos7自定义安装

mkdir -p /ai/app/
mv pgv1.tar.gz /ai/app/

cd /ai/app/
tar -xvf pgv1.tar.gz

cd pg/rpm 
rpm -Uvh --force --nodeps *.rpm
adduser postgres  
chown -R postgres /ai/app/pg/

su - postgres
cd
vim .bash_profile 
export PGHOME=/ai/app/pg
export PGDATA=$PGHOME/data
export ARCLOG_PATH=$PGHOME/walback
export PATH=$PGHOME/bin:$PATH

source .bash_profile

重启PostgreSQL服务:
pg_ctl start 

参考文章