达梦数据库归档介绍
一、什么是归档
数据库归档是一种数据管理策略,它涉及将旧的、不经常访问的数据移动到一个单独的存储设备,以便在需要时可以检索,同时保持数据库的性能和效率。
归档的主要目标是为了释放数据库中的空间,以便更有效地利用高性能的存储设备来存储更频繁访问或更新的数据。同时,归档也确保了可能需要的旧数据得以保留,以便在需要时能够检索。
数据库归档的优点包括提高数据库性能、节省存储空间、数据保护以及支持数据分析和报告等。通过减少数据库中的数据量,归档可以提高查询速度和数据库性能。归档的数据通常存储在成本较低的存储设备上,这可以节省高性能存储设备的空间。此外,许多行业和地区的法规要求公司在一定期限内保留某些数据,通过归档,公司可以满足这些要求同时不影响数据库的性能。
二、达梦数据库的归档
归档是实现数据守护系统的重要技术手段,根据功能与实现方式的不同,DM数据库的归档可以分为6类:本地归档、远程归档、实时归档、即时归档、异步归档和同步归档。其中,本地归档日志的内容与写入时机与数据库模式相关;主库Redo日志写入联机日志文件后,再进行本地归档;备库收到主库产生的Redo日志后,直接进行本地归档,同时启动Redo日志重演。
归档模式 | 说明 |
本地归档 | 在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个远程归档。 |
- 本地归档
本地归档就是Redo日志写入到本地归档日志文件的过程。配置本地归档情况下Normal/Primary模式库在Redo日志写入联机Redo日志文件后,将对应的RLOG_PKG由专门的归档线程写入本地归档日志文件中。Standby模式库收到主库产生的Redo日志后,直接进行本地归档,写入本地归档日志文件中,同时启动Redo日志重演。
1)查看是否开启归档
a.配置本地归档
修改数据库为mount状态ALTER DATABASE MOUNT;
开启归档sp_set_para_value(1,'ARCH_INI',1);
配置本地归档
alterdatabaseaddarchivelog'DEST=/home/dmdba/dmarch,type=local,file_size=128,space_limit=1024';
修改数据库为openalterdatabaseopen;
2.远程归档
远程归档适用于dsc集群中,是将当前节点的归档目标配置在远程节点上,以此共享归档日志文件,同时,远程节点上配置的本地归档需要在共享磁盘上。在一个DSC集群中,一台机器配置远程归档到另一台机器上,而另一台机器也配置远程归档到这台机器上。
3.实时归档
与本地归档写入保存在磁盘中的日志文件不同,实时归档将主库产生的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配置项来设置实时归档的模式。
通常在配置实时归档时,dmarch.ini中ARCH_WAIT_APPLY配置为0,采用高性能模式
4.即时归档
即时归档与实时归档不同的在于,即时归档是在主库将 Redo 日志写入联机日志文件后,通过 MAL 系统将 Redo 日志发送到备库。即时归档与实时归档的主要区别是 Redo 日志的发送时机不同。一个主库可以配置 1~8 个即时备库。
根据备库重演 Redo 日志和响应主库时机的不同,即时归档分为两种模式:事务一致模式和高性能模式。即时归档模式可以通过dmarch.ini 中的 ARCH_WAIT_APPLY 或 WAIT_APPLY 配置项来设置。其中,ARCH_WAIT_APPLY 配置项默认值为 1,表示事务一致模式。
实时归档与即时归档不同:实施归档和即时归档最主要的区别在于写入联机日志文件的时机,实时归档在写入联机日志文件前发送,而即时归档在写入联机日志文件后再发送。实时归档ARCH_WAIT_APPLY配置为0,即时归档ARCH_WAIT_APPLY配置为1.
5.异步归档
异步归档由配置的定时器进行触发,根据异步备库的 KEEP LSN 信息,扫描本地归档目录获取 Redo 日志,并通过 MAL 系统将 Redo 日志发送到异步备库。异步备库的 Redo 日志重演过程与实时归档等其他类型的归档完全一致。
6.同步归档
同步归档在主库归档日志刷盘后,通过 MAL 系统将 Redo 日志发送到备库。同步备库的 Redo 日志重演过程与实时归档等其他类型的归档完全一致。
三、归档状态
归档状态概述
在达梦数据库中,归档状态主要分为以下几种:
- Valid:归档有效,允许执行数据库归档操作。
- Invalid:归档无效,主数据库不向备数据库发送联机Redo日志。
- Async_send:归档无效,但主库正在同步历史数据到备库。
归档状态转换时机
-
初始化状态:
- 主备库启动后,所有备库的归档状态默认为 Valid。
- 在守护进程打开主库之前,若发现备库数据不一致,归档状态会被修改为 Invalid。
-
实时备库和即时备库故障恢复:
- 当实时备库或即时备库故障恢复时,主库将同步历史数据,守护进程会将主库状态修改为 Suspend,并将备库的归档状态从 Invalid 修改为 Valid。
- 当守护进程再次打开主库后,主备库数据恢复为一致状态。
-
同步备库故障恢复:
- 主库开始同步历史数据时,备库的归档状态从 Invalid 修改为 Async_send。
- 在此过程中,日志刷盘线程会挂起,以确保备库能够追赶到主库的状态。主库到备库的归档状态从 Async_send 修改为 Valid,然后唤醒日志刷盘线程,确保主备库数据一致。
-
失败处理:
- 如果主库向实时备库发送日志失败,归档状态会被修改为 Invalid。
- 主库发送即时归档失败后,归档状态直接改为 Invalid。
- 主库发送同步归档失败后,归档状态也直接改为 Invalid,且不会进入 Suspend 状态。
-
条件恢复:
- 如果主库发现同步备库的归档状态为 Invalid,且满足故障恢复条件,将主库到备库的归档状态从 Invalid 改为 Async_send,并开始同步历史数据。同步完成后,备库的归档状态将修改为 Valid。
总结:达梦数据库的归档机制通过状态管理实现数据的高可用性和一致性。不同的归档状态和转换时机确保了在发生故障时能够快速恢复,保持主备库之间的数据同步。这种机制对于保障数据库的可靠性和稳定性至关重要。通过合理的状态管理,达梦数据库能够在各种场景下有效应对故障,确保数据的安全和完整。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台
相关文章:

