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
参考文章