达梦数据库服务无法启动解决案例

达梦数据库服务启动失败问题解决笔记

问题现象

  • 执行 ./DmServiceMICS start 启动达梦数据库服务失败。

  • 手动用 /u01/dm8/bin/dmserver 启动报错:
    db version mismatch, database version[0x7000d] > dmserver support db_version[0x7000c]
    表明数据库文件版本高于当前 dmserver 程序版本。

原因分析

系统中存在两个达梦安装目录:

  • /u01/dm8/bin/dmserver:版本较旧(支持 0x7000c)

  • /u02/dm8/bin/dmserver:版本较新(支持 0x7000d 或更高)
    数据库文件 /u02/dm8/data/MICS 的版本为 0x7000d,必须使用新版 dmserver 启动。

解决步骤

1. 使用新版 dmserver 手动启动数据库

bash
/u02/dm8/bin/dmserver /u02/dm8/data/MICS/dm.ini MOUNT

进入 MOUNT 模式后,在另一个终端连接 disql

sql
ALTER DATABASE OPEN;

数据库成功打开,前台进程保持运行。按 Ctrl+C 停止。

2. 修改系统服务配置

原服务脚本 /u01/dm8/bin/DmServiceMICS 指向旧版程序,需要更新。

2.1 查找服务单元文件位置

bash
systemctl status DmServiceMICS

显示单元文件路径为 /usr/lib/systemd/system/DmServiceMICS.service

2.2 编辑服务文件

bash
vim /usr/lib/systemd/system/DmServiceMICS.service

将 ExecStart 行修改为:

text
ExecStart=/u02/dm8/bin/dmserver /u02/dm8/data/MICS/dm.ini

同时确保 User= 和 Group= 设置为 dmdba(原文件通常已正确)。

2.3 重新加载 systemd 配置

bash
systemctl daemon-reload

2.4 启动服务并验证

bash
systemctl start DmServiceMICS
systemctl status DmServiceMICS

状态应为 active (running)

3. 验证客户端连接

bash
disql SYSDBA/SYSDBA@localhost:5236

连接成功,数据库可正常使用。

关键命令总结

 
操作命令
手动启动至 MOUNT 模式 /u02/dm8/bin/dmserver /u02/dm8/data/MICS/dm.ini MOUNT
在 MOUNT 模式下打开数据库 ALTER DATABASE OPEN;(在 disql 中执行)
修改 systemd 服务文件 vim /usr/lib/systemd/system/DmServiceMICS.service
重新加载 systemd systemctl daemon-reload
启动服务 systemctl start DmServiceMICS
查看服务状态 systemctl status DmServiceMICS
posted @ 2026-03-19 15:22  一只竹节虫  阅读(113)  评论(0)    收藏  举报