达梦数据库实时主备相关概念
🗺️

达梦数据库实时主备相关概念

Created
Sep 18, 2023 03:03 AM
Tags
数据库

拓扑图

notion image

1. 关于数据库模式

将数据库切换为 Primary 模式: ALTER DATABASE PRIMARY;
将数据库切换为 Standby 模式: ALTER DATABASE STANDBY;
将数据库切换为 Normal 模式: ALTER DATABASE NORMAL;
 
限制通过SQL修改数据库状态:
由于dmwatcher根据数据库模式、状态等信息作为故障处理、故障恢复的依据,建议在配置数据守护过程中,修改dm.ini参数ALTER_MODE_STATUS为0,限制用户直接通过SQL语句修改数据库状态、模式以及OGUID,避免dmwatcher做出错误的决策。

2. 关于MAL系统

MAL 系统是基于 TCP 协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。DM 通过 MAL 系统实现 Redo 日志传输,以及其他一些实例间的消息通讯。

3. 关于实时主备

实时主备系统由 "主库"、 (PRIMARY) "实时备库"、 (STANDBY) "守护进程"、 (dmwatcher) "监视器" (dmmonitor) 组成。
通过部署实时主备系统,可以及时检测并处理各种硬件故障、数据库实例异常,确保持续提供数据库服务。

4. 关于守护进程

守护进程(dmwatcher)是DM数据守护系统不可或缺的核心部件,是数据库实例和监视器之间信息流转的桥梁。
"数据库实例向本地守护进程发送信息,接收本地守护进程的消息和命令";
"监视器(dmmonitor)接收守护进程的消息,并向守护进程发送命令";
"数据库实例与监视器之间没有直接的消息交互";
守护进程解析并执行监视器发起的各种命令(Switchover/Takeover/Open database 等),并在必要时通知数据库实例执行相应的操作。

5. 关于监视器

通过监视器,可以监控数据守护系统的运行情况,获取主备库状态、守护进程状态以及主备库数据同步情况等信息。 同时,监视器(dmmonitor)还提供了一系列命令来管理数据守护系统。 监视器分为两种类型:普通监视器和确认监视器。 监视器类型由配置文件(dmmonitor.ini)的 MON_DW_CONFIRM 参数来确定。MON_DW_CONFIRM 参数的默认值是 0,表示普通监视器;MON_DW_CONFIRM 参数值为 1 时,表示确认监视器。 用户可根据实际需要,选择是否配置监视器或配置多少个监视器。普通监视器和确认监视器可以在系统中同时存在,也可以只配置其中一种。 故障自动切换模式下,必须配置确认监视器。

6. 相关配置文件

dm.ini 数据库配置文件 dmmal.ini mal系统配置文件 (主要通信相关的ip和端口等全都在此配置文件中配置) dmarch.ini 归档相关配置文件 dmwatcher.ini 守护进程相关配置文件
 
MAL_PORT
mal系统对外监听的端口, 用于数据守护等环境中各节点实例之间 MAL 链路配置,监听端端口配置此参数 (传redo日志用的)
MAL_INST_PORT
数据库实例的端口, 与dm.ini 中的 PORT_NUM 保持一致 (就是数据库的端口)
MAL_DW_PORT
数据库实例的守护进程的端口, 其他守护进程或监视器使用 MAL_HOST + MAL_DW_PORT 创建与该实例守护进程的 TCP 连接 (其他守护进程和监视器连接本守护进程用的) (守护进程相互间通信)
MAL_INST_DW_PORT
实例对守护进程的监听端口,实例服务器配置此参数, (守护进程连接实例用的)(仅本地用 ? )