达梦高可用整理

概述

达梦共有3种高可用架构,分别是:共享存储(DSC)、主备读写分离、透明分布式架构。

共享存储集群

DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同 一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。

DMDSC 的主要特点包括:

  • 高可用性 只要集群中有一个活动节点,就能正常提供数据库服务。
  • 高吞吐量 多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
  • 负载均衡 用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负载大致平衡。

共享存储架构

图片.png

DMCSS(DM Cluster Synchronization Services)

DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础,使用 DMDSC 集群或者DMASM 集群都必须要配置 DMCSS。DMCSS 负责集群环境中节点的启动、故障处理、节点重 加入等操作。

每个集群节点都需要有一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集 群。单节点应用时,可以不配置 CSS。

DCR(DM Clusterware Registry)

DCR 是 DM 集群注册表的简称,用于存储、维护集群配置的详细信息,整个集群环境共 享 DCR 配置信息,包括 DMDSC、DMASM、DMCSS 资源,包括实例名、监听端口、集群中故 障节点信息等。DCR 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸 设备。在一个集群环境中只能配置一个 DCR 磁盘。

表决磁盘(Voting Disk)

表决磁盘记录了集群成员信息,DM 集群通过 Voting Disk 进行心跳检测,确定集群 中节点的状态,判断节点是否出现故障。当集群中出现网络故障时,使用 Voting Disk来确定哪些 DMDSC 节点应该被踢出集群。表决磁盘还用来传递命令,在集群的不同状态(启 动、节点故障、节点重加入等)DMCSS 通过 Voting Disk 传递控制命令,通知节点执行 相应命令。Voting Disk 必须存储在集群中所有节点都可以访问到的共享存储中,并且只 支持裸设备。在一个集群环境中只能配置一个表决磁盘。

主备读写分离

DM 数据守护(DM Data Watch)的实现原理非常简单:将主库(生产库)产生的 Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 Redo 日志传输与 重演过程中出现的各种异常情况提供一系列的解决方案。

Redo 日志记录物理数据页内容变动情况,Redo 日志也是数据守护的实现基础,数据库中 Insert、Delete、Update 等 DML操作以及 Create TABLE 等 DDL 操作最终都会体现为对某一个或者多个物理数据页的修 改,因此备库通过重做 Redo 日志可以与主库数据保持一致。

图片.png

同步模式

实时归档(Realtime)

实时归档的执行流程是,主库在 Redo 日志(RLOG_PKG)写入联机日志文件前,将Redo日志发送到备库,备库收到 Redo 日志(RLOG_PKG)后标记为 KEEP_PKG,将原KEEP_PKG加入日志重演任务系统,并马上响应主库,不需要等待 Redo 日志重演结束后再响应主库。 主库收到备库的响应消息,确认备库已经收到 Redo 日志后,再将 Redo 日志写入联机日志 文件中。

即时归档(Timely)

即时归档(Timely)在主库将 Redo 日志写入联机日志文件后,通过 MAL 系统将 Redo日志发送到备库。即时归档与实时归档的主要区别是 Redo 日志的发送时机不同。一个主库 可以配置 1~8 个即时备库。

  • 事务一致模式: 主库事务提交触发 Redo 日志刷盘和即时归档,备库收到主库发送的 Redo 日志,并重演完成后再响应主库。主库收到备库响应消息后,再响应用户的提交请求。事务一致模式下,同一个事务的 SELECT 语句无论是在主库执行,还是在备库执行, 查询结果都满足 READ COMMIT 隔离级要求。
  • 高性能模式: 与实时归档一样,备库收到主库发送的 Redo 日志后,马上响应主库,再启动日志重演。高性能模式下,备库与主库的数据同步存在一定延时(一般情况下 延迟时间非常短暂,用户几乎感觉不到),不能严格保证事务一致性。

事务一致模式下,主备库之间严格维护事务一致性,但主库要等备库 Redo 日志重演完 成后,再响应用户的提交请求,事务提交时间会变长,存在一定的性能损失。高性能模式则 通过牺牲事务一致性获得更高的性能和提升系统的吞吐量。用户应该根据实际情况,选择合 适的即时归档模式。

异步归档(Async)

由主、备库上配置的定时器触发,根据异步备库的 KEEP LSN 信 息,扫描本地归档目录获取 Redo 日志,并通过 MAL 系统将 Redo 日志发送到异步备库。

图片.png

实时主备

  • 1、实时数据同步

