Fork me on GitHub

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) 在一个孤立的系统里,如果没有外力做工,其总混乱度(即熵)会不断增大,直至系统彻底变得无序 从系统软件的角度: 从应用系统上线那一刻开始,随着用户量的增加、业务功能的持续……

阅读全文

Smapler

一款轻量级的一体化监控工具 https://github.com/sqshq/sampler……

阅读全文

Git 文件过大清理

git目录下object文件过大清理 一、删除仓库上的项目,重新提交代码。 二、彻底清除历史记录 查询大文件的文件名 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 删除历史记录 git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 你的大文件名' --prune-empty --tag-name-filter cat -- --all rm -rf .git/refs/original/ git reflog expire --expire=now --all git fsck --full --unreachable git repack -A -d 本地空间变小 git gc --aggressive --prune=now 推送远端 ,本地远端空间……

阅读全文

Postgres 数据库

关于优化思考 数据库优化思考 - 性能优化 数据库优化思考 - 结构设计 数据库优化思考 - 模块调优 基础知识 模板数据库 数据库日志 Explain 执行计划 vacuum 垃圾回收器 表空间膨胀 fillfactor 填充因子 TOAST 技术 hot update tablespace 表空间 锁机制 锁等待 cluster 聚族表 咨询锁 adlock 数据库年龄 方法和函数 高级SQL 数据库 OOM 预防 跨库操作 autovacuum 触发机制 autovacuum……

阅读全文

etcd 访问控制

介绍 etcd 默认没有开启访问控制。 在生产环境中使用属于裸奔。 开启访问控制有两种方式 密钥证书验证 用户名密码验证 本篇实验用户名密码验证方式 用户 开启访问认证需要创建root 用户,root 用户默认自动拥有root角色的权限,及超级管理员。 角色 角色理解为指定权限的集合,权限包括 read 、write、 readwrite……

阅读全文

hot update

What is HOT HOT是“Heap Only Tuple”(仅元组堆)的缩写, 用来提高update效率。 行的新版本和旧版本位于同一块中时,该行的外部地址(原始行指针)保持不变,利用hot link指针进行转发地址。索引不需要任何改动。 前提条件 包含更新行的块中必须有足够的空间 在已修改值的任何列上均未定义……

阅读全文

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

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

阅读全文

unlogged table

介绍 在写数据的时候不记录wal的表。 在意外发生时表中的数据被trunce 。如断电、 主进程kill 、scrash 等。 正常关闭重启数据库时数据不会丢失。 优点: 提高写入效率 不足: 数据安全性不能得到保障。 由于没有wal 流复制从库不能同步 应用场景: 数据可丢失,如频繁更新,只保留最后状态信息……

阅读全文

误操作闪回

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

阅读全文