pg_rewind增量同步备库

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: /*在数据库变得比较大时, 例如上TB, 如果部署了PostgreSQL primary-standby 流复制或者log shipping HA.


/*
在数据库变得比较大时, 例如上TB, 如果部署了PostgreSQL primary-standby 流复制或者log shipping HA.
当发生了failover, old primary节点可能因为某些原因需要重新同步数据. 
在广域网上, 由于网络异常也可能造成standby节点落后主节点, 导致需要重新同步数据.
小数据库重新同步数据很方便, 全量或者使用rsync增量同步都可以. 
但是数据库很大的情况下, rsync也会变得非常慢, 而且大量消耗主机IO资源. 
PostgreSQL 社区有提议在核心中加入通过wal文件解析, 达到增量同步到目的
*/


--配置9.5版本的主从环境


--在pg的9.5版本中 checkpoint_segments参数已经被移除
--max_wal_size 换算大小 ,http://www.postgresql.org/docs/9.5/static/release-9-5.html
--max_wal_size = (3 * checkpoint_segments) * 16MB
max_wal_size = 1GB






--pg_rewind 前提条件
1. full_page_writes
2. wal_log_hints 设置成 on 或者 PG 在初始化时开启 checksums 功能




--查看从库的配置恢复文件
[postgres@rudy_01 5430]$ grep ^[a-z] recovery.conf 
standby_mode = on
recovery_target_timeline = 'latest'
primary_conninfo = 'host=rudy_01 port=5431 user=repuser'
trigger_file = '/usr/local/postgresql/9.5/5430/postgresql.trigger.5430'




--启动备库为主库
touch /usr/local/postgresql/9.5/5430/postgresql.trigger.5430
--在原来的备机点上插入测试数据
create table test_2(id int4);
insert into test_2(id) select n from generate_series(1,10000) n;




--在主机点上停止原主机点数据库
[postgres@rudy_01 5430]$  pg_controldata | grep cluster
Database cluster state:               in production
[postgres@rudy_01 5430]$ pg_ctl stop -m fast -D $PGDATA
waiting for server to shut down.....
server stopped
--备注:停完原主库后,千万不能立即以备节点形式拉起老库,否则在执行 pg_rewind 时会报,"target server must be shut down cleanly" 错误


-- 如果有如下错误
target server needs to use either data checksums or "wal_log_hints = on"
--备注:数据库在 initdb 时需要开启 checksums 或者设置  "wal_log_hints = on"




--注意要备份好原来主库的配置文件,因为pg_rewind会把配置文件也同步过来覆盖原来的配置文件
cp pg_hba.conf pg_hba.bak
cp postgresql.conf postgresql.bak


--在原主库上执行pg_rewind上操作
--千万注意,如要在原主库关闭之前,又对数据库进行了增删查改,它们会对覆盖
pg_rewind --target-pgdata $PGDATA --source-server='host=rudy_01 port=5430 user=postgres dbname=postgres password=123456' -P 


connected to server
servers diverged at WAL position 0/9DECBC0 on timeline 2
rewinding from last common checkpoint at 0/6000138 on timeline 2
reading source file list
reading target file list
reading WAL in target
need to copy 196 MB (total source directory size is 213 MB)
201117/201117 kB (100%) copied
creating backup label and updating control file
Done!




--在原来的主库上创建复制配置文件
cat recovery.conf 


standby_mode = on
recovery_target_timeline = 'latest'
primary_conninfo = 'host=rudy_01 port=5430 user=repuser'
trigger_file = '/usr/local/postgresql/9.5/5431/postgresql.trigger.5431'


--启动原主库做备库使用
pg_ctl start -D $PGDATA

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
SQL 关系型数据库 Linux
搭建 PostgreSQL 流复制主从指南(适用于 CentOS 7.x)
搭建 PostgreSQL 流复制主从指南(适用于 CentOS 7.x)
474 7
|
3月前
|
数据可视化 测试技术 Go
Go 语言测试与调试:`go test` 工具用法
`go test` 是 Go 语言内置的测试工具,支持单元测试、基准测试、示例测试等功能。本文详解其常用参数、调试技巧及性能测试命令,并提供实际项目中的应用示例与最佳实践。
|
关系型数据库 PostgreSQL
【一文搞懂PGSQL】5. 流复制
PostgreSQL流复制架构支持多种常见配置,包括基本的主从复制、结合PGPool-II的读写分离以及使用repmgr实现高可用性。基础环境中,主节点与备用节点分别位于不同IP。配置涵盖创建复制用户、调整核心参数以支持流复制,并确保归档与日志功能正常工作。从节点需通过备份恢复并配置为待机模式,以实现数据同步。此外,还介绍了如何验证复制状态及手动切换主从节点的方法,以及同步复制参数的配置细节。
|
11月前
|
NoSQL MongoDB 数据库
|
运维 监控 关系型数据库
【一文搞懂PGSQL】7. PostgreSQL + repmgr + witness 高可用架构
该文档介绍了如何构建基于PostgreSQL的高可用架构,利用repmgr进行集群管理和故障转移,并引入witness节点增强网络故障检测能力。repmgr是一款轻量级的开源工具,支持一键部署、自动故障转移及分布式节点管理。文档详细描述了环境搭建步骤,包括配置postgresql参数、安装与配置repmgr、注册集群节点以及配置witness节点等。此外,还提供了故障手动与自动切换的方法及常用命令,确保集群稳定运行。
|
关系型数据库 数据库 PostgreSQL
PostgreSQL pg_rewind报错分析
PostgreSQL pg_rewind报错分析
326 0
|
前端开发 大数据 数据库
临时抱佛脚必看|一个月速通高级系统架构设计师!(低分飘过版)
本文写给已决定报考高级软件架构设计师的同学,从软考报名到正式考试,有40天时间,本文纯应试备考经验,一个月速成,仅供参考。
|
搜索推荐 JavaScript 数据可视化
数据可视化大屏高德地图javascript webAPI开发的智慧治安物联网管理系统实战解析(web GIS、3D视图、个性化地图、标注、涟漪动画、自定义弹窗、3D控件)
数据可视化大屏高德地图javascript webAPI开发的智慧治安物联网管理系统实战解析(web GIS、3D视图、个性化地图、标注、涟漪动画、自定义弹窗、3D控件)
809 0
|
编解码 人工智能 自动驾驶
YOLOX详细解读(一)论文解读
YOLOX详细解读(一)论文解读
805 0