达梦数据库的归档模式介绍

几种归档模式

归档是实现数据守护系统的重要技术手段,根据功能与实现方式的不同,DM 数据库的归档可以分为 6 类:本地归档、远程归档、实时归档、即时归档、异步归档和同步归档。

其中,本地归档日志的内容与写入时机与数据库模式相关;主库 Redo 日志写入联机日志文件后,再进行本地归档;备库收到主库产生的 Redo 日志后,直接进行本地归档,同时启动 Redo 日志重演。

在这里插入图片描述
什么是归档模式?

归档模式是与非归档模式对应的,这两种模式是DM8数据库的两种运行状态。

  • 非归档模式下,数据库只会将重做日志写入联机日志文件中进行存储;

  • 归档模式下,数据库会**同时将重做日志写入联机日志文件和归档日志文件中分别进行存储**。

    无论是归档模式和非归档模式,联机日志文件都是存在的

归档模式概览

归档模式说明
本地归档在REDO日志写入联机日志文件后触发,将REDO日志写入到本地归档文件。由归档线程完成本地归档动作,最多可以设置8个本地归档。
实时归档写入REDO日志到联机日志文件之,通过MAL系统发送REDO日志到远程服务器,远程服务器接收到REDO日志后,返回确认消息后,执行后续操作。发送REDO日志失败,或从备库返回的数据库模式不是STANDBY,将数据库切换为SUSPEND,阻塞所有REDO日志的写入操作。只能配置1个实时归档。这种归档类型只能用在主从备份集群中。
即时归档即时归档在主库将REDO日志写入联机日志文件,再通过MAL系统将REDO日志发送到备库。即时归档是读写分离集群的实现基础,与实时归档的主要区别是发送REDO日志的时间不同。一个主库可以配置1-8个即时备库。
异步归档在设定的时间点或者每隔设定时间,启动归档REDO日志发送。设置定时归档,必须确保至少有一个本地归档。最多可以设置8个异步归档。
同步归档同步归档的执行流程是,主库在归档日志刷盘后,将 Redo 日志发送到备库,备库收到 Redo 日志(RLOG_PKG)后将其加入日志重演任务系统,并马上响应主库,不需要等待 Redo 日志重演结束后再响应主库。
远程归档远程归档专门用于 DMDSC 环境中。将写入本地归档的REDO日志信息,发送到远程节点,并写入远程节点的指定归档目录(共享存储)中。最多可以配置8个远程归档。

一、本地归档(Local)

Redo 日志本地归档(Local),就是将 Redo 日志写入到本地归档日志文件的过程。配置本地归档情况下,Normal/Primary 模式库在 Redo 日志写入联机 Redo 日志文件后,将对应的 RLOG_PKG 由专门的归档线程写入本地归档日志文件中。Standby 模式库收到主库产生的 Redo 日志后,直接进行本地归档,写入本地归档日志文件中,同时启动 Redo 日志重演。

与联机 Redo 日志文件可以被覆盖重用不同,本地归档日志文件不能被覆盖,写入其中的 Redo 日志信息会一直保留,直到用户主动删除;如果配置了归档日志空间上限,系统会自动删除最早生成的归档 Redo 日志文件,腾出空间。本地归档文件在配置的归档目录下生成并保存,如果磁盘空间不足,且没有配置归档日志空间上限(或者配置的上限超过实际空间),系统将自动挂起,直到用户主动释放出足够的空间后继续运行。

DM 提供了按指定的时间或指定的 LSN 删除归档日志的系统函数,分别为SF_ARCHIVELOG_DELETE_BEFORE_TIME SF_ARCHIVELOG_DELETE_BEFORE_LSN,但用户需要谨慎使用。例如,在守护系统中,如果备库故障了,主库继续服务,主库的日志在继续增长。此时如果删除尚未同步到备库的主库归档日志,那么备库重启之后,会由于备库收到的日志缺失导致主备库无法正常同步数据。

在这里插入图片描述
本地归档情况下,Normal/Primary/Standby三种模式下归档文件Redo日志的区别?

模式区别
Normal/Primary归档日志文件保存的是当前节点产生的 Redo 日志,归档日志文件内容与联机日志内容保持一致
Standby备库归档日志文件保存的是主库产生的 Redo 日志,联机日志是重演日志以后,重新产生的。因此备库联机日志文件内容和归档日志文件内容是不完全一致的

