CentOS7 安装PG集群

注:是CentOS, PG版本是10

一、PG单机安装

准备两台服务器

主机名IPhostname端口
master192.168.50.100master5432
slave192.168.50.101slave5432

1.获取源

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y

2.使用yum安装

yum install postgresql10-contrib postgresql10-server -y

3.初始化数据库

  • 初始化数据库
  • 启动数据库
  • 添加到开机启动
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl start postgresql-10
systemctl enable postgresql-10.service

4.配置数据库

  • 切换用户
  • 连接数据库
  • 设置数据库密码
  • 退出
su - postgres
psql
ALTER USER postgres WITH PASSWORD ‘password’;
\q

5.配置外网访问

  • 编辑pg_hba.conf文件
vi /var/lib/pgsql/10/data/pg_hba.conf
  • 翻到文件最后,将最后三行注释,并添加一行代码
host all all 0.0.0.0/0 md5
  • 编辑postgresql.conf文件,将 listen_addresses 修改为 listen_addresses = ‘*’
  • 重启postgresql
systemctl restart postgresql-10
  • 测试postgresql连接(自己测试吧,就不上图了)

二、集群整合

1.配置hosts

在主、备服务器上都设置

[root@master ~]# cat /etc/hosts
127.0.0.1   localhost
192.168.50.100 master
192.168.50.101 slave

2.[可选]初始化master数据库

上面已经介绍了如何初始化,这里不在讲解

3.master创建PG用户

创建用户用户复制WAL日志,在psql下创建!!!

CREATE USER repuser replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD '123456';

4.配置master的pg_hba.conf

在最后一行加上下面内容

host replication      repuser         slave          md5

5.配置master的postgresql.conf

listen_addresses = '*' 
port = 5432 
max_wal_senders = 10 
wal_level = replica
archive_mode = on 
archive_command = 'cd ./'
hot_standby = on
wal_keep_segments = 64
full_page_writes = on
wal_log_hints = on

6.重启数据库

systemctl restart postgresql-10

7.pg_basebackup 创建备库

在slave端的postgres用户下执行:

pg_basebackup -h master -U repuser -D /var/lib/pgsql/10/data/ -X stream -P
# 此处会让你输入在master上配置的那个同步WAL日志的账号的密码也就是123456

上面这条命令的意思是把master节点中PG data目录下的文件及文件夹全部拷贝到slave的data目录下面,此处可能涉及到Linux用户权限,使用

chown postgres.postgres -R data

应该可以把data目录的组及用户改为postgres

8.master及slave配置recovery.conf

master节点:

cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.done
# 注意!!! 上面复制的文件名后缀就是 .done,没有写错
vi /var/lib/pgsql/11/data/recovery.done

# 内容在下面:
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=slave port=5432 user=repuser password=123456'

slave节点:

cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.conf
vi /var/lib/pgsql/11/data/recovery.conf
#编辑内容如下
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=master port=5432 user=repuser password=123456'

9.查看进程状态

主库
查看主库的WAL日志发送进程是否正常

从库
查看从库WAL日志接收进程是否正常

10.重启主、备数据库使配置生效

使用navicate连接两个数据库,在主库中新建数据库及表,并添加数据。可以在从库中查看到相应新增的数据库及表和数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值