部署环境
操作系统:Anolis8.8
数据库版本:15.3
1、创建用户组和用户
groupadd -g 1000 postgres
useradd -u 1000 -g 1000 postgres
echo "postgres" | passwd postgres --stdin
2、创建安装和数据目录
mkdir -p /opt/pgsql /data/pgdata /data/pgbackup /data/pgarchive
3、安装依赖包软件
操作系统工具包:yum install -y vim tar lrzsz wget bzip2 unzip net-tools network-scripts telnet tree mlocate bash-completion
PG安装依赖软件:yum install -y gcc gcc-c++ make zlib-devel readline-devel python3-devel openssl-devel libxml2-devel perl-ExtUtils-Embed perl-devel
重要依赖:readline, flex, bison
精简依赖包安装:yum install -y cmake make gcc gcc-c++ perl readline readline-devel zlib zlib-devel
4、配置环境变量
vi /etc/profile
export PGHOME=/usr/local/pgsql
export PGDATA=/data/pgdata
export PGPORT=5432
export PGUSER=postgres
export PGDATABASE=postgres
export PGHOST=192.168.68.101
export PATH=$PGHOME/bin:$PATH:.
export LD_LIBRARY_PATH=${PGHOME}/lib:${LD_LIBRARY_PATH}
export LANG=en_US.utf8
export MANPATH=/usr/local/pgsql/share/man:$MANPATH
export PS1="[`whoami`@`hostname`:"'$PWD]$'
设置共享库
/sbin/ldconfig /usr/local/pgsql/lib
5、编译安装
tar -xvf postgresql-15.3.tar.gz -C /opt/pgsql
cd /opt/pgsql/postgresql-15.3
./configure --prefix=/opt/pgsql/postgresql-15.3 --with-python --with-perl --with-openssl --with-libxml
make world -j 6
make install-world
#编译参数说明
--prefix=/opt/pgsql/postgresql-15.3 指定数据库软件安装目录
--with-blocksize=?kb 指定数据文件块大小,默认8k
--with-segsize=?GB 指定单个文件大小,默认1GB
--with-wal-segsize=?MB 指定wal日志大小,默认16MB
--with-perl,--with-python 存储过程支持所需
--with-openssl #对openssl进行扩展支持
--with-python #对python进行扩展支持
--with-perl #对perl进行扩展支持
--with-libxml #对xml进行扩展支持
6、创建目录链接
ln -sf /opt/pgsql/postgresql-15.3 /usr/local/pgsql
chown -R postgres.postgres /opt/pgsql /data/pgdata /data/pgbackup /data/pgarchive
chmod 700 /data/pgdata /data/pgbackup /data/pgarchive
7、初始化数据库
su - postgres
initdb -A md5 -D $PGDATA -E utf8 --locale=C -U postgres -W -k
#设置密码postgres,复制时需要 --data-checksums 或者设置 "wal_log_hints = on"
# -E UTF8 --locale=zh_CN.utf8 指定数据库字符编码
# -D:database cluster的主目录
# -U:指定超级用户
# -W:指定用户密码
# --waldir:指定wal日志路径
8、PG配置文件
cd $PGDATA
vi postgresql.conf
listen_addresses = '*'
logging_collector = on
wal_level = replica
wal_log_hints = on
wal_keep_size = 16
max_wal_senders = 3
wal_sender_timeout = 60s
archive_mode = on
archive_command = 'cp %p /data/pgarchive/%f'
#注意15版本里 wal_keep_segments已不存在 新增wal_keep_size和max_slot_wal_keep_size
vi pg_hba.conf
# IPv4 local connections:
host all postgres 192.168.68.101/32 trust
host all all 192.168.68.0/24 md5
9、启动数据库
su - postgres
pg_ctl start
psql -d postgres
postgres=# select version();
postgres=# create database testdb;
postgres=# \q




