注册
达梦数据库DEM 部署
专栏/技术分享/ 文章详情 /

达梦数据库DEM 部署

🌊Amaharashi 2026/08/28 129 0 0
摘要

1 环境信息

操作系统 麒麟 V10(Kylin Linux 4.19.90)
IP 172.20.10.102
Java OpenJDK 1.8.0_312
Tomcat Apache Tomcat 9.0.120,/opt/apache-tomcat-9.0.120

2 安装流程

2.1 基本概念

DEM(达梦企业管理器),替代传统单机 Manager 客户端,实现集中化、远程、可视化管理所有达梦数据库实例、集群,由以下几个部分组成。
DEM服务器。负责提供客户端工具并存储dmagent收集到的数据到DEM存储数据库,同时展示数据给客户端。
DEM存储数据库。负责存储DEM的元数据和dmagent收集到的监控数据。
数据库代理服务(dmagent)。数据库代理服务dmagent为部署在远程机器上的代理,DEM通过dmagent 访问远程主机,同时dmagent收集监控信息发送给DEM。

2.2 传递安装文件(Windows → VM)

Windows 宿主机、VM 虚拟机使用桥接网络模式,二者处于同一个局域网网段,IP 可互相 ping 通;
桥接模式作用:虚拟机不单独隔离网段,和 Windows 电脑连同一个路由器,分配同网段局域网 IP。
例:Windows IP 172.20.10.5,虚拟机 Linux IP 172.20.10.102,双方能互相 ping 通。
Windows 启动 Python 内置文件服务器,把存放达梦 DEM / 数据库安装包的文件夹开放成网页下载地址,虚拟机直接用 wget 命令拉取文件,不用配置共享文件夹、FTP、Samba 等复杂工具。
CMD 进入存放达梦安装包的文件夹,再执行命令
python -m http.server 9999
python -m http.server:调用 Python 自带、无需额外安装的静态文件服务器模块;
9999:自定义监听端口(可换 8080、8888 等未占用端口);
Linux 虚拟机端:wget 下载文件
能 ping 通代表网络互通;不通检查桥接配置、Windows 防火墙放行 9999 端口。
wget http:// 172.20.10.5:9999/dm8_setup.iso
wget:Linux 自带文件下载工具,无图形界面也能用;
地址为 Windows 宿主机 IP + 服务端口 + 安装包文件名,直接拉取文件到虚拟机当前目录。

2.3 初始化 DEM 存储库

执行 dem_init.sql(达梦专用脚本)
/opt/dmdbms/bin/disql SYSDBA/Fangyuqing1125@127.0.0.1:5236 < /opt/dem_init.sql
< /opt/dem_init.sql
Linux 标准输入重定向,将整个脚本文件批量送入 disql 执行,逐行运行 4678 行完整初始化语句。

dem_init.sql 是达梦 DEM 配套官方脚本,包含创建DEM存储库基表的sql语句。

2.4 配置 Tomcat

2.4.1 server.xml 配置

在 conf/server.xml 文件中,添加以下属性字段:<Connector port=“8080” protocol=“HTTP/1.1”…>;maxPostSize="-1"。

Tomcat 默认 maxPostSize=2097152(2MB),限制 POST 请求上传数据大小;DEM 场景大量超大 POST 请求:上传数据库 ISO 安装包、备份文件;批量采集全实例监控指标、上传海量慢 SQL 日志;批量集群部署、数据迁移任务提交大配置文件;maxPostSize="-1" 代表取消 POST 请求大小限制,避免上传文件、提交任务时请求被 Tomcat 截断报错。

2.4.2 catalina.sh/catalina.bat JVM 本地库路径配置

JVM参数指定本地库路径
JAVA_OPTS="$JAVA_OPTS -server -Djava.library.path=/opt/dmdbms/bin"
:-Djava.library.path 告诉 JVM 在哪里加载达梦数据库的本地动态库(.so 文件)。DEM 通过 JDBC 连接达梦时需要这些库做加密、网络通信等。
export LD_LIBRARY_PATH="/opt/dmdbms/bin"
LD_LIBRARY_PATH(Linux):操作系统层面动态链接器路径,系统加载so文件时读取,防止本地库加载失败。

2.5 配置 dem.war 的 db.xml

