Posts in 2021
  • 开箱即用的PG发行版:Pigsty

    2021年05月24日 in PG 生态

    Featured Image for 开箱即用的PG发行版:Pigsty

    什么是Pigsty Pigsty是开箱即用的生产级开源PostgreSQL发行版。 所谓发行版(Distribution),指的是由数据库内核及其一组软件包组成的数据库整体解决方案。例如,Linux是一个操作系统内核,而RedHat,Debian,SUSE则是基于此内核的操作系统发行版。PostgreSQL是一个数据库内核,而Pigsty,BigSQL,Percona,各种云RDS,换皮数据库则是基于此内核的数据库发行版。 Pigsty区别于其他数据库发行版的五个核心特性为: …

    Read more

  • 为什么PostgreSQL前途无量?

    2021年05月08日 in PG 生态

    Featured Image for 为什么PostgreSQL前途无量?

    最近做的事儿都围绕着PostgreSQL生态,因为我一直觉得这是一个前途无量的方向。 为什么这么说?因为数据库是信息系统的核心组件,关系型数据库是数据库中的绝对主力,而PostgreSQL是世界上最先进的开源关系型数据库。占据天时地利,何愁大业不成? 做一件事最重要的就是认清形势,时来天地皆同力,运去英雄不自由。 天下大势 今天下三分,然Oracle | MySQL | SQL Server 疲敝,日薄西山。PostgreSQL紧随其后,如日中天。前四的数据库中,前三者都在走下坡路,唯有PG增长 …

    Read more

  • v0.9.0 发布注记

    2021年05月01日 in 版本发布

    v0.9.0 新功能 一键安装模式: /bin/bash -c "$(curl -fsSL https://pigsty.cc/install)" 开发命令行工具 pigsty-cli封装常用Ansible命令,目前pigsty-cli处于Beta状态 使用Loki与Promtail收集日志: 默认收集Postgres,Pgbouncer,Patroni日志 新增部署脚本infra-loki.yml 与 pgsql-promtail.yml 定义基于日志的监控指标 使 …

    Read more

  • v0.8.0 发布注记

    2021年03月16日 in 版本发布

    v0.8.0 v0.8 针对 服务(Service) 接入部分进行了彻底的重做。现在除了默认的primary, replica服务外,用户可以自行定义新的服务。服务的接口可以支持多种不同的实现,例如L4 DPKG VIP可作为Haproxy的替代品与Pigsty集成。同时,针对用户反馈的一些问题进行了集中处理与改进。 改动内容 v0.8是供给方案定稿版本,此后供给系统的API将保持稳定。 API变更 原有vip与haproxy角色的所有配置项,现在迁移至service角色中。 …

    Read more

  • 高级模糊查询的实现

    2021年03月05日 in PG 开发

    Featured Image for 高级模糊查询的实现

    日常开发中,经常见到有模糊查询的需求。今天就简单聊一聊如何用PostgreSQL实现一些高级一点的模糊查询。 当然这里说的模糊查询,不是LIKE表达式前模糊后模糊两侧模糊,这种老掉牙的东西。让我们直接用一个具体的例子开始吧。 问题 现在,假设我们做了个应用商店,想给用户提供搜索功能。用户随便输入点什么,找出所有与输入内容匹配的应用,排个序返回给用户。 严格来说,这种需求其实是需要一个搜索引擎,最好还是用专用软件,例如ElasticSearch来搞。但实际上只要不是特别复杂的逻辑,也可以很好的 …

    Read more

  • PG中的本地化排序规则

    2021年03月05日 in PG 管理

    Featured Image for PG中的本地化排序规则

    为什么Pigsty在初始化Postgres数据库时默认指定了locale=C与encoding=UTF8 答案其实很简单,除非真的明确知道自己会用到LOCALE相关功能,否则就根本不应该配置C.UTF8之外的任何字符编码与本地化排序规则选项。特别是` 关于字符编码的部分,之前写过一篇文章专门介绍,这里表过不提。今天专门说一下LOCALE(本地化)的配置问题。 如果说服务端字符编码配置因为某些原因配置为UTF8之外的值也许还情有可原,那么LOCALE配置为C之外的任何选就是无可救药了。因为对 …

    Read more

  • PG复制标识详解(Replica Identity)

    2021年03月03日 in PG 管理

    Featured Image for PG复制标识详解(Replica Identity)

    引子:土法逻辑复制 复制身份的概念,服务于 逻辑复制。 逻辑复制的基本工作原理是,将逻辑发布相关表上对行的增删改事件解码,复制到逻辑订阅者上执行。 逻辑复制的工作方式有点类似于行级触发器,在事务执行后对变更的元组逐行触发。 假设您需要自己通过触发器实现逻辑复制,将一章表A上的变更复制到另一张表B中。通常情况下,这个触发器的函数逻辑通常会长这样: -- 通知触发器 CREATE OR REPLACE FUNCTION replicate_change() RETURNS TRIGGER AS $$ …

    Read more

  • PostgreSQL 逻辑复制详解

    2021年03月03日 in PG 管理

    Featured Image for PostgreSQL 逻辑复制详解

    逻辑复制 逻辑复制(Logical Replication),是一种根据数据对象的 复制标识(Replica Identity)(通常是主键)复制数据对象及其变化的方法。 逻辑复制 这个术语与 物理复制相对应,物理复制使用精确的块地址与逐字节复制,而逻辑复制则允许对复制过程进行精细的控制。 逻辑复制基于 发布(Publication) 与 订阅(Subscription)模型: 一个 发布者(Publisher) 上可以有多个发布,一个 订阅者(Subscriber) 上可以有多个 订阅 。 …

    Read more

  • v0.7.0 发布注记

    2021年03月01日 in 版本发布

    v0.7.0 v0.7 针对接入已有数据库实例进行了改进,现在用户可以采用 仅监控部署(Monly Deployment) 模式使用Pigsty。同时新增了专用于管理数据库与用户、以及单独部署监控的剧本,并对数据库与用户的定义进行改进。 改动内容 Features Monitor Only Deployment Support #25 Split monolith static monitor target file into per-cluster conf #36 Add create …

    Read more

  • PG慢查询诊断方法论

    2021年02月23日 in PG 管理

    Featured Image for PG慢查询诊断方法论

    You can’t optimize what you can’t measure 慢查询是在线业务数据库的大敌,如何诊断定位慢查询是DBA的必修课题。 本文介绍了使用监控系统 —— Pigsty诊断慢查询的一般方法论。 慢查询:危害 对于实际服务于在线业务事务处理的PostgreSQL数据库而言,慢查询的危害包括: 慢查询挤占数据库连接,导致普通查询无连接可用,堆积并导致数据库雪崩。 慢查询长时间锁住了主库已经清理掉的旧版本元组,导致流复制重放进程锁死,导致主从复制延 …

    Read more