当前位置: 首页 > news >正文

DMDUL:达梦数据库离线抽取数据工具

项目简介

DMDUL是一个面向达梦数据库的数据文件离线分析与数据抽取工具。

项目目标是在数据库无法正常打开、实例无法正常启动、系统表空间或用户表空间需要离线分析时,通过读取达梦数据库相关文件,辅助完成对象识别、表结构分析、数据页扫描和数据导出。

项目地址:

  • GitHub:GitHub - greatfinish/dmdul: 达梦数据库离线抽取工具 · GitHub
  • Release 下载:https://github.com/greatfinish/dmdul/releases

适用场景

DMDUL 主要适用于以下场景:

  1. 达梦数据库实例无法正常打开;
  2. 需要离线分析数据文件中的对象信息;
  3. 需要辅助识别表、字段、索引、页类型等内部结构;
  4. 需要在恢复、取证、测试或研究环境中抽取部分数据;
  5. 需要验证达梦数据文件页级结构和系统字典信息。

注意:DMDUL 是离线分析和辅助恢复工具,不应替代正式备份恢复方案。生产环境操作前,请优先保留原始数据文件副本。

功能特性

当前工具重点能力包括:

功能说明
控制文件分析读取达梦控制文件中的部分结构信息
表空间识别辅助识别 SYSTEM、ROLL、MAIN 等表空间信息
系统字典扫描离线扫描系统字典对象
表结构识别辅助识别表、字段、对象号等信息
页级扫描识别数据页、索引页和候选对象
数据抽取从候选数据页中抽取可识别记录
交互模式提供 REPL 风格的交互式操作
文档说明提供安装、使用、配置、开发和离线扫描说明

安装方式

下载 Release

前往 GitHub Release 页面下载对应版本:

https://github.com/greatfinish/dmdul/releases

Windows 环境可以下载编译好的dmdul.exe

源码编译

git clone https://github.com/greatfinish/dmdul.git cd dmdul go test ./... go build -o bin/dmdul.exe ./cmd/dmdul

Linux 环境可以编译为:

go build -o bin/dmdul ./cmd/dmdul

基本使用

查看帮助:

dmdul --help

进入交互模式:

dmdul

示例操作流程:

1. 指定控制文件和数据文件路径 2. 扫描表空间和系统字典 3. 识别对象和表结构 4. 确认目标表对象号 5. 扫描候选数据页 6. 导出识别到的数据

推荐工作流程

生产故障场景下,建议采用以下流程:

原始文件只读保留 ↓ 复制数据文件到分析环境 ↓ 使用 DMDUL 离线扫描 ↓ 识别表空间和系统字典 ↓ 定位目标表对象 ↓ 页级扫描和样例验证 ↓ 导出可恢复数据

风险提示

使用 DMDUL 前请注意:

  1. 不要直接在生产原始文件上操作;
  2. 先复制控制文件、数据文件到独立分析目录;
  3. 工具输出结果需要结合实际数据库版本和文件状态判断;
  4. 对损坏页、未识别页、索引页、LOB 页等场景需要谨慎验证;
  5. 离线抽取结果不等价于完整一致性恢复结果。

项目定位

DMDUL 当前定位是:

达梦数据库离线数据文件分析与数据抽取辅助工具

它更适合用于:

  • 数据恢复辅助;
  • 数据库内部结构学习;
  • 故障场景验证;
  • 页级结构分析;
  • DBA 工具实验。

不建议将其作为常规备份恢复手段。

后续计划

后续计划逐步增强:

  • 更多页类型识别;
  • 更完善的字段类型解析;
  • 更友好的导出格式;
  • 更完整的字典对象映射;
  • 更丰富的异常文件兼容能力;
  • Linux / Windows 双平台 Release 自动构建。

参与项目

欢迎通过 GitHub 提交 Issue、建议或 Pull Request:

https://github.com/greatfinish/dmdul

如果你在达梦数据库恢复、数据文件分析、页级结构识别方面有测试案例,也欢迎一起完善这个工具。

http://www.jsqmd.com/news/1125756/

相关文章:

  • 告别西门子依赖!C# 实现信捷 XD 系列 PLC 通信与数据采集
  • 普通人别死磕芯片级维修!设备装调,才是普通人更稳的技术出路
  • WP7有约(二):课后作业
  • Window系统Claude Code安装教程
  • 自动售货机的商品供应链管理,怎么做更高效~YH
  • 我用 Codex 复刻了一个 Windows 11 计算器,过程比想象中真实多了
  • Java后端面试与职业发展:从核心技能到AI应用集成
  • 中国 AI 冲击正在撼动硅谷——GLM-5.2 让硅谷大佬纷纷转向中国模型
  • idea 配置docker运行项目
  • 设计模式系列-适配器模式一、上篇回顾
  • 商品条码查询API实战:调用免费接口快速获取产品信息
  • 专业的区域教育一体化管理平台哪家技术强
  • thinkphp连接远程redis提示 Fatal error: Uncaught RedisException: WRONGPASS invalid username-password
  • 小红书数据采集终极指南:Python xhs库完整实战教程
  • # Cube Sandbox v0.3.0 实战全记录:从零部署到玩转快照/克隆/回滚
  • 海水环境防腐优选,锌合金牺牲阳极优势盘点
  • 为什么合规三证仪器稳定性参差不齐?原来是这些因素在作祟!
  • OpenAI Python库是什么?一文看懂通用大模型统一调用标准
  • se被限速
  • 国内申博有什么好的辅导机构?答案是申博有术
  • LangChain LCEL 链式调用:从管道运算符到可组合的 AI 应用
  • 免模型强化学习:蒙特卡洛与时序差分算法原理与实战
  • ncmdump终极指南:3分钟解锁网易云音乐加密文件
  • MCP协议,让大模型自己调用工具
  • 糖类代谢与健康全解析
  • XAML:button控件模板
  • IIC通信(STM32笔记)
  • 百度网盘不限速下载方法,在线解析教程
  • AI代码生成能力整合:从对话到执行的范式迁移与实战指南
  • 类型与变量