达梦数据库归档介绍
一、什么是归档 数据库归档是一种数据管理策略,它涉及将旧的、不经常访问的数据移动到一个单独的存储设备,以便在需要时可以检索,同时保持数据库的性能和效率。 归档的主要目标是为了释放数据库中的空间,以便更有效地利用高性能…...
OpenAI推出AI搜索引擎SearchGPT
OpenAI推出AI搜索引擎SearchGPT 据英国《卫报》和美国消费者新闻与商业频道等媒体报道,7月25日,OpenAI宣布正在测试一款名为SearchGPT的全新人工智能(AI)搜索工具。该工具能够实时访问互联网信息,旨在为用户提供更具时…...
elementplus菜单组件的那些事
在使用 elementplus 的菜单组件时,我发现有很多东西是官方没有提到但是需要注意的点 1. 菜单组件右侧会有一个边框 设置css .el-menu {border: 0 !important; } 2. 使用其他的 icon 文字内容一定要写在 这个 名字为 title 的插槽中 <el-menu-itemv-for"it…...

【VSCode实战】Golang无法跳转问题竟是如此简单
上一讲【VSCode实战】Go插件依赖无法安装 – 经云的清净小站 (skycreator.top),开头说到了在VSCode中Golang无法跳转的问题,但文章的最后也没给出解决方案,只解决了安装Go插件的依赖问题。 解决了插件依赖问题,无法跳转的问题也离…...
three.js中加载ply格式的文件,并使用tween.js插件按照json姿态文件运动
先贴一下文件地址: aa.ply 文件: https://download.csdn.net/download/yinge0508/89595650?spm1001.2014.3001.5501 new.json https://download.csdn.net/download/yinge0508/89595641?spm1001.2014.3001.5501 代码: <template><div>&…...
性能对比:Memcached 与 Redis 的关键差异
性能对比:Memcached 与 Redis 的关键差异 在选择合适的缓存系统时,Memcached 和 Redis 是最常被提及的两种技术。它们都是内存存储系统,用于提高数据访问速度和应用性能。尽管它们在功能上有很多相似之处,但在性能、特性和应用场…...
app-routing.module.ts 简单介绍
Angular的路由是一种功能,它允许应用程序响应不同的URL路径或参数并根据这些路径加载不同的组件。app-routing.module.ts是Angular项目中负责设置应用程序路由的文件。 以下是一个简单的app-routing.module.ts文件示例,它配置了三个路由: i…...

