本文主要是介绍Linux 下部署 PostgreSQL的双机热备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创建备库的步骤主要可以分成两大步骤:
生成基础备份
把基础备份拷贝到备机上,配置 recovery.conf 把备库启动在 standby 模式下
即可完成数据库的Standby库的搭建
Linux 下安装 PostgresSQL:
解压数据库的安装源码
tar -zxvf postgresql.tar.gz
移动数据库导安装位置
mv postgreql /home/osdba
配置数据库安装
./configure --prefix=/home/osdba --without-readline
编译安装包:
make
安装编译后的文件
make install
添加 Linux 用户名:
adduser postgres
修改 Linux 数据库用户密码passwd postgres
mkdir /home/osdba/
给postgres 用户赋予权限安装目录的权限
chmod -R 755 postgres:postgres /home/osdba
配置环境变量
修改环境变量
vi ~/.bash_profile
添加环境变量中的 postgresql 的 bin 目录
添加环境变量中的 postgresql 的 data 目录
使环境变量生效 source
初始化数据库
initdb
启动数据库
pg_ctl start
到目前为止,主库和备库的操作完全一样,这样我们可以看到两个数据库都能正常启动。
由于两台数据库需要进行数据通信来保障数据的一致性,所有还需要关闭防火墙,或者开放防火墙的端口,允许数据库进行数据交互。
主库修改postgresql.conf文件
修改内容:
listen_address = '*'
wal_level = hot_standby
checkpoint_timeout = 5min
archive_mode = on
archive_command = 'true'
max_wal_senders = 2
wal_keep_segments = 16
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_internal = 1s
hot_standby_feedback = on
wal_receiver_timeout = 60s
修改pg_hba.conf
IPV4 下
host all all 0.0.0.0/0 trust
replication privilege:
host replication postgres 0.0.0.0/0 trust
重启postgresql
备库:
停止备库服务 pg_ctl stop
删除备库数据库文件夹
rm -rf /home/osdba/data
连接主库
psql -h host -p port -U postgres -d postgres
进行备份
select pg_start_Backup('backuptag',true);
进行拷贝
scp --r postgres@主库IP:/home/osdba/data /home/osdba/data
停止主库备份
select pg_stop_backup();
修改recovery.conf文件
standby_mode = on
primary_conninfo = 'user=postgres password = 123456 host = 主库IP port = 5432 sslnode = disable sslcompression=1’
启动备库
pg_ctl start
连接主库,创建表,添加数据,可以看到数据被同步到备库,备库只能查询不能新增。可以做到读写分离
这篇关于Linux 下部署 PostgreSQL的双机热备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!