Posts in 2021
  • 故障档案:时间回溯导致的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

  • 在线修改主键列类型

    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

  • 黄金监控指标:错误延迟吞吐饱和

    2020年11月06日 in PG 管理

    前言 玩数据库和玩车有一个共通之处,就是都需要经常看仪表盘。 盯着仪表盘干什么,看指标。为什么看指标,掌握当前运行状态才能有效施加控制。 车有很多指标:车速,胎压,扭矩,刹车片磨损,各种温度,等等等等,各式各样。 但人的注意力空间有限,仪表盘也就那么大, 所以,指标可以分两类: 你会去看的:黄金指标 / 关键指标 / 核心指标 你不会看的:黑匣子指标 / 冷指标。 黄金指标就是那几个关键性的核心数据,需要时刻保持关注(或者让自动驾驶系统/报警系统替你时刻保持关注),而冷指标通常只有故障排查时才 …

    Read more

  • v0.3.0 发布注记

    2020年10月24日 in 版本发布

    v0.3.0 首个Pigsty公开测试版本现在已经释出! 监控系统 Pigsty v0.3 包含以下8个监控面板作为开源内容: PG Overview PG Cluster PG Service PG Instance PG Database PG Table Overview PG Table Catalog Node 离线安装包 v0.3 离线安装包(CentOS 7.8)已经可以从Github下载:pkg.tgz

    Read more

  • 数据库集群管理概念与实体命名规范

    2020年06月03日 in PG 管理

    名之则可言也,言之则可行也。 概念及其命名是非常重要的东西,命名风格体现了工程师对系统架构的认知。定义不清的概念将导致沟通困惑,随意设定的名称将产生意想不到的额外负担。因此需要审慎地设计。 TL;DR **集群(Cluster)**是基本自治单元,由用户指定唯一标识,表达业务含义,作为顶层命名空间。 集群在硬件层面上包含一系列的节点(Node),即物理机,虚机(或Pod),可以通过IP唯一标识。 集群在软件层面上包含一系列的实例(Instance),即软件服务器,可以通过IP:Port唯一标 …

    Read more

  • PostgreSQL的KPI

    2020年05月29日 in PG 管理

    管数据库和管人差不多,都需要定KPI(关键性能指标)。那么数据库的KPI是什么?本文介绍了一种衡量PostgreSQL负载的方式:使用一种单一横向可比,与负载类型和机器类型基本无关的指标,名曰PG Load(PG负载)。 0x01 Introduction 在现实生产中,经常会有衡量数据库性能与负载,评估数据库水位的需求。一种最朴素的形式就是,能不能有一个类似于KPI的单一指标,能直接了当地告诉用户他心爱的数据库负载有没有超过警戒线?工作量到底饱和不饱和? 当然这里其实隐含着一个重要信息,即用户 …

    Read more

  • 在线修改PG字段类型

    2020年01月30日 in PG 管理

    场景 在数据库的生命周期中,有一类需求是很常见的,修改字段类型。例如: 使用INT作为主键,结果发现业务红红火火,INT32的21亿序号不够用了,想要升级为BIGINT 使用BIGINT存身份证号,结果发现里面有个X需要改为TEXT类型。 使用FLOAT存放货币,发现精度丢失,想要修改为Decimal 使用TEXT存储JSON字段,想用到PostgreSQL的JSON特性,修改为JSONB类型。 那么,如何应对这种需求呢? 常规操作 通常来说,ALTER TABLE可以用来修改字段类型。 …

    Read more