postgresql9.6主从高可用源码环境编译配置详解

本文详细介绍了在CentOS7环境下,如何配置PostgreSQL 9.6的主从高可用环境,包括创建数据库用户、编译安装PostgreSQL、设置环境变量、配置主从数据库、建立数据同步、配置高可用组件Keepalived等步骤,确保在主库出现问题时,从库能自动接管服务。
摘要由CSDN通过智能技术生成

系统版本: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”只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值