ToB企服应用市场:ToB评测及商务社交产业平台

标题: [PostgreSql]生产级别数据库安装要考虑哪些问题? [打印本页]

作者: 铁佛    时间: 2022-9-16 17:24
标题: [PostgreSql]生产级别数据库安装要考虑哪些问题?
大家好,我是字母哥(coder)!
我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yum install postgresql-server,我也是挺无语的。要知道生产级别的应用安装方式,和自己在练习过程中安装的小玩具相比,要严谨的多,考虑的问题也更多。
以上的这些问题,都需要写在《数据库安装手册》中,怎么会只有一个命令呢?本文只当抛砖引玉,通过安装PostgreSQL数据库,来说明一下一个完整的《数据库安装手册》该怎么写。 如果有考虑不足不全面之处,欢迎网友们补充。
一、安装包下载

要进行PostgreSQL的安装,首先我们需要先把安装包下载下来。生产环境的postgresql安装一般会使用源码编译的方式进行安装,使用源码编译的安装方式有几个好处(坏处就是相对麻烦):
所以为了适应更多的场景,为了达到公司内运维统一的标准,一般生产环境会使用postgresql源码编译的方式进行安装。PostgreSql官方源码安装包的下载地址是:https://www.postgresql.org/download/

找到如上图所示的“file browser”,点击进入file browser页面,下载以“tar.gz”结尾的安装包即可。

二、必要的准备工作

需要说明的是,准备工作需要使用root用户进行操作。我们以CentOS linux发行版操作系统为例,命令如下。如若是其他的linux发行版,准备工作这一块内容操作步骤是差不多的,linux命令需要调整。
1、安装必要的编译环境

首先需要安装一些必要的依赖,PostgreSQL安装的过程需要使用到这些linux包。
  1. yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel  python36 \
  2. tcl openssl ncurses-devel openldap pam flex
复制代码
2、创建postgre用户

通过groupadd添加一个用户组postgres,再使用adduser命令添加一个操作系统的postgres用户,该用户的用户组是-g postgres。
  1. groupadd postgres
  2. adduser -g postgres postgres
复制代码
adduser命令在CentOS或者RedHat发行版中,在添加操作系统用户的同时会自动新建一个该用户的主目录/home/postgres,该目录也是我们后续安装PostgreSql的主目录。该目录的权限归属于postgres组的postgres用户。
  1. passwd postgres
复制代码
新建用户之后,我们使用passwd命令修改操作系统内的postgres用户的密码。
如果你使用的是其他的linux操作系统发行版,这个目录你可能需要手动的去创建,并且手动执行命令为postgres 用户赋权。命令如下
  1. mkdir -p /home/postgres;
  2. chmod -R 775 /home/postgres;
  3. chown -R postgres:postgres /home/postgres;
复制代码
3、开放防火墙端口

开放防火墙,使用如下2条命令开放postgreSQL的标准端口5432的端口。其实,笔者建议安装postgreSQL的时候,不要使用这个端口,因为端口越固定,被攻击的可能性就越大。我们随机选择一个不常用的端口,安全性会更好一些,这里我还是使用标准端口了。
  1. firewall-cmd --zone=public --add-port=5432/tcp --permanent;
  2. firewall-cmd --reload
复制代码
4.修改操作系统打开最大文件句柄数

在/etc/security/limits.conf中进行设置(需要root权限修改该文件),可添加如下两行,表示用户postgres最大打开文件描述符数的soft limit为65535,hard limit为65535。
  1. postgres soft   nofile         65535
  2. postgres hard   nofile        65535
复制代码
该配置在关闭linux访问终端session重新登录之后生效,ulimit -n的值会变成65535 。进行这一步操作的目的是防止linux操作系统内打开文件句柄数量的限制,避免不必要的故障。
5、创建必要的目录

创建目录的时候要做好规划,下文中 /home/postgres/postgre14是我规划的postgreSql安装目录; /home/postgres/pgdata是我规划的postgreSql数据存放目录。
  1. mkdir -p /home/postgres/{postgre14,pgdata}
复制代码
这里需要注意的是, /home/postgres/pgdata这样的目录规划并不标准,这里我只是给大家做演示操作。实际上生产环境,postgreSql数据存放目录应该是服务器单独挂载的一块磁盘,与linux操作系统以及安装程序是分开的。 这样做的好处:一是方便数据备份(硬件层面或软件层面),二是操作系统出现的问题,不影响数据安全。
三、编译并安装

准备工作做好之后我们就开始真正的安装了,安装过程使用postgres用户,使用su命令从root用户切换到postgres用户。并且解压安装包,解压路径是/home/postgres。
  1. su - postgres
  2. tar -xzvf ./postgresql-14.4.tar.gz -C /home/postgres
复制代码
解压之后的文件路径是postgresql-14.4,进入这个目录里面,我们来执行编译安装,编译安装的结果目录我们指定为/home/postgres/postgre14。最后一步make和insatll的过程比较耗时,多等一会。如果没有报错信息,我们的安装就完成了,其实也很快的,并不比yum安装方式麻烦多少。
  1. cd  /home/postgres/postgresql-14.4
  2. ./configure --prefix=/home/postgres/postgre14
  3. make  && make install
复制代码
四、配置环境变量

安装完成之后,我们来给postgres配置一些环境变量,比如PGPORT端口、PGDATA数据目录、PGHOME安装目录、LD_LIBRARY_PATH的安装lib目录、PATH命令脚本目录。
[code]cat >>  ~/.bash_profile  /home/postgres/pgdata/postgresql.conf




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4