国内开源数据库的人才培养专业机构盘古云课堂资深技术专家倾力奉献,盘古云课堂指定教材。
以实践为导向,讲解在真实环境下如何使用PostgreSQL集群。
秉承技术从实战中来、到实战中去的原则讲解技术及原理。
从实战角度,循序渐进地带领读者完成整个PostgreSQL高可用集群的搭建过程。
分享在生产过程中的常见高可用难题与应对思路。
第1章 高可用概述 / 1
1.1 什么是高可用 / 1
1.1.1 概述 / 1
1.1.2 相关指标 / 2
1.2 高可用设计概述 / 3
1.2.1 容灾冗余设计概述 / 3
1.2.2 高可用技术概览 / 5
第2章 代理和连接池 / 7
2.1 代理和连接池架构 / 7
2.2 通过HAProxy实现代理 / 8
2.2.1 HAProxy概念 / 8
2.2.2 安装HAProxy / 9
2.2.3 启动HAProxy / 12
2.3 PgBouncer / 12
2.3.1 安装PgBouncer / 13
2.3.2 PgBouncer基本配置 / 14
2.3.3 使用PgBouncer / 16
2.3.4 监控PgBouncer / 19
2.3.5 在线配置PgBouncer / 21
2.3.6 增强PgBouncer用户访问 / 21
2.4 Odyssey / 24
2.4.1 Odyssey的作用 / 24
2.4.2 安装Odyssey / 25
2.4.3 配置Odyssey / 25
2.4.4 启动Odyssey / 26
2.5 虚拟IP地址高可用 / 26
2.5.1 Keepalived实现原理 / 26
2.5.2 安装Keepalived / 27
2.5.3 HAProxy与PgBouncer
部署 / 28
第3章 PostgreSQL流复制 / 33
3.1 流复制概念 / 33
3.2 PostgreSQL流复制历程 / 33
3.3 流复制基础――WAL / 35
3.3.1 WAL概念 / 35
3.3.2 WAL日志文件 / 35
3.3.3 WAL日志详情举例 / 37
3.4 物理流复制 / 39
3.4.1 物理流复制的原理 / 40
3.4.2 流复制同步级别控制 / 40
3.4.3 物理流复制的特点 / 41
3.4.4 物理流复制的搭建 / 43
3.4.5 物理流复制监控视图 / 50
3.4.6 主从切换 / 52
3.5 逻辑复制 / 58
3.5.1 逻辑复制的原理 / 58
3.5.2 逻辑复制的特点 / 59
3.5.3 逻辑复制的关键步骤 / 60
3.5.4 逻辑复制的角色 / 62
3.5.5 搭建逻辑复制 / 63
3.5.6 逻辑复制监控视图 / 68
第4章 备份恢复管理 / 72
4.1 备份恢复管理概述 / 72
4.2 原生备份恢复工具 / 72
4.2.1 逻辑备份和恢复 / 72
4.2.2 物理备份和恢复 / 78
4.2.3 增量备份和恢复 / 87
4.3 第三方备份恢复工具之
pg_probackup / 96
4.3.1 pg_probackup概述 / 96
4.3.2 pg_probackup的安装和
配置 / 98
4.3.3 使用pg_probackup 备份
数据库 / 99
4.3.4 使用pg_probackup 恢复
数据库 / 102
4.4 第三方备份恢复工具之
pgBackRest / 107
4.4.1 pgBackRest概述 / 107
4.4.2 安装和部署 / 108
4.4.3 使用和管理 / 109
4.5 第三方备份恢复工具之
pg_rman / 117
4.5.1 pg_rman概述 / 117
4.5.2 安装和部署 / 118
4.5.3 使用和管理 / 118
第5章 使用repmgr实现高
可用性 / 124
5.1 repmgr介绍 / 124
5.1.1 全栈架构 / 124
5.1.2 repmgr兼容矩阵 / 127
5.1.3 概念介绍 / 127
5.1.4 推荐架构 / 128
5.2 安装和部署 / 130
5.2.1 环境准备 / 130
5.2.2 yum源安装 / 132
5.2.3 源代码安装 / 133
5.3 集群配置 / 134
5.3.1 配置主库 / 134
5.3.2 配置克隆从库 / 138
5.3.3 见证服务 / 140
5.4 服务管理 / 142
5.4.1 手动故障切换 / 142
5.4.2 自动故障转移 / 146
5.4.3 IP自动漂移 / 149
5.4.4 管理命令说明 / 152
5.5 在线维护和升级 / 153
5.5.1 升级说明 / 153
5.5.2 升级主要版本 / 154
5.5.3 升级次要版本 / 157
第6章 使用Patroni实现高
可用性 / 158
6.1 Patroni概述 / 158
6.1.1 Patroni架构及功能 / 158
6.1.2 Patroni REST API / 160
6.1.3 Watchdog支持 / 165
6.1.4 Patroni的安全性 / 166
6.1.5 在Kubernetes下使用
Patroni / 167
6.2 相关组件介绍 / 167
6.2.1 Patroni与HAProxy / 167
6.2.2 Patroni与etcd / 168
6.3 安装和配置 / 169
6.3.1 软件版本 / 169
6.3.2 环境信息 / 169
6.3.3 安装和配置etcd / 169
6.3.4 安装和配置
PostgreSQL / 171
6.3.5 安装和配置Patroni / 174
6.3.6 集群间的级联复制 / 178
6.3.7 安装和配置HAProxy / 179
6.4 在线维护和升级 / 181
6.4.1 将独立版本转换为
Patroni集群 / 181
6.4.2 PostgreSQL版本升级 / 181
6.5 日常操作 / 182
6.5.1 修改PostgreSQL参数 / 183
6.5.2 查看Patroni节点状态 / 183
6.6 多主机URL客户端访问
配置 / 184
第7章 多主复制高可用 / 186
7.1 多主节点介绍 / 186
7.2 确定多主节点是否适合
当前需求 / 188
7.3 安装BDR / 190
7.3.1 单BDR节点 / 192
7.3.2 创建一个额外的
BDR节点 / 193
7.3.3 在每个节点上测试
DDL复制 / 196
7.4 安全使用序列 / 199
7.4.1 使用序列 / 199
7.4.2 分配全局序列 / 201
7.5 为多主节点方法配置
HAProxy / 202
7.6 执行托管节点切换 / 205
7.7 提高故障切换速度 / 207
7.8 在线执行重大版本升级 / 209