2023年11月18日

PostgreSQL: Patroni中文手册

第1章 介绍 Patroni起源于Governor在Compose的项目一个分支,它包括许多新功能。 有关使用Patroni基于Docker的部署示例,请参阅目前在Zalando使用的Spilo。有关其他背景信息,请参见: •PostgreSQL HA与Kubernetes和Patroni,Josh Berkus在KubeCon 2016年的演讲(视频) •2016年2月Zalando科技博客文章 1.1发展状况 Patroni正在积极发展并接受资助。有关更多详细信息,请参阅下面的贡献部分。 我们在此报告新发布的信息。 1.2技术要求和安装 Mac OS的先决条件 若要在Mac上安装,请先运行以下命令: brew install postgresql etcd haproxy libyaml python Psycopg2 从psycopg2-2.8开始,默…
2023年11月15日

PostgreSQL: Kubernetes利用Stolon部署高可用PostgreSQL

前言 本文选用Stolon的方式搭建Postgresql高可用方案,主要为Harbor提供高可用数据库,Harbor搭建可查看kubernetes搭建Harbor无坑及Harbor仓库同步,之后会提供redis高可用及Harbor高可用方案搭建 方案比较 几种postgresql高可用方案简单比较: 引用https://blog.norria.com/14885.html 根据上面简单的比较,最终选择的stolon,作者选择的是Patroni,感觉实际区别并不大。 一、Stolon概述: Stolon(https://github.com/sorintlab/stolon) 是由3个部分组成的: keeper:他负责管理PostgreSQL的实例汇聚到由sentinel(s)提供的clusterview。 sentinel:it负…
2023年11月15日

PostgreSQL: Kubernetes利用Patroni部署高可用PostgreSQL

1. 准备 部署高可用的PostgreSQL一直都是一个比较麻烦的事情,因为官方或者社区并没有一个official的解决方案。由于项目需要,所以花了一些时间去调研并且实践了一些关于PostgreSQL的主流HA方案,包括:Crunchy, Stolon 和 Patroni, 还有就是pgpool repmgr这种方案。看到网上关于Stolon的blog有一篇,但是那篇其实是翻译人家老外的,结果被到处转发(说明我们还是懒喜欢别人汉化的)。在国内外暂时还没找到Patroni在Kubernetes上部署的Blog。所以这里就简单分享一下,以便大家以后有遇到问题可以相互帮助。 方案选型 几种方案简单比较一下: 首先repmgr这种方案的算法有明显缺陷,非主流分布式算法,直接pass; Stolon和Patroni相对于Crunchy更加Cl…
2023年11月14日

PostgreSQL: PostgreSQL工具总结(备份恢复、监控、复制、高可用等)

PostgreSQL的工具大体上可以分为以下几类: 备份恢复工具 监控工具 逻辑和基于触发器的复制工具 多主复制工具 高可用和故障转移工具 连接池工具 表分区工具 迁移工具 一、备份恢复工具 1. Barman Barman (Backup and Recovery Manager-备份恢复管理器) 是一个用Python语言实现的PostgreSQL灾难恢复管理工具,它由第二象限公司(2ndQuadrant)开源并维护。它允许我们在关键业务环境中执行远程备份,为数据库管理员在恢复阶段提供有效的数据保证。Barman最优秀的功能包括备份元数据、增量备份、保留策略、远程回复、WAL文件归档压缩和备份。 2. EDB BART EDB BART(Backup and Recovery Tool -备份恢复工具)是企业级PostgreSQL数据管理策略的关键组件。BAR…
2023年11月14日

PostgreSQL: PostgreSQL精选软件、库、工具和资源列表

https://github.com/dhamaniasad/awesome-postgres Awesome Postgres A curated list of awesome PostgreSQL software, libraries, tools and resources, inspired by awesome-mysql PostgreSQL, often simply Postgres, is an object-relational database (ORDBMS). PostgreSQL is ACID-compliant and transactional. (see more: wikipedia:PostgreSQL, PostgreSQL.org) :elephant: Contributions welcome. Add links through pull…
2023年11月13日

PostgreSQL: Compute Engine 上 PostgreSQL 集群的高可用性架构

