- 博客(9)
- 收藏
- 关注
原创 PostgreSQL主从流复制原理及搭建
Postgresql9开始支持流复制(stream replication),作为pg原生的复制技术,有着很好的性能。本文从几个方面全面介绍pg的流复制技术。主从部署Postgresql主从部署比较简单,首先你需要安装好主从两个实例,然后进行主备库配置,主要配置可以参考如下步骤:主库配置:①创建角色用于同步:create role replica login replication en...
2019-08-12 13:12:18 6966
原创 PostgreSQL中的几种索引类型
索引是增强数据库性能的利器,在检索某些特定行的时候效率会有很大提升,postgresql中索引类型丰富,每种索引有着不同的应用场景,下面简单介绍一下。索引类型与场景BTree • =, >, >=, <, <=、排序Hash • =GIN • 多值类型(数组、全文检索、枚举、网络地址类型):包含、相交 • JSON类型 • 普通类型(通过btre...
2019-08-07 08:32:25 4262
原创 PostgreSQL HOT技术内幕解读
我们知道在数据库行数据更新时,索引也需要进行维护,如果是高并发的情况下,索引维护的代价很大,可能造成索引分裂。Pg为了避免这个问题,采用了HOT(堆内元组技术)解决这个问题,下面我们就这个技术详细探讨一下。我们先看看postgresql中page的结构:Pd_lsn:本页面最后一次变更所写入的xlog记录对于的lsn。Pd_checksum:页面校验和。Pd_lower:指向行指针的末尾...
2019-08-06 12:20:20 2035
原创 k8s容器平台架构浅析
行业背景Docker自2013年发行以来,得到了飞速的发展,直至今日已经成为了基础架构中必不可缺的一份子,也是构建企业云平台的有效手段。而作为容器编排及管理的利器的kubernetes,已经与docker紧紧绑在一起,K8S对docker提供了更加原生的支持,同时提供了资源调度、容器生命周期管理、负载均衡、弹性伸缩、高可用等底层功能。Docker基本概念Docker简单理解其实就是运行在li...
2019-08-04 15:29:18 1680
原创 PostgreSQL为什么要设置hot_standby_feedback
问题背景Postgresql从9.1开始支持流复制,流复制的出现是一次革命,因为它速度非常快,性能很好。流复制是基于wal日志的复制技术,主库不断发送wal日志至备库,备库进行应用回放。但是有时我们可能会在备库进行某个查询,然后遇到查询中途突然抛出如下错误:ERROR:canceling statement due to confilct with recovery。遇到这个错误很不幸,...
2019-08-04 15:07:50 2836
原创 记一次分布式数据库启动异常分析
今天在测试环境遇到一个很有意思的问题,我们在测试一款分布式数据库,这款分布式数据库底层是基于postgresql做的,现象大致是这样的,我们在重启数据库集群后发现某台机器的数据节点启动失败,然后去那台机器上发现进程确实没有启动。然后看了下运行日志,定位到了启动失败的原因,是内存不够用了,查了下该节点上还运行着其他数据库,由于其他数据库也占了一部分内存,造成该节点数据库由于内存不足启动失败。上面说...
2019-08-02 22:09:32 261
原创 Postgresql vacuum最佳实践
Postgresql作为世界上最先进的HTAP数据库,以其超高在线事务处理及分析性能和强大的功能被广泛应用与各行各业中。但其实它也并不完美,说到postgres,不得不提那个让人一直头疼的问题,也是数据库使用者锁诟病最多的地方:vacuum。那么为什么会有vacuum这个东西呢?它是做什么用的呢?我们先来聊聊postgresql的mvcc机制,我们知道,postgresql是没有undo...
2019-08-02 12:24:03 9987
原创 pgxc架构下两阶段提交异常分析
在当前去IOE的大潮下,分布式数据库正如火如荼的发展起来,特别是国产数据库呈现了井喷态势。一个典型的分布式数据库应该具有如下组件:①协调节点,也叫sql转发节点,用来进行sql协议支持,分布式执行计划生成与下发;②数据节点:用来存储数据,同时进行运算;③全局事务管理器,用来保证事务一致性。为了保证高可用,成熟的分布式数据库这些节点都具有主备切换功能。Pgxc就是这样cn+dn+gtm的经...
2019-08-02 12:15:48 1218
原创 数据库主备高可用架构浅析
数据库作为信息系统重要的基础设施,一直承担着压舱石的角色。互联网应用的高并发、海量数据使得数据库的负载越来越重,这在数据大集中的情况下愈发明显。而数据库作为信息系统唯一的“单点”,稳定性、可用性是首先要保证的目标。这里的单点并不是指数据库没有高可用方案,而是因为数据库只要涉及到数据的复制就一定是有状态的,有状态的应用更加难以运维,并且在遭遇异常时并不能做到真正意义上的无缝切换。传统关系型...
2019-08-02 10:01:14 2543
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人