一.OS环境+软件版本:
1. Vmware虚拟机16+centos7、
2.PG版本:13.4
二.安装部署:
1.创建postgres用户:useradd -m -U postgres
2.安装各种依赖:yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch
yum install -y readline-devel.x86_64
3.下载安装uuid ossp库:下载自行解决就行了。
tar -xzvf uuid-1.6.2.tar.gz-->cd uuid-->./configure-->make && make install
4.下载安装部署postgresql13.4:
a). tar -xzvf postgresql-13.4.tar.gz-->cd postgresql-13.4.0-->./configure --prefix=/home/postgres --enable-thread-safety --with-uuid=ossp --with-libs=/usr/local/lib --with-includes=/usr/local/include-->make-->make install-->cd contrib-->make-->make install
b). 配置uuid软链接:find / -name libuuid.so.16-->ln -s /usr/local/lib/libuuid.so.16 /home/postgres/lib-->chown -R postgres.postgres /home/postgres/-->配置环境变量vi /home/postgres/.bashrc 添加export PGHOME=/home/postgres
export PGDATA=$PGHOME/data
expot PATH=$PGHOME/.local/bin:$HOME/bin:$PGHOME/bin
-->source /home/postgres/.bashrc
c). 初始化数据库:initdb -D /home/postgres/data
d). 启动数据库 pg_ctl -D /home/postgres/data start
e)可以修改pg_hba.conf和postgresql.conf两个配置文件,修改完后重启数据库即可。
自此,安装部署就完成了,安装部署也参考了很多资料,最终结合自己的实践完成此安装部署过程。接下来讨论下配置开机自启。
三.配置开机自启:
相信很多同学在百度的时候都会出现很多PG配置开机自启动的方法,其实核心无非三种方式:
1.配置/etc/rc.d/rd.local文件,添加一行su - postgres -c "/home/postgres/bin/pg_ctl -D /home/postgres/data start"此方法经过测试试验,不能达到每次开机都自启,故不是我们想要的方法。
2.执行[postgres@fcj2 ~]$ sudo find / -iname linux命令会找到/opt/postgresql-13.2/contrib/start-scripts/linux-->cp /opt/postgresql-13.2/contrib/start-scripts/linux /etc/init.d/postgresql-->chmod a+x /etc/init.d/postgresql-->vi /etc/init.d/postgresql按照图示修改:
-->修改完保存退出-->chkconfig --list
-->chkconfig --add postgresql
-->chkconfig --list
通过测试,此方法同第一种方法结果相同,无法保证每次重启服务器都能完成开机自启,接下来的第三种方法是亲测可行的。
介绍第三种方法之前,先说个小知识点:就是RHEL 7/8系统替换了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务,即将RHEL 5/6系统熟悉的service、chkconfig系统服务管理命令改为了systemctl命令来管理服务。因为我用的是centos7,所以这也有可能是为什么用前两种方法无法做到开机自启的原因吧。这段与本文章无直接关系,当作参考即可。
3.touch /etc/systemd/system/postgresql.service-->vi /etc/systemd/system/postgresql.service文件添加以下内容:
注意:如果Type设置的是forking模式的话,一定要在下面加上PIDFile=/home/postgres/data/postmaster.pid 选项。
保存退出-->systemctl daemon-reload-->systemctl enable postgresql-->systemctl is-enabled postgresql-->systemctl start postgresql-->systemctl status postgresql
注意:在用此方法配置开机自启前需要将/etc/selinux/config配置文件的SELINUX设置为disabled,否则在执行systemctl start postgresql命令时会报错。另外,当在网上查询此方法的操作时还会有这样的方式,即将开始的touch文件操作改为:touch /usr/lib/systemd/system/postgresql.service,ln -s /usr/lib/systemd/system/postgresql.service /etc/systemd/system/这两步去完成,实际的RHEL7确实是通过这种方式完成的,但是通过我的测试,无法完成PG的开机自启,可能因为我操作的问题,也可能PG在这方面的支持存在问题。总之,以上介绍的第三种方法是可以实现PG开机自启的。
以上就是本次的分享,安装部署和配置开机自启两个过程。