Linux ubuntu20.04 安装postgres并设置主从备份(图文教程) 环境准备
安装数据库的步骤大同小异,我这边使用的是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.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #Postgres #Ubuntu #Linux #ubuntu2004