news 2026/4/16 19:51:30

DM 数据库从入门到实操:国产数据库技术学习心得

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DM 数据库从入门到实操:国产数据库技术学习心得

一、目录

  1. 引言:国产数据库的发展与 DM 数据库优势
  1. DM 数据库安装与环境配置(附实操截图)
  1. 实例创建与核心参数优化
  1. 备份还原机制与实操步骤
  1. 常用函数与 SQL 查询实战
  1. DM SQL 程序设计思路与案例
  1. 实操常见问题及解决方案
  1. 学习总结与展望

二、引言

随着国产化替代浪潮的推进,国产数据库技术已成为企业数字化转型的核心支撑。达梦数据库(DM)作为国内自主研发的高性能数据库,凭借兼容 Oracle 语法、高安全性、高可用性等优势,广泛应用于政务、金融、能源等关键领域。在《国产数据库技术》课程学习中,我从环境搭建到实操实战逐步深入,现将 DM 数据库核心知识点与实操心得整理如下,助力更多开发者快速上手。

三、DM 数据库安装与环境配置

3.1 安装前提

操作系统:CentOS 7.9(64 位),内存≥4GB,磁盘空间≥20GB,关闭防火墙与 SELinux。

3.2 安装步骤(附关键截图说明)

  1. 下载 DM 数据库安装包(dm8_20230808_x86_rh7_64_ent.zip),上传至服务器 /usr/local 目录;
  1. 解压安装包:unzip dm8_20230808_x86_rh7_64_ent.zip;
  1. 执行安装脚本:./DMInstall.bin,选择 “典型安装”,默认安装路径为 /opt/dmdbms;
  1. 安装完成后,执行初始化脚本:/opt/dmdbms/bin/dminit path=/opt/dmdata PAGE_SIZE=16(PAGE_SIZE 建议 16KB,适配大表场景);
  1. 启动数据库服务:systemctl start DmServiceDMSERVER,查看状态:systemctl status DmServiceDMSERVER。

截图要点:安装向导界面选择 “典型安装”、初始化参数配置界面、服务启动成功状态提示(需标注关键路径与参数)。

3.3 客户端连接

使用 DM 管理工具(DM Management Tool),输入服务器 IP、端口(默认 5236)、用户名 SYSDBA、密码 SYSDBA,连接成功后即可进行可视化操作。

四、实例创建与核心参数优化

4.1 实例创建关键参数

  • PAGE_SIZE:数据页大小,可选 4KB/8KB/16KB/32KB,大表场景建议 16KB;
  • EXTENT_SIZE:表空间扩展大小,默认 16MB,根据业务数据量调整;
  • CHARSET:字符集,默认 GB18030,支持 UTF-8;
  • CASE_SENSITIVE:大小写敏感,默认 Y(兼容 Oracle),开发环境建议 N。

4.2 性能优化参数

修改 /opt/dmdbms/bin/dm.ini 配置文件:

  • BUFFER:缓冲区大小,设为物理内存的 50%(如 8GB 内存设为 4096MB);
  • SORT_BUF_SIZE:排序缓冲区大小,默认 1MB,大数据排序设为 8MB;
  • LOG_BUFFER_SIZE:日志缓冲区大小,默认 16MB,高并发场景设为 64MB。

修改后重启服务:systemctl restart DmServiceDMSERVER。

五、备份还原机制与实操步骤

5.1 备份类型

  • 物理备份:冷备份(数据库关闭状态)、热备份(数据库运行状态);
  • 逻辑备份:通过 dexp 工具导出数据,dimp 工具导入数据。

5.2 热备份实操

  1. 登录 DM 管理工具,右键点击实例→“备份”→“创建备份策略”;
  1. 选择 “完全备份”,备份路径设为 /opt/dmbackup,备份周期设为每日凌晨 2 点;
  1. 手动执行备份:/opt/dmdbms/bin/dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdata/DAMENG/dm.ini' FULL TO BACKUP_20240520 BACKUPSET '/opt/dmbackup/BACKUP_20240520'";
  1. 还原测试:停止数据库→删除数据文件→执行还原命令:dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmbackup/BACKUP_20240520'"→恢复数据库:dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmbackup/BACKUP_20240520'"→启动数据库。

截图要点:备份策略配置界面、备份命令执行成功日志、还原后数据验证结果。

六、常用函数与 SQL 查询实战

6.1 核心函数用法

  • 字符串函数:SUBSTR('达梦数据库',1,2)→返回 “达梦”,CONCAT('DM','8')→返回 “DM8”;
  • 日期函数:CURDATE()→返回当前日期,DATEADD('DAY',3,CURDATE())→返回 3 天后日期;
  • 聚合函数:SUM()、AVG()、COUNT(),支持分组统计:SELECT DEPT, AVG(SALARY) FROM EMP GROUP BY DEPT。

6.2 复杂查询案例

需求:查询 “研发部” 员工中 2023 年入职、工资高于 8000 的员工信息,按工资降序排列:

SELECT EMP_ID, EMP_NAME, SALARY, HIREDATE

FROM EMP

WHERE DEPT = '研发部'

