[PostgreSql]生产级别数据库安装要考虑哪些问题?

大家好,我是字母哥(coder)!

我让公司的小伙伴写一个生产级别的PostgreSQL的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yum install postgresql-server,我也是挺无语的。要知道生产级别的应用安装方式,和自己在练习过程中安装的小玩具相比,要严谨的多,考虑的问题也更多。

  • 首先是安全问题,能不能用root安装?防火墙怎么搞?数据库打开文件以及连接数会不会超过linux默认打开文件句柄数的限制?
  • 其次是合理规划,你的数据放在哪个目录?这个目录是全公司统一的么?linux发行版不一样,软件安装目录一致么?数据目录是单独挂载磁盘么?单独挂载的磁盘做了RAID数据冗余么?
  • 然后是运维方便的问题,你是否配置了合理的环境变量,如果不配置你是不是每次执行命令都要敲全路径?是否PostgreSQL具备开机自启动功能?
  • 数据库用户是否经过合理规划,你的数据操作(增删改查)用户是否能新建表,truncat表,删除表?数据操作用户具备这些功能是不是导致人为误操作的风险增加?
  • 你的数据库安装之后,是否具备企业级的统一管理、故障监控?流程上如何申请?等等等等。

以上的这些问题,都需要写在《数据库安装手册》中,怎么会只有一个命令呢?本文只当抛砖引玉,通过安装PostgreSQL数据库,来说明一下一个完整的《数据库安装手册》该怎么写。 如果有考虑不足不全面之处,欢迎网友们补充。

一、安装包下载

要进行PostgreSQL的安装,首先我们需要先把安装包下载下来。生产环境的postgresql安装一般会使用源码编译的方式进行安装,使用源码编译的安装方式有几个好处(坏处就是相对麻烦):

  • 公司的服务器什么型号,什么操作系统版本的都有。如果使用yum或者apt-get安装,很难统一版本,不同的操作系统发行版带的postgreSQL源是不一样的。即使搞成统一的,不同的操作系统之间也无法统一安装目录的位置、lib存放位置等。
  • postgresql源码编译的方式进行安装,可以灵活的选择我们需要安装的版本,需要哪一个版本就下载哪一个版本。而使用yum或者apt-get进行安装只能源库指定的若干版本。源码安装,我们想指定什么目录就指定什么目录,全公司所有的PostgreSQL都在这个目录,这也是规范的一种。

所以为了适应更多的场景,为了达到公司内运维统一的标准,一般生产环境会使用postgresql源码编译的方式进行安装。PostgreSql官方源码安装包的下载地址是:https://www.postgresql.org/download/

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

二、必要的准备工作

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

1、安装必要的编译环境

首先需要安装一些必要的依赖,PostgreSQL安装的过程需要使用到这些linux包。

yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel python36 \ tcl openssl ncurses-devel openldap pam flex