注册
初识达梦(五):归档日志
技术分享/ 文章详情 /

初识达梦(五):归档日志

刘刘 2025/11/14 161 0 0

  在前面章节部分初识达梦(二):物理结构 曾经对其进行过简单的介绍。现在我们再重新认识一下它。

  归档日志,在某种概念上,其等价于Redo日志,严格意义上来讲,大家都知道Redo日志是循环写的,所以在它被覆盖之前,归档日志就是它的完整副本。在DM数据库中,根据实现方式的不同,有不同的分类。大致分为六类:本地归档、远程归档、实时归档、即时归档、异步归档和同步归档。下面我们将一一对其进行简单介绍:

本地归档

  字面意思,就是将 Redo 日志写入到本地归档日志文件的过程。配置本地归档情况下,Normal/Primary 模式库在 Redo 日志写入联机 Redo 日志文件后,将对应的 RLOG_PKG 由专门的归档线程写入本地归档日志文件中。Standby 模式库收到主库产生的 Redo 日志后,直接进行本地归档,写入本地归档日志文件中,同时启动 Redo日志重演。在主备模式下,所有的备库的归档文件日志是相同的。与联机 Redo 日志文件可以被覆盖重用不同,本地归档日志文件不能被覆盖,写入其中的 Redo 日志信息会一直保留,直到用户主动删除;如果配置了归档日志空间上限,系统会自动删除最早生成的归档 Redo 日志文件,腾出空间。

远程归档

  远程归档专门用于 DMDSC 环境中。
  远程归档(REMOTE ARCHIVE)是将当前节点的远程归档目录配置为另一节点的本地归档目录,以此来共享它的本地归档日志文件。其中,另一节点的本地归档目录必须位于ASM 共享存储或其他共享磁盘上,以使当前节点可以成功访问。远程归档采用双向配置的方式,即两个节点将自己的远程归档相互配置在对方机器上。
DMDSC 集群配置远程归档后,集群中任意实例都可以像访问本地归档一样,访问所有实例产生的归档日志。

实时归档

  与本地归档写入保存在磁盘中的日志文件不同,实时归档(Realtime)将主库产生的Redo 日志通过 MAL 系统传递到备库,实时归档是实时主备和 MPP 主备的实现基础。实时归档只在主库生效,一个主库可以配置 1~8 个实时备库。另外,实时归档也可以支持读写分离集群,实时归档也分为两种模式:事务一致模式和高性能模式,可以通过 dmarch.ini 中的 ARCH_WAIT_APPLY 或 WAIT_APPLY 配置项来设置实时归档的模式。
实时归档的执行流程是,主库在 Redo 日志(RLOG_PKG)写入联机日志文件前,将Redo 日志发送到备库,备库收到 Redo 日志(RLOG_PKG)后标记为 KEEP_RLOG_PKG,将原 KEEP_RLOG_PKG 加入日志重演任务系统,并马上响应主库,不需要等待 Redo 日志重演结束后再响应主库。主库收到备库的响应消息,确认备库已经收到 Redo 日志后,再将Redo 日志写入联机日志文件中。

即时归档

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

异步归档

  异步归档(Async)由主、备库上配置的定时器触发,根据异步备库的 KEEP LSN 信息,扫描本地归档目录获取 Redo 日志,并通过 MAL 系统将 Redo 日志发送到异步备库。异步备库的 Redo 日志重演过程与实时归档等其他类型的归档完全一致。

同步归档

  同步归档(Sync)在主库归档日志刷盘后,通过 MAL 系统将 Redo 日志发送到备库。同步备库的 Redo 日志重演过程与实时归档等其他类型的归档完全一致

备注点:

  1. dmarch.ini 中的 ARCH_WAIT_APPLY 或 WAIT_APPLY 配置项 对于实时归档和即时归档是一样的含义。都分别由高性能模式和事务一致性模式。
  2、除本地归档外,其它均可配置1-8个备库

以上内容为个人对达梦学习的初步认知,受限于视角与经验,不足之处恳请指正。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服