达梦8—主备01—基本知识
一、引言
数据守护(主备库)比常规的备份还原相比,更快恢复数据;
原理:
DM 数据守护(Data Watch)的实现原理非常简单:
将主库(生产库)产生的 Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。
数据库与数据库实例
数据库(Database)是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件),保存在物理磁盘或文件系统中。
数据库实例(Instance)就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。通过数据库实例,可以操作数据库,一般情况下,我们访问、修改数据库都是通过数据库实例来完成的。
二、基本概念
数据库模式:
normal模式;
primary模式
standby模式
数据库状态:
Redo日志:
redo日志记录我们的每一条操作,比如一条sql语句会转化为多个物理事务(PTX),
每一个物理事务包含多个redo记录,根据记录内容的不同,可都分为物理redo记录和逻辑redo记录;
redo日志包:
以物理事务 PTX 为单位保存日志,Redo 日志包(RLOG_PKG)是 DM 数据库批量保存物理事务产生的 Redo 日志的数据单
元。
归档:
归档是什么?很简单,是把redo日志归集在一个存储区(日志文件)的过程;
归档可以分为 5 类:本地归档、远程归档、实时归档、即时归档和异步归档。
与本地归档写入保存在磁盘中的日志文件,远程归档只把redo日志发送到联机日志文件不同,实时归档(Realtime)将主库产生的
Redo 日志通过 MAL 系统传递到备库,实时归档是实时主备和 MPP 主备的实现基础。实时归档只在主库生效,一个主库可以配置 1~8 个实时备库
实时归档的执行时机是,主库在 Redo 日志(RLOG_PKG)写入联机日志文件前,将 Redo日志发送到备库,
即时归档(Timely)在主库将 Redo 日志写入联机日志文件后,通过 MAL 系统将 Redo日志发送到备库。即时归档与实时归档的主要区别是 Redo 日志的发送时机不同。
异步归档(Async)由主、备库上配置的定时器触发,根据异步备库的 KEEP LSN 信息,扫描本地归档目录获取 Redo 日志,并通过 MAL 系统将 Redo 日志发送到异步备库。
归档类型比较:

实时主备:
实时主备系统由主库、实时备库、守护进程和监视器组成。通过部署实时主备系统,可以及时检测并处理各种硬件故障、数据库实例异常,确保持续提供数据库服务。
2.2基本概念
mal系统:是一个内部通信机制,主要使用tcp协议,进行redo日志传输。
三、守护进程
1、主要功能
- 监控数据库实例;守护进程和实例链路建立成功后,数据库实例定时发送信息到守护进程。
- 发送状态信息;守护进程将监控的数据库实例信息和守护进程自身的信息捆绑在一起,定时发送给其他守护进程和所有监视器。
- 监控其他守护进程;接收并解析其他守护进程发送的消息,如果超过一段时间(DW_ERROR_TIME)没有收到远程守护进程消息,会将远程守护进程状态认定为 ERROR 状态。
- 接受监控器消息;主备切换、备库接管等操作都是通过监视器命令进行,监视器将操作命令分解成多个步骤顺序执行。守护进程接收这些消息并通知实例进行相应操作。
- 主备库启动运行
- 备库故障处理
- 备库异常处理
- 主库故障处理
- 故障恢复处理
2、守护类型
- 本地守护
- 全局守护
3、守护模式
- 故障自动切换
- 故障手动切换
4、守护状态
五、配置文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!