Linux ubuntu20.04 安装postgres并设置主从备份(图文教程)

6 篇文章 0 订阅
5 篇文章 0 订阅

Linux ubuntu20.04 安装postgres并设置主从备份(图文教程)

环境准备

操作系统服务器ip数据库版本角色
ubuntu20.0420.0.10.10PostgreSQL 12.9主库
ubuntu20.0420.0.10.11PostgreSQL 12.9备库

安装数据库

安装数据库的步骤大同小异,我这边使用的是apt直接安装,当然也可以使用下载源码包进行编译安装

  • Postgres编译安装(这篇博客挺全的,编译安装,apt-get安装都有,需要编译安装的话可以参考这里)
apt-get install -y postgresql

在这里插入图片描述

修改postgres密码

# 切换用户并登录到数据库
sudo -u postgres psql

# 修改密码 SQL
alter user postgres password '123456';

# 添加用户并赋予replication和login权限(后面使用此用户来进行主从)
create role replica login replication encrypted password '123456';

# 查看postgresql的配置文件位置(用来方便后面的修改)
select name, setting from pg_settings where category='File Locations';

在这里插入图片描述

配置远程

# 允许远程登录
echo "host all all 0.0.0.0/20 md5" >> /etc/postgresql/12/main/pg_hba.conf 

# 允许所有地址监听postgres
echo "listen_addresses='*'" >> /etc/postgresql/12/main/postgresql.conf    

# 重启数据库
sudo /etc/init.d/postgresql restart

# 设置开机自启
sudo systemctl enable postgresql.service 

在这里插入图片描述

修改主服务器的配置文件(postgresql.conf、pg_hba.conf)

vim /etc/postgresql/12/main/postgresql.conf

在这里插入图片描述

#主从设置为热血模式,流复制必选
wal_level=hot_standby 

#流复制允许连接进程
max_wal_senders=2 

# 默认参数,非主从配置相关参数,表示到数据库的连接数
wal_keep_segments=64 
max_connections=1000 

在这里插入图片描述

vim /etc/postgresql/12/main/pg_hba.conf
 #允许从数据库连接主数据库去拖wal日志数据
host replication replica 20.0.10.11/20 md5

重启服务

/etv/init.d/postgres restart

从服务器配置

# 先停掉服务,备份下本地数据,并清除本地数据
systemctl stop postgresql

# 切换到postgres用户下,这样使用下面的备份语句的所属组和所属用户就是postgres 
su - postgres

# 复制一份,防止误操作
cp -r  /var/lib/postgresql/12/main /var/lib/postgresql/12/main.bak

# 清除本地数据
rm -rf /var/lib/pgsql/12/main

使用下面命令备份主数据库中的数据

pg_basebackup -h 20.0.10.10 -U replica -F p -X stream -P -R -D /var/lib/postgresql/12/main

-h –指定作为主服务器的主机。

-D –指定数据目录。

-U –指定连接用户。

-P –启用进度报告。

-v –启用详细模式。

-R–启用恢复配置的创建:创建一个standby.signal文件,并将连接设置附加到数据目录下的

修改从服务器的配置文件(root下)

sudo vim /etc/postgresql/12/main/postgresql.conf
# 在备份的同时允许查询
hot_standby=on
# 流复制最大延迟 (可选)
max_standby_streaming_delay=30s
# 从向主报告状态的最大间隔时间 (可选)
wal_receiver_status_interval=10s
# 查询冲突时向主反馈 #默认参数,非主从配置相关参数,表示到数据库的连接数 (可选)
hot_standby_feedback=on
# 一般从库做主要的读服务时,设置值需要高于主
max_connections=1000

在这里插入图片描述

重启数据库

systemctl restart postgresql

查看是否成功,登录主数据库查看

select client_addr,sync_state from pg_stat_replication;

在这里插入图片描述

查看 同步进程

(注意:主从同步分为有大致三种模式,①同步流 ②异步流 ③日志模式,而流模式,默认是异步流,如果要改为同步流的需要再配置一下)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值