结论:各个节点的归档日志是一致的,但是归档日志和联机内容不一定一致。

注意

为了最大限度地保护数据,当磁盘空间不足导致归档写入失败时,系统会挂起等待,直到用户释放出足够的磁盘空间。当磁盘损坏导致归档日志写入失败时,系统会强制HALT。

二、远程归档(REMOTE ARCHIVE)

后面补充

三、实时归档(Realtime)

与本地归档写入保存在磁盘中的日志文件不同,实时归档(Realtime)将主库产生的 Redo 日志通过 MAL 系统传递到备库,实时归档是实时主备MPP 主备的实现基础实时归档只在主库生效,一个主库可以配置 1~8 个实时备库。

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

另外,实时归档也可以支持读写分离集群,实时归档也分为两种模式:事务一致模式和高性能模式,可以通过 dmarch.ini 中的ARCH_WAIT_APPLY 或 WAIT_APPLY 配置项来设置实时归档的模式。

  • 事务一致模式

    • 主库事务提交触发 Redo 日志刷盘和即时归档备库收到主库发送的 Redo 日志,重演完成后再响应主库。主库收到备库响应消息后,再响应用户的提交请求。事务一致模式下,同一个事务的 SELECT 语句无论是在主库执行,还是在备库执行,查询结果都满足 READ COMMIT隔离级要求。
  • 高性能模式

    • 实时归档一样,备库收到主库发送的 Redo 日志后,马上响应主库,再启动日志重演。高性能模式下,备库与主库的数据同步存在一定延时(一般情况下延迟时间非常短暂,用户几乎感觉不到),不能严格保证事务一致性

这两种模式的具体含义和下一小节即时归档中的说明完全相同,区别仅在于配置为实时归档时,dmarch.ini 中的 ARCH_WAIT_APPLY 配置项默认值为 0,即采用高性能模式。

四、即时归档(Timely)

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

根据备库重演 Redo 日志和响应主库时机的不同,即时归档分为两种模式:事务一致模式和高性能模式。即时归档模式可以通过dmarch.ini 中的 ARCH_WAIT_APPLY 或 WAIT_APPLY 配置项来设置。其中,ARCH_WAIT_APPLY 配置项默认值为 1,表示事务一致模式。

实时归档和即时归档比较

