达梦数据库开机自启动的多种方式

发布于:2025-06-29 ⋅ 阅读:(15) ⋅ 点赞:(0)

目录

解决达梦数据库开机无法自动启动的问题

使用rc.local传统方式(推荐简单系统)

设置执行权限:

启用rc-local服务(对于systemd系统):

创建自定义systemd服务(更现代可靠)

创建服务文件:

添加以下内容:

重新加载并启用服务:

使用crontab的@reboot(备选方案)

添加:

重要补充步骤

检查依赖项:

验证脚本执行权限:

调试技巧

还有其他的解决方案

1. 检查服务是否设置为开机自启

2. 检查挂载点问题(如果/dmdata是单独分区)

3. 检查启动顺序依赖

4. 检查启动超时设置

5. 创建启动日志以便调试

6. 检查系统启动后手动执行

7. 检查数据库启动日志

永久解决方案建议

武汉品牌设计(武汉达梦数据技术)_科技公司LOGO设计 - 艺点意创

解决达梦数据库开机无法自动启动的问题

您遇到的问题是达梦数据库(DM)服务在系统重启后无法自动启动。这通常与权限、服务配置或启动顺序有关。

使用rc.local传统方式(推荐简单系统)

创建/编辑rc.local文件

    sudo nano /etc/rc.local

    添加以下内容(如果文件已存在,在exit 0前添加):

      #!/bin/bash# 等待必要服务启动sleep 15# 设置环境变量(根据实际安装路径调整)export DM_HOME=/opt/dmdbmsexport PATH=$DM_HOME/bin:$PATH# 启动达梦服务su - dmdba -c "$DM_HOME/bin/DmServiceDMSERVER start"exit 0

      设置执行权限

        sudo chmod +x /etc/rc.local

        启用rc-local服务(对于systemd系统):

          sudo systemctl enable rc-local.service

          创建自定义systemd服务(更现代可靠)

          创建服务文件

            sudo nano /etc/systemd/system/dmdb.service

            添加以下内容

              [Unit]Description=DM Database ServerAfter=network.target remote-fs.targetRequires=network.target[Service]Type=forkingUser=dmdbaGroup=dinstallEnvironment=DM_HOME=/opt/dmdbmsEnvironment=PATH=$DM_HOME/bin:$PATHExecStart=/opt/dmdbms/bin/DmServiceDMSERVER startExecStop=/opt/dmdbms/bin/DmServiceDMSERVER stopRestart=on-failureRestartSec=30sTimeoutStartSec=300[Install]WantedBy=multi-user.target

              重新加载并启用服务

                sudo systemctl daemon-reloadsudo systemctl enable dmdb.service

                使用crontab的@reboot(备选方案)

                  sudo crontab -e

                  添加:

                    @reboot sleep 30 && su - dmdba -c "/opt/dmdbms/bin/DmServiceDMSERVER start"

                    重要补充步骤

                    1. 确保目录权限正确

                      sudo chown -R dmdba:dinstall /dmdatasudo chmod -R 750 /dmdata

                      检查依赖项

                        # 查看达梦数据库依赖的库ldd /opt/dmdbms/bin/dmserver# 确保所有依赖库都存在

                        验证脚本执行权限

                          sudo ls -l /opt/dmdbms/bin/DmServiceDMSERVER

                          调试技巧

                          如果服务仍然无法启动,可以添加调试输出:

                            # 在脚本中添加日志记录{  echo "==== $(date) ===="  export DM_HOME=/opt/dmdbms  /opt/dmdbms/bin/DmServiceDMSERVER start  echo "退出状态: $?"} >> /var/log/dm_startup.log 2>&1

                            还有其他的解决方案

                            1. 检查服务是否设置为开机自启

                              # 检查服务是否启用开机自启sudo systemctl is-enabled DmServiceDMSERVER.service# 如果没有启用,执行以下命令sudo systemctl enable DmServiceDMSERVER.service

                              2. 检查挂载点问题(如果/dmdata是单独分区)

                                # 查看/etc/fstab中/dmdata的挂载配置cat /etc/fstab | grep dmdata# 如果/dmdata是单独分区,确保添加了挂载选项"defaults"和正确的文件系统类型

                                3. 检查启动顺序依赖

                                达梦可能依赖其他服务(如网络)先启动:

                                  # 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Unit]部分添加依赖(示例)After=network.target remote-fs.target nss-lookup.target

                                  4. 检查启动超时设置

                                    # 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Service]部分添加(单位是秒)TimeoutStartSec=300

                                    5. 创建启动日志以便调试

                                      # 编辑服务配置文件sudo nano /lib/systemd/system/DmServiceDMSERVER.service# 在[Service]部分添加StandardOutput=file:/var/log/dm_service.logStandardError=file:/var/log/dm_service_error.log

                                      6. 检查系统启动后手动执行

                                        # 创建一个测试脚本sudo nano /etc/rc.local# 添加以下内容(如果文件不存在,创建它)#!/bin/bashsleep 10  # 等待其他服务启动systemctl start DmServiceDMSERVER.serviceexit 0# 给文件执行权限sudo chmod +x /etc/rc.local# 启用rc.local服务(如果系统使用systemd)sudo systemctl enable rc-local.service

                                        7. 检查数据库启动日志

                                          # 查看达梦数据库启动日志cat /opt/dmdbms/log/dm_*.log

                                          永久解决方案建议

                                          确保目录权限持久化

                                            sudo chown -R dmdba:dinstall /dmdatasudo chmod -R 750 /dmdata

                                            创建systemd服务依赖

                                              sudo systemctl edit DmServiceDMSERVER.service

                                              添加:

                                                [Unit]After=network.target remote-fs.targetRequires=network.target remote-fs.target

                                                检查是否有其他服务冲突

                                                  sudo journalctl -b -u DmServiceDMSERVER.service

                                                  考虑使用cron任务作为后备方案

                                                    sudo crontab -e

                                                    添加:

                                                      @reboot sleep 30 && /opt/dmdbms/bin/DmServiceDMSERVER start

                                                      请尝试上述方法后重启系统测试,如果问题仍然存在,建议检查/var/log/messagesjournalctl -b获取更详细的启动错误信息


                                                      * Thanks you *

                                                      如果觉得文章内容不错,随手帮忙点个赞在看转发一下,如果想第一时间收到推送,也可以给我个星标~谢谢你看我的文章


                                                      *往期推荐 *

                                                      银河麒麟 | ubuntu 安装国产达梦DM8数据库(安装+外网通+IDEA连接)

                                                      锐捷 MIB 的 OID 获取方式有哪些?

                                                      网络设备日志存储到指定的Kiwi-log服务器(图解+软件)

                                                      银河麒麟 | ubuntu 安装运用 docker 容器,实现容器化部署项目

                                                      银河麒麟 | ubuntu 安装zabbix监控设备信息(亲测包对)

                                                      只需5步让你轻松导出学习通纯考试题目(JavaScript)

                                                      国产操作系统-银河麒麟本地化部署Ollama国产开源的AI大模型Qwen3

                                                      Ubuntu |  安装 Zabbix 一篇就够了

                                                      彻底删除 Nginx + 重新安装

                                                      Swagger | 手把手带你写自动生成接口文档的爽感(零基础亲测实用)

                                                      SpringBoot整合Openfeign接入Kimi Ai!!超简单,居然没多少行代码??(附加兜底教程)

                                                      SpringBoot接入Kimi实践记录轻松上手

                                                      Wrod 也可以添加代码快啦!!快看有哪种你是会的吧!

                                                      Linux | 零基础Ubuntu搭建JDK

                                                      Maven | 站在初学者的角度配置与项目创建(新手必学会)

                                                      Spring Ai | 极简代码从零带你一起走进AI项目(中英)

                                                      Open Ai | 从零搭建属于你的Ai项目(中英结合)

                                                      MongoDB | 零基础学习与Springboot整合ODM实现增删改查(附源码)

                                                      Openfeign | 只传递城市代码,即可获取该地域实时的天气数据(免费的天气API)

                                                      API接口到底是什么

                                                      Redis | 缓存技术对后端的重要性,你知道多少?

                                                      Mongodb | 基于Springboot开发综合社交网络应用的项目案例(中英)

                                                      谈谈模块化设计在单体架构中的应用

                                                      彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构

                                                      为什么还在使用单体架构

                                                      2025年Java路线一条龙服务

                                                      2025年健康新趋势:科技与生活方式的融合

                                                      感谢阅读 | 更多内容尽在公棕号 WMCode | CSDN@小Mie不吃饭


                                                      网站公告

                                                      今日签到

                                                      点亮在社区的每一天
                                                      去签到