之前搭建了mac m1下基于docker的达梦库(地址),但是没有一个好用的管理端。
用过DBeaver,可以使用自定jar创建dm链接,只做简单查询还行,要是用到一些修改、大文本查看、配置修改等高级点的功能就不行了。
后来在虚拟机里安装DM Manager系列客户端,一直使用到现在。
那不用虚拟机的办法呢?就是用跨平台的web管理端DEM,最近试了下也是可行的,功能也是非常的强大,相当于把DM系列的PC客户端包含管理工具、数据迁移、性能监视等等所有功能集合在一起,看下页面感受下:
以下内容基于你已经搭建好docker的dm库,搭建方式参考 :达梦数据库(DM8)arm64架构docker镜像,可在mac m1系列芯片上完美运行
其实搭建DEM的步骤官方文档介绍的非常详细。文档、部署war包等资料就在你安装达梦服务端主机的目录中,可以使用docker命令将目录拷贝到宿主机(宿主机目录自定义):
docker cp dm8:/home/dmdba/dmdbms/web /Users/chaz/dev/docker/data/dm8/tomcat/webapps
可以看到pdf、txt两个都是安装教程,dem.war就是要部署的war包
可以参考文档中的步骤进行操作,但要注意几点:
1、dem.war一定要手动解压。我尝试使用tomcat启动的自动解压war包,结果导致很多子目录是空的(原因不明),造成访问最终地址显示404
2、修改db.xml时,数据库地址可以直接使用docker-compose中的service名称,比如下面的例子,使用 DM8 即可
3、教程中的-Djava.library.path=/opt/dmdbms/bin相关内容,其实要指向达梦的安装路径,所以一般情况要根据实际情况进行修改。我这里dm容器中的实际地址为 /home/dmdba/dmdbms/bin。
但我们使用docker方式,容器间只要挂载同一个目录就可以共享文件,所以这个路径映射好就可以,可以按照他的说明去设定。手动修改该文件时,一定要放在catalina.sh的第二行:
使用docker-compose(推荐),就可以比较好的将两者结合起来管理以下为示例。但要注意,首次启动时需要先注释部分目录挂载:
1、编写docker-compose.yml,首次启动注掉如下挂载内容
version: '2.1'
services:
DM8:
image: qinchz/dm8-arm64:8.1.8.128
container_name: dm8
ports:
- "5236:5236"
mem_limit: 4g
memswap_limit: 4g
volumes:
- /Users/chaz/dev/docker/data/dm8/data:/home/dmdba/data
#- /Users/chaz/dev/docker/data/dm8/bin:/home/dmdba/dmdbms/bin
tomcat:
user: root
restart: always
container_name: tomcat
image: tomcat:8.5.84-jre8
privileged: true
environment:
- TZ="Asia/Shanghai"
ports:
- 8080:8080
volumes:
- /Users/chaz/dev/docker/data/dm8/tomcat/webapps:/usr/local/tomcat/webapps
#- /Users/chaz/dev/docker/data/dm8/tomcat/conf:/usr/local/tomcat/conf
#- /Users/chaz/dev/docker/data/dm8/tomcat/logs:/usr/local/tomcat/logs
#- /Users/chaz/dev/docker/data/dm8/tomcat/bin:/usr/local/tomcat/bin
#- /Users/chaz/dev/docker/data/dm8/bin:/opt/dmdbms/bin
- /etc/localtime:/etc/localtime
2、使用docker cp命令 依次将以上注掉的路径内容复制到本地
docker cp dm8:/home/dmdba/dmdbms/bin /Users/chaz/dev/docker/data/dm8/bin
docker cp tomcat:/usr/local/tomcat/conf /Users/chaz/dev/docker/data/dm8/tomcat/conf
docker cp tomcat:/usr/local/tomcat/logs /Users/chaz/dev/docker/data/dm8/tomcat/logs
docker cp tomcat:/usr/local/tomcat/bin /Users/chaz/dev/docker/data/dm8/tomcat/bin
docker cp tomcat:/opt/dmdbms/bin /Users/chaz/dev/docker/data/dm8/bin
3、将第一步docker-compose中注释的内容放开,重新执行 docker-compose up -d
4、浏览器打开 localhost:8080/dem 使用admin/888888登录
5、可以打开sql输入助手,可以自动补全对象名,舒服多了