主备库通过实时归档完成数据同步,实时归档要求主库将 RLOG_PKG 发送到备库后, 再将 RLOG_PKG 写入本地联机 Redo 日志文件。但要注意的是,备库确认收到主库发送的Redo 日志,并不保证备库已经完成重演这些 Redo 日志,因此主备库之间的数据同步存在一定的时间差。

  • 2. 主备库切换

主备库正常运行过程中,可以通过监视器的 Switchover 命令,一键完成主备库角色转换。主备库切换功能可以确保在软、硬件升级,或系统维护时,提供不间断的数据库服务。

  • 3. 自动故障处理

备库故障,不影响主库正常提供数据库服务,守护进程自动通知主库修改实时归档为Invalid 状态,将实时备库失效。

  • 4. 自动数据同步

备库故障恢复后,守护进程自动通知主库发送归档 Redo 日志,重新进行主备库数据同步。并在历史数据同步后,修改主库的实时归档状态为 Valid,恢复实时备库功能。

备库接管后,原主库故障恢复,守护进程自动修改原主库的模式为 Standby,并重新 作为备库加入主备系统。

  • 5. 备库接管

主库发生故障后,可以通过监视器的 Takeover 命令,将备库切换为主库,继续对外提供服务。如果配置为自动切换模式,确认监视器可以自动检测主库故障,并通知备库接管, 这个过程不需要人工干预。

  • 6. 备库强制接管

如果执行 Takeover 命令不成功,但主库可能由于硬件损坏等原因无法马上恢复,为了及时恢复数据库服务,DM 提供了 Takeover Force 命令,强制将备库切换为主库。但 需要由用户确认主库故障前,主库与接管备库的数据是一致的(主库到备库的归档是 Valid状态),避免引发守护进程组分裂。

  • 7、读写分离访问

在备库查询的实时性要求不高的条件下,实时主备也可以配置接口的读写分离属性访 问,实现读写分离功能特性。

归档流程

图片.png

DMDSC 数据守护

图片.png

  1. DMDSC 集群各个节点分别部署守护进程(dmwatcher)。

  2. DMDSC 集群数据库控制节点的守护进程,称为控制守护进程,普通节点的守护进程称为普通守护进程,如果控制节点发生变化,则控制守护进程也相应变化。

  3. 守护进程会连接 DMDSC 集群所有实例,但只有控制守护进程会发起 OPEN、故障处理、故障恢复等各种命令。普通守护进程不处理用户命令,但接收其他库的控制 守护进程消息。

  4. 主备实时同步数据时,DMDSC 集群主库各个节点将各自产生的联机日志发送到备库进行重演。

透明分布式架构

达梦透明分布式架构除提供分布式计算架构特有的数据多副本、良好的横向扩展等能力 外,相对于互联网厂商提供的分布式数据库技术方案,本架构还具有全 SQL 支持、完整的 事务支持、与已有单机架构兼容,对应用透明等特点。

图片.png

计算层

由达梦数据库服务器面向用户提供并发的 SQL 服务,每一个节点都是一个数据库服务器(DS,Database Server)。例如,如果计算层是一个 DMDSC 集群,那么每一个 DS 则对应 DMDSC 集群中的一个实例。计算层技术是基于达梦共享存储集群技术发展而来,因此继承了以下功能:

日志层

由具有容灾能力的日志服务器 DRS 和日志归档服务器 DRAS 构成。DRS 负责 从 DS 实时接收数据变更日志,完成日志的存储和访问服务,并向存储层转发 REDO 日志。 当备 DRS 出现异常的情况下,DRAS 负责接收来自主 DRS 的日志进行备份归档,并承担在 主 DRS 异常重启或者备 DRS 切换成主 DRS 的过程中进行日志同步的作用,保证主 DRS 缺失的日志可以补足,从而保证数据的一致性。

存储层

存储层是一个支持多副本的分布式存储系统,包含多个存储服务器 DSS,主 要提供数据存储服务,按照 DRS 转发的 REDO 日志更新数据。存储层支持持续的数据页更新,且数据页更新是基于 REDO 日志回放机制,而非传统数 据库的检查点数据页刷盘机制,因此在 CPU 资源占用、内存带宽占用、资源峰谷差异等方 面具有更好的表现。

目录服务器

除计算层、日志层和存储层三个主要组成部件外,本架构还包含一个独立的目录服务器 DCS,负责提供整个分布式集群的元数据信息,主要包括集群的拓扑和数据副本的分布信息。由于 DCS 承担负载较小,因此采用单一节点即可满足性能要求。从高可用 的角度来看,DCS 短时故障也不会影响整体系统运行,因此 DCS 可以用一般的高可用方案, 如 HA、主备等即可满足要求。

图片.png

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏 克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值