注册
主备集群数据同步方式与LSN介绍
技术分享/ 文章详情 /

主备集群数据同步方式与LSN介绍

yu 2023/12/26 1976 1 0

一、主备集群数据同步方式
达梦的主备数据同步方式分为实时和即时主备两种,类似oracle dg的数据保护模式:最大保护、最大可用、最大性能,而达梦主备同步模式分为:事务一致模式(实时)和高性能模式(即时)。

由dmarch.ini配置文件中的ARCH_WAIT_APPLY 配置项决定:
为0表示高性能模式
为1表示事务一致模式

1、实时主备(实时主备默认是高性能模式模式)
主库在 Redo 日志(RLOG_PKG)写入联机日志文件前,将 Redo日志发送到备库,
备库收到 Redo 日志(RLOG_PKG)后标记为 KEEP_PKG,
将原 KEEP_PKG加入日志重演任务系统,并马上响应主库。
不需要等待 Redo 日志重演结束后再响应主库。
主库收到备库的响应消息,确认备库已经收到 Redo 日志后,再将 Redo 日志写入联机日志文件中。
ARCH_WAIT_APPLY 配置项默认值为 0,即采用高性能模式

2、即时主备(即时主备只具有务事务一致性模式)
主库将 Redo 日志写入联机日志文件后
通过 MAL 系统将 Redo日志发送到备库。
即时归档,ARCH_WAIT_APPLY 默认是1,重演完后响应主库。
即时归档的同步机制可以保证备库的 Redo 日志不会比主库的 Redo 日志多。
备库故障或主备库之间网络故障,导致发送 RLOG_PKG 失败后,主库马上修改即时归档为 Invalid 状态,并切换数据库为 Suspend 状态。

二、LSN介绍
第一种:CUR_LSN 是系统已经分配的最大 LSN 值。物理事务提交时,系统会为其分配一个 唯一的 LSN 值,大小等于 CUR_LSN + 1,然后再修改 CUR_LSN=CUR_LSN+1
第二种:FILE_LSN 是已经写入联机 Redo 日志文件的日志包的最大 LSN 值。每次将 Redo 日志包 RLOG_PKG 写入联机 Redo 日志文件后,都要修改 FILE_LSN 值。
第三种:FLUSH_LSN 是已经发起日志刷盘请求,但还没有真正写入联机 Redo 日志文件的 最大 LSN 值。
第四种:CKPT_LSN 是检查点 LSN,所有 LSN <= CKPT_LSN 的物理事务修改的数据页, 都已经从 Buffer 缓冲区写入磁盘,CKPT_LSN 由检查点线程负责调整。
第五种:APPLY_LSN 是备库已写入联机 Redo 日志文件的日志包的原始最大 LSN 值,此 LSN 取自主库对应的原始日志包中的最大 LSN 值。如果主库是 DMDSC 集群,备库分别为主 库每一个节点维护一个 APPLY_LSN。(主要用于数据守护、MPP主备等集群系统中)。
第六种:RPKG_LSN 是备库重演 LSN,表示备库已经重演完成的最大 LSN。如果主库是 DMDSC 集群,备库分别为主库每一个节点维护一个 APPLY_LSN。(主要用于数据守护、MPP主备等集群系统中)

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服