达梦数据库(DM8)适配

1. 支持版本

  • DM8

2. Docker安装

参考文档

[Docker安装 达梦技术文档](https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html)

安装前准备

软硬件 版本要求
终端 X86-64 架构
Docker 2023年6月版或更新

安装步骤

1. 下载Docker安装包

访问达梦官网下载:[产品下载 达梦数据库](https://eco.dameng.com/download/)

2. 导入安装包

# 拷贝安装包到/opt目录下
docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar

# 查看导入的镜像
docker images

3. 启动容器

docker run -d -p 30236:5236 \
  --restart=always \
  --name dm8_test \
  --privileged=true \
  -e PAGE_SIZE=16 \
  -e LD_LIBRARY_PATH=/opt/dmdbms/bin \
  -e EXTENT_SIZE=32 \
  -e BLANK_PAD_MODE=1 \
  -e LOG_SIZE=1024 \
  -e UNICODE_FLAG=1 \
  -e LENGTH_IN_CHAR=1 \
  -e INSTANCE_NAME=dm8_test \
  -v /data/dm8_test:/opt/dmdbms/data \
  dm8_single:dm8_20230808_rev197096_x86_rh6_64

注意:挂载目录 /data/dm8_test 需要足够大的磁盘空间。

4. 检查容器状态

# 查看容器运行状态
docker ps

# 查看启动日志
docker logs -f dm8_test
# 或
docker logs -f [容器ID]

5. 容器管理命令

# 停止数据库
docker stop dm8_test

# 启动数据库
docker start dm8_test

# 重启数据库
docker restart dm8_test

重要提示

  1. 在容器内使用disql时,先执行 source /etc/profile 防止中文乱码
  2. 默认用户名/密码:SYSDBA/SYSDBA001

3. 测试环境信息

  • 服务器:192.168.175.xxx

  • Docker镜像:dm8_test

  • 端口:30236(映射到容器5236端口)

    img

4. 安装DM管理工具(Windows)

参考文档

[DM管理工具 达梦技术文档](https://eco.dameng.com/document/dm/zh-cn/start/tool-dm-manager.html)

安装步骤

  1. 从官网下载Windows版DM8安装包
  2. 安装时只勾选"DM管理工具"(不安装数据库)

img

5. 连接DM数据库

连接信息

  • 地址:192.168.175.XXX:30236
  • 用户名:SYSDBA
  • 密码:SYSDBA001

使用DM管理工具连接

  1. 打开DM管理工具

  2. 新建连接

  3. 填写上述连接信息

    img

6. Java项目集成

Maven依赖

<dependency>
    <groupId>com.dameng</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
    <version>8.1.3.111</version>
</dependency>

数据库连接配置(dbcp.properties)

########dameng##########
driverClassName=dm.jdbc.driver.DmDriver
url=jdbc:dm://192.168.175.XXX:30236/IIDP_DEMO
username=SYSDBA
password=SYSDBA001

7. DM数据库兼容性测试

测试连接配置

########dameng########## 
driverClassName=dm.jdbc.driver.DmDriver 
url=jdbc:dm://192.168.175.XXX:30236/SNEST_TEST 
username=SNEST_TEST
password=******

使用DBeaver连接

  1. 连接方式:选择ODBC
  2. 编辑ODBC模板
    • JDBC驱动类:dm.jdbc.driver.DmDriver
    • JDBC URL:jdbc:dm://192.168.175.XXX:30236/SNEST_TEST
  3. 添加驱动DmJdbcDriver18-8.1.3.62.jar

img

img

9.DamengProvider介绍

DamengProvider 是一个专为达梦数据库(DM8)设计的Java JDBC提供者实现类。它继承自 OracleProvider,提供了达梦数据库特有的数据类型映射、SQL语法转换和连接处理功能。

由于DM数据库兼容Oracle语法,测试用例和测试应用程序可以与Oracle保持一致。

public class DamengProvider extends OracleProvider {
    @Override
    public String getDBType() {
        return DBType.Dameng.getName();
    }
}

10.注意事项

  1. 确保挂载的磁盘空间足够
  2. 容器内使用disql时注意编码设置
  3. 根据实际需求调整容器启动参数
  4. 生产环境建议使用更复杂的配置和安全设置