YashanDB主备高可用
本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/概念手册/YashanDB体系架构/主备高可用.html
主备复制是数据库最主要的高可用手段,通过将主库上的数据实时复制到备库来实现。主库是执行业务的数据库实例,备库是复制主库数据的数据库实例。当主库发生故障时,业务可以转移到备库上继续执行,降低故障对业务的影响,提高数据库的可用性。
YashanDB支持主备模式(一主多备)和级联备模式(不限层级)的高可用部署架构。
主备实例部署在不同的服务器上,两台服务器一般应连接到同一交换机,确保网络低时延,并应考虑交换机的冗余配置,保证高可用避免单点故障。
级联备为异步备库,从备库接收日志,减少主库上的带宽负载,通常用于异地容灾中。
以下图为例:
-
主库
当前提供在线数据库服务,读写模式。
分布式主备高可用部署中,每个MN Group和DN Group组内包含一个主库。
共享集群主备高可用部署中,主库被扩展为主集群的概念,主集群中多实例同时提供在线数据库服务,均为读写模式。
-
备库
从主库接收日志并回放,只读模式,主库故障时从备库状态切换为主库状态,一个主库可以有多个备库。
分布式主备高可用部署中,每个MN Group和DN Group组内包含一个或多个备库。
共享集群主备高可用部署中,备库被扩展为备集群的概念,但只需要备集群中的1号实例进行日志接收和回放。
-
级联备
备库的备库,从备库接收日志并回放,一个备库可以有多个和多层级联备。当上级备库升为主库后,级联备转为普通备库;当主库变成备库后,它的备库变成级联备。
分布式和共享集群主备部署中无级联备。
主备复制链路
主备复制中,通过主库发送redo日志,备库接收日志并回放,以实现备库和主库的在线同步。YashanDB采用环形Log Cache缓存redo日志,同步模式下日志发送和备库回放优先从缓存读取数据,提高速度。
日志回放是指备库通过重演主库发送过来的redo日志来恢复数据页面,以达到和主库的及时同步。当在Log Cache和redo文件中均未找到需要的数据时,将启动线程同步主库的归档日志文件到备库并从中查找所需数据,最大程度保障主备库的数据一致性。
主备库复制链路:
主备集群复制链路:
主备切换
YashanDB支持手动切换主备库和特定场景下无需外部干预的自动选主。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库