暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

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

原创 孙莹 1天前
255
DMDUL 达梦数据库离线抽取数据工具

项目简介

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

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

项目地址:

适用场景

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

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论