配置达梦(DM)数据连接时如何选择合适的驱动?
达梦(DM)数据源官方提供的不同版本驱动,除功能更新外,其对JDBC的支持也有所变化。选择合适的版本才能确保CDM正常进行数据迁移。
原因分析
达梦(DM)数据库驱动的命名变更。
达梦(DM) 24年第3季度版之前的JDBC驱动JAR包命名规则为:
- DmJdbcDriver16.jar代表适配 jdk 1.6
- DmJdbcDriver17.jar代表适配 jdk 1.7
- DmJdbcDriver18.jar代表适配jdk 1.8
达梦(DM) 24 年第3季度版已加入 jdk11 的版本,并对原有JAR包进行重命名,新的JDBC驱动JAR包命名规则为:
- DmJdbcDriver6.jar代表适配jdk 1.6
- DmJdbcDriver7.jar代表适配jdk 1.7
- DmJdbcDriver8.jar代表适配jdk 1.8
- DmJdbcDriver11.jar代表适配jdk 11
CDM当前适配的还是JDK8,故在驱动的版本选择上,须选择DmJdbcDriver18.jar或者DmJdbcDriver8.jar。
解决方案
- 查看达梦(DM)数据库驱动的实际版本号。
打开驱动文件,在META-INF目录下,存在MANIFEST.MF文件,该文件记录了驱动的基本信息,并注明了该驱动的真实版本号。
以下图为里,展示的是在2026年3月27日从达梦(DM)官网(https://eco.dameng.com/download/)下载的DmJdbcDriver8.jar驱动文件,其版本号为8.1.4.170。
图1 驱动文件
- CDM实际拼接使用的JDBC链接串格式。
在当前达梦(DM)官方文档中,DM支持的JDBC连接串有3类,具体的格式和样例可在官网查看(https://eco.dameng.com/document/dm/zh-cn/pm/jdbc-rogramming-guide.html)。在CDM后台连接时,实际会使用到的具体链接格式为2种:
单节点:jdbc:dm://{{host}}:{{port}}/{{db}}[?p1=v1] 多节点:jdbc:dm://DMDW/{{db}}?DMDW=({{host[0]}}:{{port}},...,{{host[n-1]}}:{{port}})[?p1=v1] [&p2=v2][&…]…以上的连接串格式中,host、port、db分别取值于在建立数据连接时填写的“数据库服务器”、“端口”和“数据库名称”三个配置项。
- 选择达梦(DM)驱动和配置数据连接。
对不同驱动版本的测试情况如下:采用V8版本的达梦(DM)进行测试,对8.1.1至8.1.5共5个驱动版本的实际JDBC连接格式支持如下:
总结
- 可以使用较早版本的DmJdbcDriver18驱动,且实际版本号为8.1.1.x或8.1.3.x;
- 可以使用从DM官网下载的DmJdbcDriver8驱动版本,但此时需要在“数据库名称”配置中填写表空间名称。
- 请勿使用实际版本号为8.1.2.x的驱动版本。
