postgresql简单搭建流复制

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介:

一、准备环境

准备两台相同环境的虚拟机,安装相同版本的pg。
pg版本:9.3
master:192.168.23.128
slave:192.168.23.129

二、主库配置

1.创建备库访问用户:
修改postgresql.conf中的参数
listen_addresses='*'(默认值是localhost,改为*代表监听所有ip)
创建用户
CREATE USER repuser replication LOGIN CONNECTION LIMIT 5 ENCRYPTED PASSWORD ’123′;
修改pg_hba.conf

增加这行意思就是允许所有地址通脱tcp/ip使用repuser连接replication,通过MD5方式。
2.修改主库其他参数 
wal_level = hot_standby(这个参数是控制wal写入信息的多少,改为hot_standby备库支持read-only)
archive_mode = on(这个参数是是否开启归档记录,不开也可以用流复制,如果备库长时间停机,主库之前的wal被覆盖,备库可能无法启动,如果开了这个参数,在配了archive_command备库是可以重新读备份的wal恢复到主库的状态的)

archive_command='cp %p /home/postgres/archive/%f'(归档命令)

max_wal_senders = 3(这个参数是允许多少个复制写入连接,大于等于standby节点数就行)
wal_keep_segments = 100(这个参数是最多保留多少个wal段提供备份恢复,可以尽量大点,wal段大小由wal_buffer决定)
synchronous_standby_names = 'db1'(这个参数是用来开启同步复制的,异步复制不需要开)

三、创建主库基本备份

1.通过pg_basebackup
pg_basebackup -D data/pgdata/pg -Fp -Xs -v -P -h 192.168.23.128 -p 5432 -U repuser -W
直接从主机得到备份,将备库的$PGDATA用复制得到的覆盖就行。命令使用帮助:pg_basebackup --help
2.通过pg_start_backup()
方法就是主库select pg_start_backup();复制数据文键;select pg_stop_backup();远没第一种方便。

四、配置从库环境

1.配置从库参数
hot_standby=on(从库开启read-only)
2.设置从库的recovery.conf
standby_mode='on'(表示数据库恢复完成时,不会断开,等待接收新的wal)
primary_conninfo='host=192.168.23.128 port=5432 user=repuser password=123 application_name=db1'(连接串,application_name这个是使用同步复制的与主库的synchronous_standby_names对应)
recovery_target_timeline='latest'(指定恢复时间线)
还有个trigger_file参数,我没写,感觉这个挺鸡肋的,就是如果主库故障了,通过创建某个文件可以使备库变成主库。想想就觉得功能好蛋疼,我首先得知道主库故障了,然后再去创建这个文件,才能切换。

五、验证

1.启动主库。
2.启动从库。
3.在主库上查询pg_stat_replication:

postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 6570
usesysid | 16395
usename | repuser
application_name | mydb_standby1
client_addr | 192.168.23.129
client_hostname |
client_port | 57368
backend_start | 2016-04-10 07:24:57.272316+08
state | streaming
sent_location | 0/120002A8
write_location | 0/120002A8
flush_location | 0/120002A8
replay_location | 0/120002A8
sync_priority | 1
sync_state | sync (这个就是开了同步,异步的话就是async)

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
监控 数据可视化 关系型数据库
PostgreSQL主备库搭建
pg主备库的搭建,首先需在2个节点安装pg软件,然后依次在2个节点配置主备。 本文采用os为CentOS7.6,pg版本使用14.2,以下为详细部署步骤。
849 0
|
关系型数据库 流计算 PostgreSQL
关于PostgreSQL逻辑订阅中的复制状态
关于PostgreSQL逻辑订阅中的复制状态
2688 0
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
|
SQL 存储 关系型数据库
9 PostgreSQL 点对点多主表级复制-触发器篇|学习笔记
快速学习9 PostgreSQL 点对点多主表级复制-触发器篇
9 PostgreSQL 点对点多主表级复制-触发器篇|学习笔记
|
存储 SQL Oracle
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
快速学习10 PostgreSQL 表级复制-物化视图篇,支持异地,异构如 Oracle 到 pg 的物化视图
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
|
存储 SQL 缓存
PostgreSQL 复制原理及高可用集群(一)|学习笔记
快速学习 PostgreSQL 复制原理及高可用集群(一)
410 0
PostgreSQL 复制原理及高可用集群(一)|学习笔记
|
SQL 消息中间件 算法
14 PostgreSQL 表级复制-Londiste3哈希数据分区复制|学习笔记
快速学习14 PostgreSQL 表级复制-Londiste3哈希数据分区复制
14 PostgreSQL 表级复制-Londiste3哈希数据分区复制|学习笔记
|
SQL 消息中间件 存储
PostgreSQL 表级复制-Londiste3安装以及使用|学习笔记
快速学习 PostgreSQL 表级复制-Londiste3安装以及使用
PostgreSQL 表级复制-Londiste3安装以及使用|学习笔记
|
消息中间件 缓存 监控
ELK搭建(八):搭建PostgreSQL性能、运行效率监控平台
PostgreSQL作为一款免费、开源、企业级的关系数据库,被越来越多的企业所青睐,上一章我们讲解了如何搭建一个实时监控PostgreSQL慢日志、错误日志的平台,但是针对PostgreSQL的运行性能还无法监控,生产环境中,特别是构建了数据库集群后,我们常常需要了解到各个数据库的运行情况、性能效率等, 这样才能为我们数据库优化、性能优化提供更有力的保障
533 0
ELK搭建(八):搭建PostgreSQL性能、运行效率监控平台
|
消息中间件 数据采集 监控
ELK搭建(七):搭建PostgreSQL慢查询、错误日志监控平台
PostgreSQL是一款功能非常强大的的关系性数据库,适用于需要执行复杂查询的系统。市面上越来越多的公司开始采用PostgreSQL作为主数据库。 今天我们就来讲解如何搭建一个PostgreSQL的慢日志、错误日志监控平台,实时了解到数据库的日志情况,来帮助我们快速排错及优化。
865 0
ELK搭建(七):搭建PostgreSQL慢查询、错误日志监控平台