PostgreSQL数据库主从部署_postgresql的主从是从哪个版本开始
postgres用户登录到数据库从节点操作。
·
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
mkdir -p /opt/pgsql/pg_archive
(2)创建一个数据库用户replica进行主从同步
postgres用户登录到数据库
su postgres
cd /usr/local/pgsql/bin
./psql
create role replica login replication encrypted password '123456';
(3)修改pg_hba.conf,增加两行配置,允许replica用户来同步
vi /usr/local/pgsql/data/pg_hba.conf
host all all 192.168.0.102/32 trust #允许从服务器连接到主服务器
host replication replica 192.168.0.102/32 md5 #允许从服务器使用replica用户来复制
(4)修改postgresql.conf
vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*' #监听所有IP
archive_mode = on #允许归档
archive_command = 'cp %p /opt/pgsql/pg_archive/%f' #用该命令来归档logfile segment
wal_level = hot_standby
max_wal_senders = 10 #这个设置可以最多有几个流复制连接
wal_keep_segments = 256 #设置流复制保留的最多的xlog数目
wal_sender_timeout = 60s #设置流复制主机发送数据的超时时间
max_connections = 100 #从库的max_connections必须要大于主库
(5)配置完两个文件后重启数据库
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l /usr/local/pgsql/logs/postgres.log restart
(6)测试从服务器能否连接主服务器数据库
从节点操作
su postgres
/usr/local/pgsql/bin
./psql -h 192.168.0.101 -U postgres
从节点(192.168.0.102)配置
(1)从主节点拷贝数据到从节点
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l /usr/local/pgsql/logs/postgres.log stop #停数据库
su postgres
rm -rf /usr/local/pgsql/data/* #清空从节点数据
/usr/local/pgsql/bin/pg_basebackup -h 192.168.0.101 -U replica -D /usr/local/pgsql/data/ -X stream -P # 从主节点拷贝数据到从节点(基础备份)
mkdir -p /opt/pgsql/pg_archive #root用户下创建
(2)配置recovery.conf
su postgres
cp /usr/local/pgsql/share/recovery.conf.sample /usr/local/pgsql/data/recovery.conf #拷贝配置文件
vim recovery.conf
standby_mode = on #说明该节点是从服务器
primary_conninfo = 'host=192.168.0.101 port=5432 user=replica password=123456' #主节点的信息以及连接的用户
recovery_target_timeline = 'latest'
(3)配置postgresql.conf
vi /usr/local/pgsql/data/postgresql.conf
wal_level = hot_standby
max_connections = 1000 #一般查多于写的应用从库的最大连接数要比较大
hot_standby = on #说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s #数据流备份的最大延迟时间
wal_receiver_status_interval = 10s #多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
(4)配置完启动数据库
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l /usr/local/pgsql/logs/postgres.log start
三、验证主从
方法一:
登录主节点数据库执行如下命令
su postgres
cd /usr/local/pgsql/bin
./psql
select client_addr,sync_state from pg_stat_replication;
结果如下:
postgres=# select client_addr,sync_state from pg_stat_replication;
client_addr | sync_state
---------------+------------
192.168.0.102 | async
(1 row)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
更多推荐
已为社区贡献1条内容
所有评论(0)