流复制基于WAL日志的实例级复制,其核心原理是复制Halo数据库到另外的一台机器上,主库将WAL日志流发送给备库,备库接收到WAL日志后进行重做,为了实现数据库的高可用,需要搭建主库备库,主库可读可写,备库只允许读,根据同步方式分为异步流复制和同步流复制。
流复制示例
本示例中采用一主(node1)一从(node2)的方式来演示主要的实施物理复制的过程。
1、主要参数
物理复制涉及到的参数需要根据实际情况进行配置,主要参数有:
max_wal_senders(数值)
主库接受从库请求发送WAL日志的最大并发连接数。默认值10。
max_replication_slots(数值)
允许创建的复制槽的最大数量。默认值10。
synchronous_commit(枚举型)
主备同步的级别。默认值on。其它可选的值包括remote_apply、remote_write、
local和off。
synchronous_standby_names(字符串)
指定支持同步复制的从库的列表。允许一个或者多个同步从库。参数使用下面的语法
之一来指定一个后备服务器列表:
[FIRST] num_sync ( standby_name [, ...] )
ANY num_sync ( standby_name [, ...] )
standby_name [, ...]
其中num_sync是事务需要等待其回复的同步从库的数量,standby_name是一个
后备服务器的名称。FIRST以及ANY指定从所列从库中选取同步从库的方法。
primary_conninfo(字符串)
从库用来连接主库的连接字符串。该参数只对从库有效,主库将忽略该参数。
primary_slot_name(字符串)
使用的复制槽名称。
hot_standby(布尔型)
是否开启只读查询功能。该参数只对从库有效,主库将忽略该参数。2、在主库中为备库创建用户
1、需要为从库创建一个用户,该用户需要拥有replication的权限。
#CREATE USER replica PASSWORD '123456' REPLICATION; 2、配置/etc/hosts 主机域名文件
10.16.16.155 node1
10.16.16.156 node23、修改主库postgresql.conf
listen_addresses='localhost' 修改为listen_addresses='*'4、配置pg_hba_conf文件 备库权限
host replication replica 10.16.16.156/24 md55、备库通过pg_basebackup命令通过网络连接上主库,并从主库复制整个数据库群集,并根据给定的参数自动设置数据库参数
pg_basebackup -F p-X stream -v -P -h node1 -U replica -D $PGDATA -R -C --slot node26、从库启动数据库无需初始化启动
pg_ctl start -D /data/halo
报错需修改以下权限
chmod 0700 /data/halo另外如果在执行pg_basebackup进行复制数据库群集时失败了,在主库配置防火墙权限
systemctl status firewalld
firewall-cmd --zone=public --add-port=1921/tcp–permanent
firewall-cmd--reload7、查询从库复制状况
halo0root=# select * from pg_stat_replication where client_addr='10.16.16.156';
pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | repl
ay_lag | sync_priority | sync_state | reply_time
-------+----------+---------+------------------+--------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-----------+------------+-----------+-----------+-----
-------+---------------+------------+-------------------------------
10832 | 16384 | replica | walreceiver | 10.16.16.156 | | 44800 | 2022-04-02 11:56:45.823575+08 | | streaming | 0/5F9E1E8 | 0/5F9E1E8 | 0/5F9E1E8 | 0/5F9E1E8 | | |
| 0 | async | 2022-04-28 14:58:52.615012+08
(1 行记录)「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




