系统版本:centos7
8核
32G内存
主从服务器IP:
192.168.125.33 postgreSQL master
192.168.125.34 postgreSQL slave
1、创建数据库管理账户
# groupadd pggroup
# useradd -g pggroup pguser
# passwd pguser
2、安装依赖包
yum install readline-devel zlib-devel -y
如果不安装以上两个包,编译postgresql就会报缺少相应包的错误,导致无法通过。
yum install postgresql-contrib
http://mirror.centos.org/centos/7/os/x86_64/Packages/uuid-devel-1.6.2-26.el7.x86_64.rpm
版本和系统的uuid版本一样,uuid-1.6.2-26.el7.x86_64
rpm -ivh uuid-devel-1.6.2-26.el7.x86_64.rpm
如果不安装以上的一个包,编译postgresql就会报以下的错误:
configure: error: library 'ossp-uuid' or 'uuid' is required for OSSP-UUID"
如果源里边有这个包,可以使用yum进行安装。
3、编译
主从服务器上传包postgresql-9.6.3.tar.gz,并进行编译
# tar -zxf postgresql-9.6.3.tar.gz
# cd postgresql-9.6.3
# ./configure --prefix=/usr/local/postgresql --with-ossp-uuid
# make && make install
4、编译uuid模块和pg_stat_statements模块
如果环境中不需要使用UUID类型的函数,也不需要pg_stat_statements函数模块对分析sql对资源占用的情况的话,可以跳过UUID和pg_stat_statements的处理,当然在之后的配置文件也要相应做修改。
# cd contrib/uuid-ossp
# make && make install
上边如果不编译uuid-ossp,就会出现下面的错误:
postgres=# create extension "uuid-ossp";
ERROR: could not open extension control file "/usr/local/postgresql/share/extension/uuid-ossp.control": No such file or directory
# cd contrib/pg_stat_statements
# make && make install
5、配置环境变量
# vi /etc/profile
export PGHOME=/usr/local/postgresql
export PGDATA=/data/pg_data
export PATH=$PATH:$PGHOME/bin
# source /etc/profile
6、给目录赋予权限
# make /data/pg_data
# chown -R pguser:pggroup /data/pg_data
# chown -R pguser:pggroup /usr/local/postgresql
7、主服务器初始化数据库
首先切换到普通用户
# su pguser
$ initdb -D /data/pg_data
启动服务
$ pg_ctl -D /data/pg_data start
8、创建数据同步用户
$ psql -h 127.0.0.1 -d postgres
postgres=# create role repuser login replication encrypted password '密码自己定义';
修改管理账户登录密码
postgres=# ALTER USER pguser WITH PASSWORD '密码自己定义'
postgres=# \q
9、修改配置文件
编辑pg_hba.conf
bash-4.2$ vi /data/pg_data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.125.0/24 md5
host all all 192.168.99.0/24 md5
# replication privilege.
host replication repuser 192.168.125.0/24 md5
说明:
TYPE定义了多种连接PostgreSQL的方式,分别是:“local”使用本地unix套接字,“host”使用TCP/IP连接(包括SSL和非SSL),“host”结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用IPv6方式,“hostssl”只