本页内容 术语 何时考虑使用 HA 架构 考虑您的 HA 要求 高可用性的工作原理 流式复制 同步流式复制 PostgreSQL HA 架构 使用 Patroni 模板实现 HA 故障检测 故障切换过程 查询路由 回退过程 使用 pg_auto_failover 扩展程序和服务实现 HA Monitor 服务 Keeper 代理 故障检测 故障切换过程 查询路由 回退和切换过程 使用有状态 MIG 和区域永久性磁盘实现 HA 区域永久性磁盘 故障检测和故障切换过程 查询路由 回退过程 HA 选项对比 设置和架构 高可用性的可配置性 处理网络分区的能力 客户端配置 PostgreSQL 节点初始化和配置管理自动化 可自定义性和功能丰富性 成熟度 后续步骤 Last reviewed 2023-10-09 UTC 本文介绍了多个架构,可为 Google Cloud 上的 PostgreSQL 部署提供高可用性 (HA)。高可用性用于衡量系…
2023年11月13日

PostgreSQL: PostgreSQL数据库体系结构

Contents 1 一 PostgreSQL进程结构 2 二 PostgreSQL内存结构 3 三 PostgreSQL数据库的存储结构 4 四 引用和参考 PostgreSQL数据库的体系架构可以从进程结构、内存结构、存储结构3个方面来学习和研究。 一 PostgreSQL进程结构 1 进程结构图谱和分类 PostgreSQL process architecture PostgreSQL数据库的进程可以分为三类:后台进程、后端进程或叫服务器进程、客户端进程或用户进程。 a 后台进程: [postgres@iZbp1anc2b2vggfj0i0oovZ ~]$ id uid=1000(postgres) gid=1000(postgres) groups=1000(postgres) [postgres@iZbp1anc2b2vggfj0i0oovZ ~]$ p…
2023年11月13日

PostgreSQL: PostgreSQL编译源码安装步骤解释及源码和安装目标路径说明

Contents 1 一源码路径说明 2 二 执行编译源代码安装过程中不同步骤的目的 3 三 软件安装后目标路径的说明 4 四参考和引用 一源码路径说明 下述是1个PostgreSQL 11.11版本的源代码解压之后的路径: [postgres@localhost postgresql-11.11]$ pwd /home/postgres/source/postgresql-11.11 [postgres@localhost postgresql-11.11]$ ll 总用量 748 -rw-r--r--.  1 postgres postgres    490 2月   9 2021 aclocal.m4 drwxrwxr-x.  2 postgres postgres   4096 2月   9 2021 config -rwxr-xr-x.  1 postgres postg…
2023年11月13日

PostgreSQL: PostgreSQL的体系结构

PostgreSQL的体系结构 1. 概述 2. 系统表 2.1 系统表介绍 2.2 系统视图 3. 数据集簇 3.1 initdb的使用 3.2 postgres.bki 3.3 initdb的执行过程 3.4 系统数据库 4. PostgreSQL进程结构 5. 守护进程Postmaster 5.1 初始化内存上下文 5.2 配置参数 5.3 创建监听套接字 5.4 注册信号处理函数 5.5 辅助进程启动 5.6 装载客户端认证文件 5.7 循环等待客户连接请求 6. 辅助进程 6.1 SysLogger系统日志进程 6.2 BgWriter后台写进程 6.3 WalWriter预写式日志写进程 6.4 PgArch预写式日志归档进程 6.5 AutoVacuum系统自动清理进程 6.6 PgStat统计数据收集进程 7. 服务进程Postgres 7.1 初始化内存环境 7.2 配置运行参数和处理客户端传递的GUC…
2023年11月10日

PostgreSQL: PostgreSQL 同步流复制和异步流复制的控制参数

问题背景: 问:为什么我设置的同步流复制,主库提交之后备库查不到数据呢? 答:估计是你设置的同步级别不够高~ 问:还分同步级别?同步模式不就是保证两边数据一致的吗?怎么还会出现主库能查到数据备库查不到数据的情况呢?查询pg_stat_replication里边显示sync不就是代表数据一致吗? 答:pg同步流复制和异步流复制关键在于两个参数: synchronous_standby_names 控制哪些standby被应用同步策略,该参数使用方法不在此赘述; synchronous_commit控制同步策略级别。 你以为的同步可能不是你以为的同步。 即使是通过pg_stat_replication查询出sync_state列值为sync也不一定是真正的同步。 下边通过一个图片和表格来直观提现什么时候是同步,什么时候是异步,及不同等…