AND YEAR(HIREDATE) = 2023

AND SALARY > 8000

ORDER BY SALARY DESC;

执行结果:返回符合条件的员工列表,可通过 DM 管理工具的 “执行计划” 优化查询效率(如添加 DEPT、HIREDATE 联合索引)。

七、DM SQL 程序设计思路与案例

7.1 程序设计步骤

  1. 需求分析:明确业务场景(如员工考勤统计);
  1. 数据建模:设计表结构(如 ATTENDANCE 表包含 EMP_ID、ATTEND_DATE、STATUS 字段);
  1. 逻辑编写:使用存储过程实现批量统计;
  1. 测试优化:执行存储过程,验证结果并优化性能。

7.2 存储过程案例

CREATE OR REPLACE PROCEDURE STAT_ATTENDANCE(IN DEPT VARCHAR(20), OUT TOTAL INT, OUT LATE_COUNT INT)

AS

BEGIN

-- 统计部门总考勤天数

SELECT COUNT(*) INTO TOTAL FROM ATTENDANCE WHERE DEPT = DEPT;

-- 统计迟到次数

SELECT COUNT(*) INTO LATE_COUNT FROM ATTENDANCE WHERE DEPT = DEPT AND STATUS = '迟到';

PRINT '部门:' || DEPT || ',总考勤天数:' || TOTAL || ',迟到次数:' || LATE_COUNT;

END;

/

调用存储过程:CALL STAT_ATTENDANCE('研发部', ?, ?),返回结果可用于报表生成。

八、实操常见问题及解决方案

  1. 数据库启动失败:检查端口 5236 是否被占用(netstat -anp | grep 5236),释放端口后重启;
  1. 备份失败:确保备份路径有读写权限(chmod 777 /opt/dmbackup);
  1. SQL 语句执行报错:DM 兼容 Oracle 语法,但需注意函数差异(如 Oracle 的 TO_DATE () 对应 DM 的 DATE_FORMAT ());
  1. 连接超时:检查服务器防火墙是否开放 5236 端口(firewall-cmd --zone=public --add-port=5236/tcp --permanent)。

九、学习总结与展望

通过《国产数据库技术》课程学习,我系统掌握了 DM 数据库的安装配置、备份还原、SQL 开发等核心技能,深刻体会到国产数据库在性能、安全性上的优势。未来,我将继续深入研究 DM 数据库的高可用集群、数据迁移工具等高级特性,同时关注国产数据库生态的发展,为国产化替代项目贡献技术力量。

若本文对你有帮助,欢迎点赞、收藏,如有疑问可在评论区交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:33:37

FaceMaskDetection:智能健康防护时代的口罩检测技术深度解析

FaceMaskDetection:智能健康防护时代的口罩检测技术深度解析 【免费下载链接】FaceMaskDetection 开源人脸口罩检测模型和数据 Detect faces and determine whether people are wearing mask. 项目地址: https://gitcode.com/gh_mirrors/fa/FaceMaskDetection …

作者头像 李华
网站建设 2026/4/16 16:45:11

Docker日志管理的终极解决方案:Logspout完全指南

Docker日志管理的终极解决方案:Logspout完全指南 【免费下载链接】logspout Log routing for Docker container logs 项目地址: https://gitcode.com/gh_mirrors/lo/logspout 在当今容器化时代,Docker日志管理已成为每个开发者和运维人员必须面对…

作者头像 李华
网站建设 2026/4/16 16:08:06

Vue TypeScript管理模板终极指南:快速搭建企业级后台系统

Vue TypeScript管理模板终极指南:快速搭建企业级后台系统 【免费下载链接】vue-typescript-admin-template 🖖 A vue-cli 3.0 typescript minimal admin template 项目地址: https://gitcode.com/gh_mirrors/vu/vue-typescript-admin-template 想…

作者头像 李华
网站建设 2026/4/16 14:01:39

3分钟掌握JSONlite:零配置的JSON文档数据库终极指南

3分钟掌握JSONlite:零配置的JSON文档数据库终极指南 【免费下载链接】jsonlite A simple, self-contained, serverless, zero-configuration, json document store. 项目地址: https://gitcode.com/gh_mirrors/js/jsonlite JSONlite是一个简单、自包含、无服…

作者头像 李华
网站建设 2026/4/16 14:01:12

VideoLingo:重新定义视频本地化的AI工作流

VideoLingo:重新定义视频本地化的AI工作流 【免费下载链接】VideoLingo Netflix级字幕切割、翻译、对齐、甚至加上配音,一键全自动视频搬运AI字幕组 项目地址: https://gitcode.com/GitHub_Trending/vi/VideoLingo 在当今全球化内容消费的时代&am…

作者头像 李华
网站建设 2026/4/15 23:10:56

10个idb实用技巧:让iOS开发效率翻倍的秘密武器

10个idb实用技巧:让iOS开发效率翻倍的秘密武器 【免费下载链接】idb idb is a flexible command line interface for automating iOS simulators and devices 项目地址: https://gitcode.com/gh_mirrors/idb/idb idb是一个专为iOS开发者设计的强大命令行工具…

作者头像 李华