DEM(Dameng Enterprise Manager,达梦企业管理器)是达梦公司研发的、基于 B/S 架构的数据库集中式管理平台。它提供了一个 Web 界面来监控、管理并维护 DM 数据库,可以从任何可以访问 Web 应用的位置对 DM 数据库进行各种管理和监控。
DEM 的主要功能包括:
本次部署的环境如下:
| 项目 | 说明 |
|---|---|
| 操作系统 | CentOS 7(虚拟机) |
| 数据库 | DM8(目标端实例,端口 5240) |
| Tomcat 版本 | 9.0.96 |
| Java 版本 | 1.8(系统自带 OpenJDK) |
| 虚拟机 IP | 192.168.200.18 / 192.168.201.90 |
| SSH 端口 | 5200 |
| 本地操作机 | macOS |
DEM 的核心文件包括两个:
dem.war:DEM 的 Web 部署包dem_init.sql:DEM 后台数据库的初始化脚本这两个文件通常位于达梦数据库安装目录的 web 子目录下,也可以从达梦官方渠道单独获取。
本次部署使用的 DEM 安装包目录为 dem-47235-20260312-7,包含以下文件:
dem-47235-20260312-7/
├── dem.war # Web 部署包
├── dem_init.sql # 数据库初始化脚本
├── dem-jakartaee.war # Jakarta EE 版本(备用)
├── DEM.pdf # 使用手册
├── api.md # API 文档
├── demserver/ # 服务端相关程序
├── dmsdk/ # 达梦 SDK
├── licenses/ # 许可证文件
├── migrator/ # 数据迁移工具
└── readme.txt # 说明文件
DEM 需要 Java 1.8 及以上版本。在虚拟机上检查:
java -version
如果系统中没有 JDK,可以指定达梦数据库自带的 JDK 目录:
export JAVA_HOME=/home/dmdba/dmdbms/jdk/
场景:DEM 安装包在 Mac 本地,需要传输到 CentOS 虚拟机。
在 Mac 终端执行:
scp -P 5200 -r /Users/hechurechenai/Downloads/dem-47235-20260312-7 root@10.36.41.11:/home/dmdba/
参数说明:
-P 5200:指定 SSH 端口(注意是大写 P)-r:递归复制整个目录遇到的问题与解决:
传输完成后,在虚拟机上执行 ls -l /home/dmdba/ | grep dem,发现目录所有者是 root。需要修改为 dmdba 用户:
chown -R dmdba:dinstall /home/dmdba/dem-47235-20260312-7
DEM 需要部署到 Tomcat 容器中运行。
由于虚拟机网络环境限制(DNS 解析失败),改为在 Mac 本机下载 Tomcat 安装包。
在 Mac 终端执行(使用国内镜像加速):
cd ~/Downloads
curl -O https://mirrors.huaweicloud.com/apache/tomcat/tomcat-9/v9.0.96/bin/apache-tomcat-9.0.96.tar.gz
scp -P 5200 ~/Downloads/apache-tomcat-9.0.96.tar.gz root@10.36.41.11:/opt/
cd /opt
tar -xzf apache-tomcat-9.0.96.tar.gz
mv apache-tomcat-9.0.96 tomcat
修改 server.xml,添加 maxPostSize="-1" 属性:
vi /opt/tomcat/conf/server.xml
找到 <Connector port="8080" protocol="HTTP/1.1"... 行,添加 maxPostSize="-1":
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="-1" />
修改 JVM 启动参数:
vi /opt/tomcat/bin/catalina.sh
添加以下内容(在文件开头附近):
JAVA_OPTS="-server -Xms256m -Xmx1024m -Djava.library.path=/home/dmdba/dmdbms/bin"
启动 Tomcat:
/opt/tomcat/bin/startup.sh
DEM 需要一个达梦数据库作为后台数据库,用于存储元数据和监控数据。
本次部署使用目标端数据库实例(端口 5240)作为 DEM 的后台数据库。
在虚拟机上执行:
cd /home/dmdba/dem-47235-20260312-7
/home/dmdba/dmdbms/bin/disql SYSDBA/Admin2026@localhost:5240 < dem_init.sql
遇到的问题:
执行过程中出现 Object [SYS_AUDIT_INFO] already exists 的提示,但脚本整体执行成功,不影响后续使用。
验证:脚本执行完成后,会在数据库中生成 DEM_TSD 模式,包含 DEM 运行所需的表和视图。
cp /home/dmdba/dem-47235-20260312-7/dem.war /opt/tomcat/webapps/
Tomcat 会自动解压 dem.war,生成 /opt/tomcat/webapps/dem/ 目录。
修改 DEM 的配置文件 db.xml,配置后台数据库的连接信息。
vi /opt/tomcat/webapps/dem/WEB-INF/db.xml
根据实际环境修改以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<ConnectPool>
<Server>127.0.0.1</Server> <!-- 数据库 IP -->
<Port>5240</Port> <!-- 数据库端口 -->
<User>SYSDBA</User> <!-- 数据库用户名 -->
<Password>Admin2026</Password> <!-- 数据库密码 -->
<InitPoolSize>5</InitPoolSize>
<CorePoolSize>10</CorePoolSize>
<MaxPoolSize>500</MaxPoolSize>
<KeepAliveTime>60</KeepAliveTime>
<DbDriver></DbDriver>
<DbTestStatement>select 1</DbTestStatement>
<SSLDir>../sslDir/client_ssl/SYSDBA</SSLDir>
<SSLPassword></SSLPassword>
</ConnectPool>
/opt/tomcat/bin/shutdown.sh /opt/tomcat/bin/startup.sh
等待 10-30 秒让 Tomcat 完全启动并解压 dem.war。
问题现象:
Tomcat 启动后,在 Mac 浏览器中无法访问 http://10.36.41.11:8080,提示连接被拒绝。
原因分析:
192.168.200.18 和 192.168.201.9010.36.41.11 是公司网络通过 NAT 或端口映射后的地址,虚拟机本身并不直接绑定该 IP10.36.41.11:8080 时,数据包无法正确路由到虚拟机解决方案一:使用 SSH 隧道(端口转发)
在 Mac 终端执行:
ssh -p 5200 -L 8081:127.0.0.1:8080 root@10.36.41.11
-L 8081:127.0.0.1:8080:将虚拟机的 8080 端口映射到 Mac 本地的 8081 端口然后在 Mac 浏览器中访问:
http://127.0.0.1:8081
如果看到 Tomcat 欢迎页面,说明隧道建立成功。
遇到的问题:
执行 SSH 隧道命令后报错 bind: Address already in use,说明本地 8081 端口被占用。换用其他端口(如 8082)即可:
ssh -p 5200 -L 8082:127.0.0.1:8080 root@10.36.41.11
解决方案二:直接使用虚拟机实际 IP
如果 Mac 与虚拟机在同一内网,可以直接访问:
http://192.168.200.18:8080
先用 ping 192.168.200.18 确认网络连通性。
保持 SSH 隧道运行,在 Mac 浏览器中访问:
http://127.0.0.1:8081/dem
默认登录信息:
admin888888输入默认账号密码后,成功进入 DEM 主界面。至此,DEM 搭建完成。
| 序号 | 问题 | 原因 | 解决方案 |
|---|---|---|---|
| 1 | 虚拟机无法下载 Tomcat | DNS 解析失败 | 在 Mac 本机下载后通过 scp 上传 |
| 2 | scp 传输后文件属主为 root | 默认使用 root 用户传输 | chown -R dmdba:dinstall 修改属主 |
| 3 | Mac 浏览器无法访问虚拟机 8080 端口 | 网络隔离,IP 不通 | 使用 SSH 隧道(端口转发) |
| 4 | SSH 隧道报 bind: Address already in use |
本地端口被占用 | 更换本地端口(8081 → 8082) |
| 5 | dem_init.sql 执行报 already exists |
重复执行脚本 | 忽略,脚本整体执行成功 |
| 6 | wget: unable to resolve host address |
虚拟机未配置 DNS | 配置 DNS 或使用国内镜像源 |
# 启动 Tomcat
/opt/tomcat/bin/startup.sh
# 停止 Tomcat
/opt/tomcat/bin/shutdown.sh
# 查看 Tomcat 日志
tail -f /opt/tomcat/logs/catalina.out
# 数据库连接配置
/opt/tomcat/webapps/dem/WEB-INF/db.xml
# 日志配置
/opt/tomcat/webapps/dem/WEB-INF/log4j.xml
ssh -p 5200 -L 8081:127.0.0.1:8080 root@10.36.41.11
在实际部署中,网络问题是最大的障碍。当虚拟机与本地机器网络不通时,SSH 隧道是一个简单有效的解决方案,无需修改任何网络配置即可实现访问。
DEM 部署成功后,可以通过 Web 界面进行数据库管理、监控和集群部署等操作。后续还可以在需要监控的服务器上部署 dmagent 代理,实现远程主机和数据库实例的监控。
文章
阅读量
获赞