比较点实时归档即时归档
归档时机写入联机日志前,发送到备库写入联机日志后,发送到备库
备库数量1~81~8
ARCH_WAIT_APPLY值0(高性能模式1(事务一致模式

五、异步归档(Async)

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

  • 每个 Primary 或 Standby 模式的数据库最多可以配置 8 个异步备库
  • Normal 模式下配置的异步备库会自动失效
  • 异步备库可以级联配置,异步备库本身也可以作为源库配置异步备库。

六、同步归档(Sync)

同步归档(Sync)在主库归档日志刷盘后,通过 MAL 系统将 Redo 日志发送到备库。同步备库的 Redo 日志重演过程与实时归档等其他类型的归档完全一致。备库收到 Redo 日志(RLOG_PKG)后将其加入日志重演任务系统,并马上响应主库,不需要等待 Redo 日志重演结束后再响应主库。一个主库可以配置 1~8 个同步备库。

❗七、归档模式的比较

比较项目本地归档实时归档即时归档异步归档同步归档
备库数量01~81~81~81~8
通过MAL传递数据
归档时机写入联机日志后,再写入本地归档日志 文件写入联机日志前,发送到备库写入联机日志后,发送到备库定时启动写入归档日志后,发送到备库
归档写入(发 送 )归档线程日志刷盘线程日志刷盘线程异步归档线程归档线程
数据来源RLOG_PKGRLOG_PKGRLOG_PKG本地归档文件RLOG_PKG
失败处理磁盘空间不足时,系统挂起等待用户释 放出足够的磁盘空间 。 磁盘损坏导致写入失败时,系统会强制HALTSuspend数据库,保持归档状态不变,等待守护进程干预Suspend数据库, 并设置归档为无效 状态,等待守护进程 干预不做处理,等待下次触发继续发送直接设置归档状 态为无效,不会 Suspend数据库
备库响应时机事务一致模式:重演完成后响应;高性能模式:收到立即响应事务一致模式:重演完成后响应;高性能模式:收到立即响应收到立即响应收到立即响应
源库模式Primary
Standby
Normal
PrimaryPrimaryPrimary
Standby
Primary
目标库模式StandbyStandbyStandbyStandby

注意

任意一个备库的实时归档/即时归档失败(即使其他备库归档成功了),主库都会切换为Suspend状态。

八、归档状态

本地归档、实时归档和即时归档均包含两种状态:Valid 和 Invalid。异步归档只有一种归档状态:Valid。而同步备库有三种归档状态,分别是 Valid,Invalid 和 Async_send。

  • Valid 归档有效,正常执行各种数据库归档操作。
  • Invalid 归档无效,主数据库不发送联机 Redo 日志到备数据库。
  • Async_send 归档无效,但主库正在同步历史数据到同步备库。

在不同的归档类型中,归档状态转换时机不同。具体转换时机描述如下:

  1. 主备库启动后,主库到所有备库的归档默认为 Valid 状态,守护进程 Open 主库前,根据主备库日志同步情况,将数据不一致备库的归档修改为 Invalid 状态。
  2. 实时备库和即时备库故障恢复,从主库同步历史数据后,守护进程将主库修改为 Suspend 状态,并将主库到备库的归档状态从 Invalid 修改为 Valid。当守护进程再次 Open 主库后,主备库数据重新恢复为一致状态。
  3. 同步备库故障恢复,主库开始同步历史数据时,将备库归档状态从 Invalid 修改为 Async_send,中间会将日志刷盘线程挂起确保备库能够追到和主库数据完全一致,并将主库到备库的归档状态从 Async_send 修改为 Valid,然后唤醒日志刷盘线程,主备库数据重新恢复为一致状态。
  4. 主库发送日志到实时备库失败挂起,守护进程处理 Failover 过程中,将主库到备库的归档状态修改为 Invalid。
  5. 主库发送即时归档失败后,直接将主库到备库的归档改为 Invalid 状态。
  6. 主库发送同步归档失败后,直接将主库到备库的归档改为 Invalid 状态,并且不会有主库切换到 Suspend 状态的过程。
  7. 异步归档始终保持 Valid 状态,一旦归档失败马上返回,等待下一次触发再继续发送。
  8. 主库发现同步备库归档状态为 Invalid,且满足同步备库故障恢复的条件时,将主库到备库的归档状态从 Invalid 改为 Async_send,并开始同步历史数据到备库,同步完成后会将备库归档状态从 Async_send 修改为 Valid 有效状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/312241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言发展史

前言 当前,C语言是大学广泛应用的计算机教学语言之一,除了文科类专业,大部分理工科专业都会教授C语言,但是,C语言是谁搞出来的?是怎么编译的?相信很多同学对此并不清楚,今天,我们就…

安达发|APS智能排产系统之换产矩阵

在制造业中,生产计划和调度是至关重要的环节。为了提高生产效率、降低成本并满足客户需求,企业需要采用先进的生产管理系统。APS(高级计划与排产)智能排产系统正是为此而生的一种解决方案。它通过数学模型和算法,实现了…

视频监控设备通过onvif协议接入到视频监控平台

目 录 一、什么是onvif规范 1、onvif的定义 2、onvif的优势 二、AS-V1000监控平台对onvif的支持程度 二、通过onvif接入视频监控设备 1、onvif维护主页面 2、设备发现 3、设备验证 4、设备录入系统 5、通道配置 6、权限分配 三、对onvif设备进行…

im6ull学习总结(三-五)freetype显示正行字

知识补充 笛卡尔坐标系 这里笛卡尔坐标系就是初高中学的直角坐标系的第一象限 lcd坐标系则不同 这两个坐标系如何转换 观察两个坐标系 点(x,y)的x坐标在两个坐标系中相同,纵坐标(y)存在着yV-yV V是整个屏幕的行数的像…

小程序基础学习(组件化)

(一)创建 找到components文件夹下面创建新的文件夹 然后再文件夹内创建component格式的文件 创建后这样 我创建的是my-info的文件夹以及my-info的components文件,跟着普通的页面一样 (二) 注册组件 找到你需要使用组…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑤

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应处理,执行j10*x-y返回文字“j1:”和计算值,执行j(x-y)*(10⁵%7)返回文字“j2:”和计算值,执行jy*log(x10)返回文字“j3:”和计算值…

Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式

Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式 今天在项目中碰到一个 UI 改造的需求,需要根据设计图把页面升级成 UI 设计师提供的设计图样式。 到最后页面改造完了,但是 UI 提供的下拉菜单样式全部是黑色半透明的,只能硬着头皮改了。…

银河麒麟v10安装前端环境(Node、vue、Electron+vite)

此帖子所提到的所有依赖包都是基于银河麒麟v10真机的arm架构包,如果是在windows上的虚拟机上 把依赖包换成x64的包即可,方法步骤都是一样 一.node安装 原始方法安装(建议用第二种nvm方法,因为更简单): 1…

探索媒体查询的世界:适应多种设备的技巧与实践(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

PDF结构详解

文章目录 介绍前言高保真的文件什么是PDF?PDF的一些优点版本摘要谁在使用PDF?有用的免费软件谁应该阅读 构建一个简单PDF文件基本PDF语法File StructureDocument ContentPage Content 构建简单PDF文件头目录,交叉引用表和文件尾主要对象图形内…

力扣hot100 二叉树的最近公共祖先 递归

Problem: 236. 二叉树的最近公共祖先 👨‍🏫 参考大佬题解 💖 图解 时间复杂度, 示例: O ( n ) O(n) O(n) 空间复杂度, 示例: O ( n ) O(n) O(n) 💖 AC code /*** Definition for a binary tree node.*…

PostgreSQL之SEMI-JOIN半连接

什么是Semi-Join半连接 Semi-Join半连接,当外表在内表中找到匹配的记录之后,Semi-Join会返回外表中的记录。但即使在内表中找到多条匹配的记录,外表也只会返回已经存在于外表中的记录。而对于子查询,外表的每个符合条件的元组都要…

概率论与数理统计-第7章 假设检验

假设检验的基本概念 二、假设检验的基本思想 假设检验的基本思想实质上是带有某种概率性质的反证法,为了检验一个假设H0,是否正确,首先假定该假设H0正确,然后根据抽取到的样本对假设H0作出接受或拒绝的决策,如果样本观察值导致了…

如何从 Keras 中的深度学习目录加载大型数据集

一、说明 数据集读取,使用、在磁盘上存储和构建图像数据集有一些约定,以便在训练和评估深度学习模型时能够快速高效地加载。本文介绍Keras 深度学习库中的ImageDataGenerator类等工具自动加载训练、测试和验证数据集。 二、ImageDataGenerator加载数据集…

CMake入门教程【高级篇】配置文件(configure_file)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.configure_file作用2.详细使用说明3.完整代码示例4.实战使用技巧与注意事项5.总结分析1.configure_file作用

添加气泡与菜单

目录 1、添加气泡 1.1、文本提示气泡 1.2、带按钮的提示气泡 1.3、自定义气泡 2、菜单 2.1、创建默认样式的菜单 2.2、创建自定义样式的菜单 1、添加气泡 Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于…

【野火i.MX6ULL开发板】利用microUSB线烧入Debian镜像

0、前言 烧入Debian镜像有两种方式:SD卡、USB SD卡:需要SD卡(不是所有型号都可以,建议去了解了解)、SD卡读卡器 USB:需要microUSB线 由于SD卡的网上资料很多了,又因为所需硬件(SD卡…

基于人工蜂群算法多无人机轨迹规划

#生物背景 蜜蜂是一种群居生物,生物学家研究发现蜜蜂以跳舞的方式来交换蜜源信息。根据分工的不同,蜜蜂被分为三个工种:引领峰、跟随蜂、侦察蜂。 侦察蜂的职责是侦察蜜源(即蜜蜂的食物),一旦某一个侦察蜂…

XCTF:MISCall[WriteUP]

使用file命令,查看该文件类型 file d02f31b893164d56b7a8e5edb47d9be5 文件类型:bzip2 使用bzip2命令可对该文件进行解压 bzip2 -d d02f31b893164d56b7a8e5edb47d9be5 生成了一个后缀为.out的文件 再次使用file命令,查看该文件类型 file…

2024最新适用于 Windows 、Mac 的最佳屏幕录制软件

屏幕录制软件可以帮助我们录制 PC 和MacBook的实时屏幕视频。如果您想为 优酷录制视频,或者您正在为您的公司制作基于视频的项目,并且需要捕获屏幕的实时视频录制,那么我们在此列出了 一 款适合您的 Windows 、Mac的 2024 年最佳屏幕录制软件…