Posts in 2021
  • PG中的本地化排序规则

    2021年03月05日 in PG 管理

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

    Read more

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

    2021年03月03日 in PG 管理

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

    Read more

  • Postgres逻辑复制详解

    2021年03月03日 in PG 管理

    逻辑复制 逻辑复制(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

  • 故障档案:时间回溯导致的Patroni故障

    2021年02月22日 in PG 管理

    摘要:机器因为故障重启,NTP服务在PG启动后修复了PG的时间,导致 Patroni 无法启动。 Patroni中的故障信息如下所示: Process %s is not postmaster, too much difference between PID file start time %s and process start time %s patroni 进程启动时间和pid时间不一致。就会认为:postgres is not running。 两个时间相差超过30秒。patroni 就 …

    Read more

  • v0.6.0 发布注记

    2021年02月19日 in 版本发布

    v0.6.0 v0.6 对数据库供给方案进行了修改与调整,根据用户的反馈添加了一系列实用功能与修正。针对监控系统的移植性进行优化,便于与其他外部数据库供给方案对接,例如阿里云MyBase。 BUG修复 修复了新版本Patroni重启后会重置PG HBA的问题 修复了PG Overview Dashboard标题中的别字 修复了沙箱集群pg-test的默认主库,原来为pg-test-2,应当为pg-test-1 修复了过时代码注释 功能改进 改造Prometheus与监控供给方式 允许在无基础设 …

    Read more

  • PG慢查询诊断方法论

    2021年02月01日 in PG 管理

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

    Read more

  • 在线修改主键列类型

    2021年01月15日 in PG 管理

    如何在线修改主键列类型,比如将 INT 至 BIGINT,同时又不影响业务? 假设在PG中有一个表,在设计的时候拍脑袋使用了 INT 整型主键,现在业务蓬勃发展发现序列号不够用了,想升级到BIGINT类型。这时候该怎么做呢? 拍脑袋的方法当然是直接使用DDL修改类型: ALTER TABLE pgbench_accounts ALTER COLUMN aid SET DATA TYPE BIGINT; 但这种方式对于访问频繁的生产大表是不可行的 太长;不看 让我们以 pgbench 自带的场景为 …

    Read more

Posts in 2020
  • v0.5.0 发布注记

    2020年12月26日 in 版本发布

    v0.5.0 大纲 Pigsty官方文档站正式上线! 添加了数据库模板的定制支持,用户可以通过配置文件定制所需的数据库内部对象。 对默认访问控制模型进行了改进 重构了HBA管理的逻辑,现在将由Pigsty替代Patroni直接负责生成HBA 将Grafana监控系统的供给方案从sqlite改为JSON文件静态Provision 将pg-cluster-replication面板加入Pigsty开源免费套餐。 最新的经过测试的离线安装包:pkg.tgz (v0.5) 定制数据库 您是否烦恼过单实 …

    Read more

  • v0.4.0 发布注记

    2020年12月14日 in 版本发布

    v0.4.0 第二个公开测试版v0.4现已正式发行 Pigsty v0.4对监控系统进行了整体升级改造,精心挑选了10个面板作为标准的Pigsty开源内容。同时,针对Grafana 7.3的不兼容升级进行了大量适配改造工作。使用升级的pg_exporter v0.3.1作为默认指标导出器,调整了监控报警规则的监控面板连接。 Pigsty开源版 Pigsty开源版选定了以下10个Dashboard作为开源内容。其他Dashboard作为可选的商业支持内容提供。 PG Overview PG …

    Read more