PolarDB 使用4年的,我知道,你不知道的 Tips ! 有多少你知道?
❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 )(1 2 3 4 5 6 7 8群已经爆满 9群 为纯聊天群,默认不加入不得发广告,自己公众号文章链接等,发一次直接踢,默认加入8群,开10群PolarDB专业学习群115+)
最近没有写什么关于PolarDB的东西,使用PolarDB 也有一段时间,这里总结一下这个一些人人,比如架构师经常问这个数据库的一些问题,方便初学者快速掌握这个数据库的一些特性。
一、 PolarDB 云上版本单机形式的,无论MySQL or PostgreSQL兼容模式的都是使用统一的共享存储。共享存储承载PolarDB 独有的文件系统,文件格式,这些与传统的数据库文件的格式通通的不同,主要的目的有三
1 提高数据传输效率,降低CPU上上下文切换频率
2 让内存块和存储块统一,完全取消 MySQL PostgreSQL因为突然情况导致的数据页面损失,所以PolarDB 不需要double write 也不需要 FPW。整体系统避免了 MySQL 和 PG的重大性能问题。
3 独有的硬件系统匹配数据库的软件,做到最大化利用智能的硬件存储系统。
基于此,也产生了三个结果
1 只有一个数据副本落盘:主节点与所有只读节点挂载同一个共享存储集群(PolarStore)。只读节点不再做数据落盘写入,只同步内存状态(Buffer Pool)和日志元数据。
2 秒级扩容与分钟级备份:增加 RO 节点无需复制几 TB 的数据,只需拉起计算节点;备份基于存储层快照(Snapshots),无需扫描整库。
3 内存同步取代磁盘同步:主节点写入日志后,除了下发存储层,还会通过高并发 RDMA 网络将 Log 页位置推送给 RO 节点的内存。
二、PolarDB的代理,系统统一带有代理,代理为数据库的整体,不能分割使用,代理是PolarDB 在一些情况下,数据库崩溃但连接可以持续保持的一个基础。同时也是PolarDB 各种插件节点接入数据库的连接分发管理端。
三、MySQL Binlog 在PolarDB 是可无项,PostgreSQL WAL 不是可无项。
PolarDB for MySQL 如果不开启Binlog对于系统有性能的提高,BINLOG 在系统中属于累赘,复制不需要BINLOG ,PostgreSQL wal 是必须项,PolarDB for PG 必须有WAL。
四、无论 PolarDB for MySQL 还是 PolarDB for PostgreSQL 都是基于innodb 和 PG内核的重构,基本上可以视作是一个新的数据库,内核部分全部修改,否则无法适应云上的硬件和使用要求。
相对于MySQL 大改特改,PostgreSQL相比和开源版本关系更紧密。
五、PolarDB for MySQL 和 PolarDB for PostgreSQL 均原生支持HTAP ,但方式不同,各自都有自己支持HTAP的方式,个人这里说个人,基于使用中的一些特性,我更喜欢 PolarDB for MySQL中解决 OLAP的方式,PG也很不错,但使用起来相较 PolarDB for MySQL 还有很多改进的空间。
六、PolarDB 弹性就一种方式, 这个概念是错误的。 PolarDB 的弹性方式从模式上有两种, 从使用方式上有三种
1 垂直性能提升,直接弹跳 CPU 内存
2 横向自动扩展,PolarDB 可以直接弹出很多个从节点,在需要的时候自动建立,承接连接和计算,在不需要的时候,自动判断,自动回缩,对于业务基本是透明的。
3 整体的数据库没有固定配置,上线就是弹性,最低的形态是关机状态,如有连接接入就自动开始增加资源,直到官方的资源上限停止弹跳。
那么这里我留一个问题,到底这三种适合什么不同的场景中使用?有知道的吗?
同时我在留一个问题为什么PolarDB的数据库在开启了serverless后,内存使用到了99%依然不OOM?
除此以外PolarDB 在开启serverless后,存在部分情况下内存占用后,无法释放的问题,这个点在PolarDB for MySQL数据库上存在,这也是使用中一个DBA无法理解的问题,在内存被占用到较高水平如90%以上,业务量下降后,内存本身并不会释放,系统可能是希望不释放内存,来避免内存频繁分配导致的系统分配内存的消耗问题。
但基于原有的知识体系,搭建的告警设置会持续告警,而数据库系统则完全没有问题,持续运行,后续沟通后,建议我们对参数进行调整,参数是alloc_policy_disabled 这个参数,默认为ON 如果发现内存被吃入后,长时间不推出,可以将这个策略设置为OFF,加速内存的回收,这点在数据库使用了 serverless后会更加明显。
目前调整完此参数之间存在的问题基本解决。
好了,今天先总结这些,后续还会持续总结PolarDB的一些和传统数据库不一样的知识点。
我是怎么浪费Token的 DBA架构 转 数据库运维软件开发 转行开发第三天
比起简单的Skill技能,我更想建立Agent Skill的系统思维能力--- 感谢本书作者答疑解惑
MongoDB 全文索引 与 展示查询数据的一部分,提高性能
体现价值-我们靠PostgreSQL迁移PolarDB,给公司省下了100万 “巨款”
《告别迁移焦虑:OceanBase MySQL 模式能否兼容 DBA 的“祖传”运维 SQL?》
干数据库不是买白菜:光盯着License几毛钱,看不见300台机器的电费?
一个秘密,不是你 SQL 写对了,是优化器帮“擦了屁股” 客户问迁移后为什么快了--迁移到PolarDB后的故事
AI 引入后,MySQL 列权限控制,插入,更新,读取,删除 --有了AI 真是越帮越忙
PostgreSQL 大表改字段卡死的问题解决了吗? 解决了方案在此
AI 引入DBA 工作,造成工作量增加,忙不过来,根本忙不过来!!!
三无项目导致MongoDB 持续1406% CPU 问题解决