PostgreSQL怎么搭建流复制
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容主要讲解"PostgreSQL怎么搭建流复制",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PostgreSQL怎么搭建流复制"吧!PostgreS
千家信息网最后更新 2025年11月13日PostgreSQL怎么搭建流复制
本篇内容主要讲解"PostgreSQL怎么搭建流复制",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PostgreSQL怎么搭建流复制"吧!
PostgreSQL通过流复制Streaming Replication可轻松实现高可用HA环境的搭建.
Step 1 主库:创建用户
创建复制用户replicator
testdb=# CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD 'replicator';CREATE ROLE
Step 2 主库:参数配置
配置archive_mode等参数
archive_mode = ONwal_level = replicamax_wal_senders = 10archive_command = '/home/xdb/archive.sh %p %f'listen_addresses = '*'
也可用alter system命令修改
ALTER SYSTEM SET wal_level TO 'replica';ALTER SYSTEM SET archive_mode TO 'ON';ALTER SYSTEM SET max_wal_senders TO '10';ALTER SYSTEM SET listen_addresses TO '*';
重启数据库
pg_ctl -D $PGDATA restart -mf
Step 3 主库:访问配置
修改pg_hba.conf文件
host replication replicator 192.168.26.26/32 md5
生效配置
pg_ctl -D $PGDATA reload
Step 4 从库:从主库备份中恢复
在从库上使用pg_basebackup创建备库
192.168.26.25是主库IP,192.168.26.26是从库IP
pg_basebackup -h 192.168.26.25 -U replicator -p 5432 -D $PGDATA -P -Xs -R
配置从库postgres.conf
hot_standby = ONhot_standby_feedback = ONALTER SYSTEM SET hot_standby TO 'ON';ALTER SYSTEM SET hot_standby_feedback TO 'ON';
配置从库recovery.conf
$ cat $PGDATA/recovery.confstandby_mode = 'on'primary_conninfo = 'host=192.168.26.25 port=5432 user=replicator password=replicator'restore_command = 'cp /data/archivelog/%f %p'archive_cleanup_command = 'pg_archivecleanup /data/archivelog %r'
Step 5 从库:启动数据库
[xdb@localhost testdb]$ pg_ctl -D $PGDATA startwaiting for server to start....2019-03-13 12:13:30.239 CST [1870] LOG: listening on IPv4 address "0.0.0.0", port 54322019-03-13 12:13:30.239 CST [1870] LOG: listening on IPv6 address "::", port 54322019-03-13 12:13:30.252 CST [1870] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"2019-03-13 12:13:30.379 CST [1870] LOG: redirecting log output to logging collector process2019-03-13 12:13:30.379 CST [1870] HINT: Future log output will appear in directory "pg_log". doneserver started
Step 6 验证复制环境
确认相关进程是否已启动
#主库[xdb@localhost testdb]$ ps -ef|grep senderxdb 1646 1532 0 12:13 ? 00:00:00 postgres: walsender replicator 192.168.26.26(35294) streaming 0/43000140xdb 1659 1440 0 12:17 pts/1 00:00:00 grep --color=auto sender[xdb@localhost testdb]$ #从库[xdb@localhost testdb]$ ps -ef|grep receiverxdb 1879 1870 0 12:13 ? 00:00:00 postgres: walreceiver streaming 0/43000140xdb 1884 1799 0 12:18 pts/0 00:00:00 grep --color=auto receiver[xdb@localhost testdb]$ ps -ef|grep startupxdb 1872 1870 0 12:13 ? 00:00:00 postgres: startup recovering 000000100000000000000043xdb 1887 1799 0 12:18 pts/0 00:00:00 grep --color=auto startup[xdb@localhost testdb]$
Step 7 监控
查询pg_stat_replication数据字典表
testdb=# SELECT * FROM pg_stat_replication;-[ RECORD 1 ]----+------------------------------pid | 1646usesysid | 90113usename | replicatorapplication_name | walreceiverclient_addr | 192.168.26.26client_hostname | client_port | 35294backend_start | 2019-03-13 12:13:30.852269+08backend_xmin | state | streamingsent_lsn | 0/43000140write_lsn | 0/43000140flush_lsn | 0/43000140replay_lsn | 0/43000140write_lag | flush_lag | replay_lag | sync_priority | 0sync_state | asynctestdb=#
同步复制
从库配置参数recovery.conf,在primary_conninfo中添加application_name
primary_conninfo = 'user=replicator password=replicator host=192.168.26.25 port=5432 application_name = standby_26'
主库配置参数
synchronous_standby_names = 'standby_26'synchronous_commit = on
重启数据库,验证是否配置成功
testdb=# \xExpanded display is on.testdb=# SELECT * FROM pg_stat_replication;-[ RECORD 1 ]----+------------------------------pid | 2257usesysid | 90113usename | replicatorapplication_name | standby_26client_addr | 192.168.26.26client_hostname | client_port | 35418backend_start | 2019-03-13 15:17:57.330573+08backend_xmin | 634state | streamingsent_lsn | 0/54D4DBD0write_lsn | 0/54D4DBD0flush_lsn | 0/54D4DBD0replay_lsn | 0/54D4DBD0write_lag | 00:00:00.00101flush_lag | 00:00:00.001954replay_lag | 00:00:00.002145sync_priority | 1sync_state | sync
到此,相信大家对"PostgreSQL怎么搭建流复制"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
配置
参数
数据
数据库
内容
环境
用户
学习
查询
验证
实用
更深
成功
兴趣
命令
备份
字典
实用性
实际
操作简单
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全的最新技术
给数据库创建用户授权
手机怎么更改服务器名称
应急预案演练包括网络安全
天津网络安全系统
云控软件开发方法
网络服务器管理系统设置
网络安全周手抄报新闻稿
财务报表系统软件开发多少钱
服务器和大型计算机的区别
服务器管理没有rid
数据库研究生专业学校
c 省市县三级联动数据库
软件开发 娄底
合肥滨湖软件开发培训
群控数据库
北大青鸟accp软件开发
应用服务器连接数据库
英雄专属服务器
数据库中属性可以再分割吗
网络安全的手手抄报图片
南京灵酷网络技术有限公司
数据库可以存算法吗
电脑服务器配置差不多怎么看好坏
湖南浩盈互联网科技有限公司
新型网络技术
初学者学数据库
机架服务器的安装
时间服务器价格
中小学生网络安全答题答案