达梦数据库服务无法启动解决案例
达梦数据库服务启动失败问题解决笔记
问题现象
-
执行
./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 手动启动数据库
/u02/dm8/bin/dmserver /u02/dm8/data/MICS/dm.ini MOUNT
进入 MOUNT 模式后,在另一个终端连接 disql:
ALTER DATABASE OPEN;
数据库成功打开,前台进程保持运行。按 Ctrl+C 停止。
2. 修改系统服务配置
原服务脚本 /u01/dm8/bin/DmServiceMICS 指向旧版程序,需要更新。
2.1 查找服务单元文件位置
systemctl status DmServiceMICS
显示单元文件路径为 /usr/lib/systemd/system/DmServiceMICS.service。
2.2 编辑服务文件
vim /usr/lib/systemd/system/DmServiceMICS.service
将 ExecStart 行修改为:
ExecStart=/u02/dm8/bin/dmserver /u02/dm8/data/MICS/dm.ini
同时确保 User= 和 Group= 设置为 dmdba(原文件通常已正确)。
2.3 重新加载 systemd 配置
systemctl daemon-reload
2.4 启动服务并验证
systemctl start DmServiceMICS systemctl status DmServiceMICS
状态应为 active (running)。
3. 验证客户端连接
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 |

浙公网安备 33010602011771号