Fork me on GitHub

分类 postgres 中的文章

数据库试图之 pg_stat_bgwriter

介绍 可查看 backgroud writer, checkpoint ,backend 进程刷写 Shared buffer 情况视图 pg数据库在写入时先在内存中更新shared buffer ,然后有checkpoint机制将脏数据刷写到磁盘。 视图 select * from pg_stat_bgwriter ; -[ RECORD 1 ]---------+------------------------------ checkpoints_timed | 64017 checkpoints_req | 458 checkpoint_write_time | 9608302902 checkpoint_sync_time | 1189286 buffers_checkpoint | 578367652 buffers_clean | 329022 maxwritten_clean | 2353 buffers_backend | 29802728 buffers_backend_fsync | 0 buffers_alloc | 83826180 stats_reset | 2020-08-20 19:41:20.491551+08 负责将shared buffer 中的内容……

阅读全文

数据库高可用设计分析

基本概念 集群: 一组多个同时对外提供相同服务的实体机组成一个集群。这里的集群为主从结构,可写节点为主节点,其他只读节点为从节点。 高可用: 在发生局部故障时对整体业务影响很低。即不可用的时间要尽量的短。 对外部应用的访问来说,无需关注如何实现,如同只访问一个节点。并能得到持续的服务能力。……

阅读全文

pg_rman 备份恢复数据库

适用场景 PG_RMAN 基于本地数据拷贝的方式,要求与数据库需要安装在同一个机器节点上。 适用于项目初期,对数据库的规划处于初级阶段。实体机不充分的情况是个很好的选择。 数据库使用ssd盘,备份磁盘采用企业sata大盘。或nfs网盘等。 PG_RMAN 支持全备份,增量备份,备份验证,保留策略等 应用软件包地址 https://github.com/ossc-db/pg_rman/releases 基……

阅读全文

Patroni 高可用管理进阶

完成目标 主从同步策略 异地多机房策略 failover 触发详情 访问认证 watch-dog 配置文件详情 fencing DCS 失效处理 加入节点复制数据限流 主从切换流量,避免重新拉取 级联复制 callback 日志&监控 主从同步策略 数据库主从之间同步类型 Synchronous state of this standby server. Possible values are: async: This standby server is asynchronous. potential: This standby server is now asynchronous, but can potentially become synchronous if one of current synchronous ones fails. sync: This standby server is synchronous. quorum: This standby server is considered as……

阅读全文

数据库优化思考-性能优化

为什么要优化 首先了解一个概念,什么是·熵增· 物理定义:熵增过程是一个自发的由有序向无序发展的过程(Bortz, 1986; Roth, 1993) 在一个孤立的系统里,如果没有外力做工,其总混乱度(即熵)会不断增大,直至系统彻底变得无序 从系统软件的角度: 从应用系统上线那一刻开始,随着用户量的增加、业务功能的持续……

阅读全文

数据库优化思考 - 模块调优

开始乱说 主要是结合postgres数据库自身特点,根据具体的业务场景,作出相应调整,使其更加合理。 数据库作为一个整体对外提供服务,单是其内部是由不同的功能模块组成,相互协调来共同完成任务。 各个功能模块完成不同的功能,每个模块的特点也不同,在调整的时候至少需要理解各个模块实现的基本……

阅读全文

误操作闪回

原理 利用mvcc原理,数据在删除或更新时只是标记为删除。当没有发生过gc时历史数据仍然存在。只是对当前事务不可见。 通过修改当前事务号为误操作前的事务号就可以看到历史数据。 例如 T1 (添加数据) T2 - T8(其他操作) T9(删除了T1加入的数据)T10… (其他操作)。 自需要将……

阅读全文

数据库优化思考 - 结构设计

DB 与 APP 的不同 有无状态 无状态应用,每个实例提供的服务都是等价、对等的。APP 应用为无状态应用,DB应用为有状态应用。 数据库正是因为有状态,所以维护起来更有挑战。 APP 在面对大量高并发请求时可以无所顾及的增加实例,加机器进行扩容。处理能里也会将得到线性提升。简单粗暴又有效。 DB 面对同样的压……

阅读全文

auto vacuum 触发机制

数据库自动垃圾回收触发条件分析 在postgres 中 垃圾回收的重要意义及在执行垃圾回收时具体都做了些什么很多地方都有介绍。 但是何时触发垃圾回收,即垃圾回收的触发条件是什么。 官网的介绍一般是有如下几个参数决定 #autovacuum = on # Enable autovacuum subprocess? 'on' #autovacuum_vacuum_threshold = 50 # min number of row updates before vacuum #autovacuum_analyze_threshold = 50 # min number of row updates before analyze #autovacuum_vacuum_scale_factor = 0.2 # fraction of table size……

阅读全文

创建只读用户

创建只读用户readonly 1.创建一个用户名为readonly密码为ropass的用户 CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; 2.用户只读事务 alter user readonly set default_transaction_read_only=on; 3.把所有库的语言的USAGE权限给到readonly GRANT USAGE ON SCHEMA public to readonly; 4.授予select权限(这句要进入具体数据库操作在哪个db环境执行就授予那个db的……

阅读全文