解压 dem.war,修改 WEB-INF/db.xml;
<Url>jdbc:dm://127.0.0.1:5236?lobFetchOptimize=true</Url>
<User>SYSDBA</User>
<Password>Fangyuqing1125</Password>
DEM 通过 db.xml 连接 DEM 存储数据库。IP 用 127.0.0.1 是因为 Tomcat 和达梦在同一台机器上,不需要走网卡。
image.png
Tomcat 默认规则:检测到webapps/dem.war存在,且dem解压目录被删除 / 不存在时,启动时自动重新解压 war 包,会覆盖手动修改好的db.xml,连接信息重置,DEM 启动失败。
1)将 dem.war 放入 webapps,启动 Tomcat 自动解压生成dem文件夹;
2)关闭 Tomcat,不删除 dem 文件夹,直接修改dem/WEB-INF/db.xml;
3)后续重启 Tomcat 不会重新解压 war 包,配置永久保留;

2.6 解决 IPv6 监听问题

达梦数据库只监听了 IPv6(tcp6 :::5236),JDBC 通过 127.0.0.1(IPv4)连不上。修改 /home/dmdba/dmdb/DAMENG/dm.ini。IPV6_LSNR = 0,重启数据库后变成了 tcp 0.0.0.0:5236(双栈监听)。
IPV6_LSNR=1:数据库仅单独监听 IPv6 端口:::5236,无 IPv4 监听,127.0.0.1 IPv4 连接会被拒绝,DEM JDBC 连接失败。
image.png
正常停止达梦数据库服务,修改dm.ini前必须停库,在线修改参数不生效。
sed -i ‘s/IPV6_LSNR.=./IPV6_LSNR = 0/’ /home/dmdba/dmdb/DAMENG/dm.ini
校验配置:grep “IPV6_LSNR” dm.ini 输出 IPV6_LSNR = 0,参数修改完成。
image.png
重启数据库服务,监听认证
netstat -tlnp | grep 5236
0.0.0.0:5236 代表双栈监听,同时兼容 IPv4、IPv6 访问;
不再仅存在tcp6 :::5236,IPv4 地址可正常接入。
image.png
使用本地 IPv4 回环地址127.0.0.1登录,执行查询验证连通性,确认 DEM db.xml 连接串可正常工作。
image.png

2.7 启动 Tomcat 部署 DEM

操作:./startup.sh,Tomcat 自动解压 dem.war 并启动 DEM 应用。
1.加载shturl.cc/l中预先配置的 JVM 参数:-Djava.library.path、LD_LIBRARY_PATH、PATH 环境变量;
2.读取conf/server.xml配置(已配置maxPostSize="-1"放开 POST 大小限制);
3.扫描webapps/目录下的 war 包;
4.自动解压 dem.war:生成webapps/dem/完整 WEB 项目目录,加载WEB-INF/db.xml数据库连接配置;
Tomcat 默认热部署规则:webapps内存在dem.war、且无同名dem文件夹时,启动自动解压;
解压完成后不会删除 dem.war;只要不手动删除dem文件夹,后续重启 Tomcat 不会重复覆盖db.xml配置;
若删除dem目录重启,会重新解压 war 包,重置所有修改过的配置文件。
5.初始化 DEM 连接池,连接本机达梦存储库(127.0.0.1:5236,已开启 IPv4 双栈监听);
6.启动 Web 服务,DEM 管理平台就绪。
验证:curl http://127.0.0.1:8080/dem 返回 HTML 而非 404。

2.8 安装 dmagent

center_url=http:// 172.20.10.102:8080/dem #DEM地址
gather_enable=true #开启收集监控数据功能,默认打开
service_enable=true #开启远程调用功能,部署时需要打开
建立 WEB-INF 符号链接
ln -s /opt/apache-tomcat-9.0.120/webapps/dem/WEB-INF /home/dmdba/WEB-INF
start.sh 脚本硬编码了从 dmagent 目录往上一级找 WEB-INF/lib/*.jar 来加载类库。dmagent 单独部署时没有 WEB-INF,需要软链接指向 Tomcat 解压的 DEM 应用目录。
软链接仅为路径映射,真实源目录(Tomcat WEB-INF)必须给 dmdba 开放 o+rx 权限,否则普通用户无法读取 jar 包,直接报找不到主类。
image.png
生成 service.key
./start.sh INSTALL_SERVICE_KEY 999999
service.key 是 dmagent 和 DEM 之间的认证密钥,防止未授权的 agent 接入。999999 是默认值(生产环境建议修改)。
启动 dmagent
./start.sh /home/dmdba/dmagent/agent.ini &
传入agent.ini配置文件,加载 DEM 地址、采集开关;
末尾&:将进程放入 Linux 后台运行,不占用当前终端;
进程方式启动 dmagent,它开始向 DEM 上报主机信息和监控数据。
image.png
ps -ef | grep dmagent
输出 3 条进程,代表启动完全正常:
bash 进程:承载后台执行会话;
start.sh 脚本进程:Shell 启动入口;
java 进程:核心代理采集进程,关键 JVM 参数:

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服