PostgreSQL数据库的安装
1 总体规划
操作系统 |
CentOS Linux release 7.5.1804 |
处理器 |
1 |
内存 |
4G |
硬盘 |
38G |
主机名称 |
chenzx |
IP地址 |
192.168.56.8 |
1.1 用户组和用户规划
PostgreSQL数据库建议运行在特定的用户与用户组下。对于同一主机安装不同PostgreSQL数据库的场景,建议使用不同的用户管理不同的数据库。
用户ID |
用户名称 |
用户组ID |
用户组名称 |
备注 |
1002 |
postgres |
1002 |
postgres |
数据库操作系统用户 |
用户不存在则很使用以下命令创建:
# groupadd -g 1002 postgres # useradd –u 1002 –g postgres postgres
若已存在则使用以下命令修改:
# groupmod -g 1001 postgres # usermod -s /bin/bash -u 1001 postgres
1.2 网络规划
应用通过服务IP接入PROD数据库,故障时通过服务IP的漂移实现高可用性。本文不涉及高可用部分,需要开放5432端口,固定IP用于复制接入,服务IP用于应用接入。
接口名 |
主机名 |
IP地址 |
端口 |
描述 |
ens32 |
chenzx |
192.168.56.8 |
5432 |
固定IP地址 |
1.3 数据库文件系统规划
数据库相关文件系统规划,一个好的文件系统规划,有利于后续运维人员进行维护。
路径 |
文件系统大小 |
功能说明 |
/postgres |
20GB |
软件存放目录,存放数据库软件目录。 |
/postgres/pgdata |
200GB |
数据库数据文件等文件存放目录,可以根据具体需求再进行拆分,大小视数据量而定。 |
/postgres/soft |
软件安装包存放目录。 |
创建相关目录:
# mkdir –p /postgres/pgdata # mkdir –p /postgres/soft
修改相关目录的属组信息:
# chown –R postgres: postgres /postgres
2 系统参数配置
3 PostgreSQL安装
3.1 下载PostgreSQL介质
本文主要介绍PostgreSQL源码软件的安装过程。源码软件安装包可以到官网(https://www.postgresql.org/download/)进行下载。
点击“Source”后进入下一个界面,选择相应下载版本。本文以v9.6.11为例,点击“v9.6.11”
下载选择的软件包,bz2文件或者gz文件,本文以gz文件为例:
3.2 上传介质并校验
使用scp或者ftp等工具把安装包(mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz)上传至服务器,并使用命令生成软件安装包的md5码与官网md5码进行比对:
$ md5sum postgresql-9.6.11.tar.gz
比对结果必须一致!!!
官网提供MD5码 |
下载后生成MD5码 |
比对结果 |
6410347aed2c3b864277fe3b61002b20 |
6410347aed2c3b864277fe3b61002b20 |
一致 |
3.3 安装PostgreSQL
1) 解压安装包
$ su – postgres $ tar -zxvf postgresql-9.6.11.tar.gz -C /postgresql/soft/
2) 编译并安装
$ su – postgres $ cd /postgres/soft/postgresql-9.6.11 $ ./configure --prefix=/postgres/postgresql-9.6.11 --with-perl --with-libxml --with-libxslt $ make && make install
3) 建立软链接
$ su - # ln -s /postgres/postgresql-9.6.11 /usr/local/pgsql # cd /usr/local # chown -R postgres:postgres pgsql
3.4 初始化PostgreSQL
$ su - postgres $ /usr/local/pgsql/bin/initdb -D /postgres/pgdata --encoding="UTF8"
3.5 启动PostgreSQL
$ /usr/local/pgsql/bin/pg_ctl -D /postgres/pgdata -l logfile start
3.6 关闭PostgreSQL
$ /usr/local/pgsql/bin/pg_ctl stop -D /postgres/pgdata -m fast