基于JSP的水果销售管理网站
你好,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言: Java 数据库: MySQL 技术: JSP技术 工具: 未在文档中明确指出,可能包括但不限于IDEs(如Ec…...

web3d值得学习并长期发展,性价比高吗?
在数字化浪潮日益汹涌的今天,Web3D技术以其独特的魅力和广泛的应用前景,逐渐成为技术领域的焦点。对于许多热衷于技术探索和创新的人来说,学习并长期发展Web3D技术无疑是一个值得考虑的选择。那么,Web3D技术的学习和发展究竟是否性…...
【大数据面试题】38 说说 Hive 怎么行转列
一步一个脚印,一天一道大数据面试题 博主希望能够得到大家的点赞收藏支持!非常感谢 点赞,收藏是情分,不点是本分。祝你身体健康,事事顺心! 行转列 假设我们有一张名为 sales_data 的表,其中包含…...

C语言中的二维数组
文章目录 🍊自我介绍🍊二维数组🍊代码实战 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello,大家好,我是小珑也要变强&…...
Android12 添加屏幕方向旋转方案
添加屏幕方向属性值 device/qcom/qssi/system.prop persist.panel.orientation0修改开机动画方向 frameworks/base/cmds/bootanimation/BootAnimation.cpp status_t BootAnimation::readyToRun() {mAssets.addDefaultAssets();mDisplayToken SurfaceComposerClient::getIn…...
Harmony-(1)-TypeScript-ArkTs
1.TypeScript 1.1变量 布尔值let isDone: boolean false;数字let decLiteral: number 2023; let binaryLiteral: number 0b11111100111; let octalLiteral: number 0o3747; let hexLiteral: number 0x7e7; console.log(decLiteral is decLiteral)字符串let name: string…...

TC8:SOMEIP_ETS_007-008
SOMEIP_ETS_007: echoBitfields 目的 检查位字段是否能够被顺利地发送和接收。 测试步骤 Tester:创建SOME/IP消息Tester:使用method echoBitfields发送SOME/IP消息DUT:返回method响应消息,其中位字段的顺序与请求相比是反向的期望结果 3、DUT:返回method响应消息,其中位…...

[网络编程】网络编程的基础使用
系列文章目录 1、 初识网络 网络编程套接字 系列文章目录前言一、TCP和UDP协议的引入二、UDP网络编程1.Java中的UDP2.UDP回显代码案例3.UDP网络编程的注意事项 三、TCP网络编程1.TCP回显代码案例2.TCP多线程使用 总结 前言 在学习完基础的网络知识后,完成跨主机通…...
Postman中的Cookie和会话管理:掌握API测试的关键环节
Postman中的Cookie和会话管理:掌握API测试的关键环节 在API测试过程中,正确处理Cookie和会话管理对于模拟用户登录、维持会话状态以及测试需要用户认证的API至关重要。Postman提供了多种功能来帮助测试人员管理Cookie和会话,确保测试的准确性…...
python脚本,识别pdf数据,转换成表格形式
可以使用Python库来识别PDF文件并将其转换为表格形式。下面是一个示例脚本,使用了tabula-py库来进行PDF数据提取和转换操作。 首先,安装tabula-py库。可以使用以下命令来安装: pip install tabula-py然后,使用以下代码来实现PDF…...

Linux环境安装KubeSphere容器云平台并实现远程访问Web UI 界面
文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具,实现远程访问,根…...

jumpserver web资源--远程应用发布机
1、环境 jumpserver:3.10.10 远程发布机:windows 2019 2、windows 2019准备 保证windows 正常登录,并且可以访问jumpserver 3、添加远程发布机 能正常连接就继续 可看到这里正常了 4、添加web资源 找到我们需要自动登录界面 获取相关元素选…...

Linux环境docker部署Firefox结合内网穿透远程使用浏览器测试
文章目录 前言1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox 前言 本次实践部署环境为本地Linux环境,使用Docker部署Firefox浏览器后,并结合cpolar内网穿…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...