DM 删除数据库服务:完整步骤与避坑指南
一、删除服务的前置准备与流程
1.1 删除服务整体流程图
在进行任何破坏性操作前,先通过流程图了解 DM 删除数据库服务的完整步骤,确保操作安全可控。
1.2 确认服务状态与依赖
在执行 DM 删除数据库服务之前,必须明确当前系统中运行的 DM 实例状态。使用 ps -ef | grep dmserver 命令查看进程,或通过 DM 管理工具连接数据库,确认无活动事务和外部应用连接。如果有其他业务系统依赖于该数据库,请提前通知相关业务线进行切换或停机,避免因服务突然删除导致业务中断。
1.3 备份关键数据与配置文件
即使删除服务只是为了重构,也务必对核心数据进行全量备份。需备份的内容包括但不限于 dm.ini 配置文件、控制文件、数据文件以及归档日志。建议使用 dmrman 工具进行冷备,或者直接将整个数据目录打包压缩,确保在发生误操作时能够快速恢复。
1.4 停止目标数据库服务
删除服务前必须先停止对应的 DM 服务。在 Linux 环境下,可以切换到 dmdba 用户,执行 systemctl stop DmServicedm.ini 或者通过 ./DmServiceDMSERVER stop 脚本停止服务。在 Windows 环境下,可以通过 "服务" 管理器找到对应的 DM 服务并点击 "停止"。确认服务状态为 "已停止" 后才能进行下一步操作。
二、删除数据库服务的具体方法
2.1 Linux 环境下使用脚本删除服务
达梦数据库在 Linux 环境中提供了 dm_service_installer.sh 脚本用于服务管理。进入 DM 安装目录的 /script/root 子目录,执行以下命令删除服务:
./dm_service_installer.sh -del DmServiceDMSERVER
如果提示权限不足,请使用 root 用户执行。此脚本会自动清理 /etc/systemd/system/ 下的服务配置文件,并将服务从系统服务列表中移除。
2.2 Windows 环境下移除系统服务
在 Windows 系统中,DM 数据库服务通常通过安装程序注册。可以通过以下两种方式删除:
- 使用 "服务" 管理器: 按
Win + R输入services.msc,找到对应的 DM 服务,右键选择 "属性",记录服务名称。 - 使用命令行: 以管理员身份运行 cmd,执行
sc delete "服务名称"命令。例如:sc delete DmServiceDMSERVER。
2.3 验证服务是否成功删除
执行删除操作后,必须进行验证。在 Linux 系统中,执行 systemctl list-unit-files | grep Dm 查看是否还有残留的服务单元。在 Windows 系统中,再次打开 services.msc 检查服务列表。若列表中已不存在对应的 DM 服务,则说明删除成功。同时可以使用 ps -ef | grep dm 或任务管理器确认相关进程已彻底退出。
三、残留文件清理与常见问题排查
3.1 清理安装目录与残留进程
服务删除并不等于卸载数据库软件。如果确认不再使用该数据库实例,需手动删除对应的数据目录和实例目录。检查 dm.ini 中配置的路径,使用 rm -rf /dmdata/data/实例名 删除数据文件。若发现有未被杀掉的僵尸进程,可通过 kill -9 进程号 强制结束。
3.2 端口占用排查与解决
有时服务删除后,原数据库占用的端口(如默认的 5236)仍未释放,导致新服务无法启动。使用 netstat -tunlp | grep 5236 检查端口占用情况。如果发现有进程占用,需根据 PID 查找进程详情并强制结束。若端口仍不释放,可等待系统回收或重启服务器。
3.3 服务删除常见报错与对策
在执行 DM 删除数据库服务 时,可能会遇到以下问题:
- "服务正在运行无法删除": 请确保已完全停止服务和相关进程。
- "权限拒绝": Linux 下必须使用 root 用户执行服务删除脚本,Windows 下需以管理员身份运行命令提示符。
- "找不到服务名": 请核对实际注册的服务名称,注意大小写敏感问题。可以通过服务列表或系统命令重新确认准确的名称。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)