重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 183|回复: 0
打印 上一主题 下一主题

基于 RHEL10 BETA版源码安装PG17.2

[复制链接]
跳转到指定楼层
楼主
发表于 2024-12-1 20:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RHEL10 现在还是BETA版本,根据红帽产品发布规律,未来在2025年5月份发布,PG17已经正式发布,而且已经到17.2版本,一直说安装来尝试一下,今天正好试一下,一直习惯了源码安装,本次也不例外。
具体步骤如下:
一、安装前准备1.1 关闭防火墙
systemctl disablefirewalld
1.2关闭seliux
rhel9以上版本关闭SELINUX和9以前版本有点区别。使用以下命令即可
# grubby --update-kernel ALL --args selinux=0
# reboot
说明:
selinux 必须关闭,否则,使用systemd启动,会报:
dbserver (pg_ctl)[2994]:pg17.service: Unable to locate executable 'bin/pg_ctl': Permission denied

1.3 关闭透明大页
# grubby --update-kernel ALL --argstransparent_hugepage=never
重启生效

1.4安装必要的包
这里需要的包:
make
gcc
tar
readline and readline-devel
zlib
zlib-devel
ICU
libicu-devel

安装命令
yum  -y install makegcc tar readline readline-devel zlib zlib-devel icu libicu-devel

1.5安装可选的包
Perl
Python
Tcl
Gettext
OpenSSL
MIT, OpenLDAP, and/or PAM
LZ4 ,用于TOTAST,WAL压缩
Zstandard 1.4.0,用于 wal压缩
Flex and Bison 用于git

安装命令
yum -y install perlpython tcl gettext openssl mit openldap pam lz4 zstandard flex bison

1.6安装支持中文的包
yum install glibc-common langpacks-zh_CN glibc-langpack-zhglibc-locale-source

1.7建立目录
习惯了ORACLE的方式,按该习惯命名目录
# mkdir /u01/app/postgres/product/17.2/dbhome_1 -p
# mkdir /u01/app/postgres/pgdata -p
# mkdir /u01/setup/source -p
1.8创建用户
groupadd postgres
useradd -g postgres postgres
echo "postgres" | passwd --stdin postgres
RHEL10 安全性要求比较高,对用户密码有长度,复杂度要求,如果你想回到RHEL9以前模式,可以修改 /etc/pam.d/system-auth ,在pam_pwquality.so 后面加上以前的要求即可,具体见下图。


1.9授权
chown -R postgres:postgres /u01/app/postgres
chmod -R 775 /u01/app/postgres

chown -R postgres:postgres /u01/setup/source
二、安装PG2.1.下载安装文件到 /u01/setup/source
# cd /u01/setup/source
2.2.解压
su – postgres
tar xvf postgresql-17.2.tar.gz
2.3.Configure
cd /u01/setup/source/postgresql-17.2


./configure --prefix=/u01/app/postgres/product/17.2/dbhome_1

2.4.编译
make  world -j 16 (含所有功能及文档)
2.5.安装      make install-world -j 162.6.配置环境变量
cat >>  ~/.bash_profile<<"EOF"
export PGPORT=2025   --马上到2025,提前迎接一下
export PGDATA=/u01/app/postgres/pgdata
export PGHOME=/u01/app/postgres/product/17.2/dbhome_1
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgres
export PGCLIENTENCODING=GBK
EOF


2.7.创建数据库集群
# su - postgres
$ source.bash_profile
$ initdb -D /u01/app/postgres/pgdata-E UTF8 --locale=zh_CN.UTF8 -U postgres

2.8.修改数据库参数
cat >> $PGDATA/postgresql.conf<< "EOF"
listen_addresses = '*'
port=2025
unix_socket_directories='/u01/app/postgres/pgdata'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
max_connections = 500
shared_buffers = 2GB
EOF

cat >> $PGDATA/pg_hba.conf<< "EOF"
# TYPE  DATABASE    USER   ADDRESS       METHOD
host      all       all   0.0.0.0/0        md5
EOF
2.9启停PG
su - postgres
pg_ctl start
pg_ctl status
pg_ctl stop
2.10验证
三、完善PG相关3.1.配置PG自动启动服务
cat > /etc/systemd/system/pg17.service<<"EOF"
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGPORT=2025
Environment=PGDATA=/u01/app/postgres/pgdata
OOMScoreAdjust=-1000
ExecStart=/u01/app/postgres/product/17.2/dbhome_1/bin/pg_ctlstart -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/u01/app/postgres/product/17.2/dbhome_1/bin/pg_ctlstop -D ${PGDATA} -s -m fast
ExecReload=/u01/app/postgres/product/17.2/dbhome_1/bin/pg_ctlreload -D ${PGDATA} -s
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0

[Install]
WantedBy=multi-user.target
EOF

--配置生效
# systemctldaemon-reload

# systemctl enable pg17

# systemctl start pg17

# systemctl status pg17

3.2.设置内核参数
cat > /etc/sysctl.conf <<EOF
vm.swappiness=10     --交换内存使用设置
vm.zone_reclaim_mode=0   
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.shmmax = 8589934592
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 250 128
EOF
3.3.设置资源限制
cat >>/etc/security/limits.conf <<"EOF"
* soft nofile 131072
* hard nofile 131072
* soft nproc 131072
* hard nproc 131072
* soft core unlimited
* hard core unlimited
* soft memlock unlimited
* hard memlock unlimited
EOF
到此,数据库安装完成.


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-12-27 00:07 , Processed in 0.088613 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表