应用连接DM数据库
dm_svc.conf配置文件:DM 安装时生成一个配置文件 dm_svc.conf,不同的平台所在目录有所不同。①32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32目录;②64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\system32目录;③32 位的 DM 安装在 Win64 操作平台下,此文件位于%S
-
dm_svc.conf配置文件:
DM 安装时生成一个配置文件 dm_svc.conf,不同的平台所在目录有所不同。
①32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32目录;
②64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\system32目录;
③32 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\SysWOW64目录;
④在 Linux 平台下,此文件位于/etc 目录。 -
dm_svc.conf 文件中包含 DM 各接口及客户端需要配置的一些参数,具体的配置项如下图所示:
dm_svc.conf 配置文件的内容分为全局配置区和服务配置区。全局配置区在前,可配置表中所有的配置项,服务配置区在后,以“[服务名]”开头,可配置除了服务名外的所有配置项。服务配置区中的配置优先级高于全局配置区。 -
下面是一个简单示例:
以#开头的行表示是注释
#全局配置区O2000=(192.168.0.1:5000,192.168.0.2:5236) O3000=(192.168.0.1:5236,192.168.0.3:4350) TIME_ZONE=(+480) #表示+8:00 时区 LOGIN_ENCRYPT=(0) DIRECT=(Y)
服务配置区
[O2000] TIME_ZONE=(+540) #表示+9:00 时区 LOGIN_MODE=(2) SWITCH_TIME=(3) SWITCH_INTERVAL=(10)
配置完dm_svc文件后应用在连接时如下配置所示:
jdbc.url=jdbc:dm:// O2000 //字符串
需要说明的是,如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端程序,修
改的配置才能生效。 -
应用的连接-Java程序:
①首先,导入与jdk版本相对应的达梦jar包,具体规则如下:
达梦JDBC驱动分为DmJdbcDriver15、DmJdbcDriver16、DmJdbcDriver17、DmJdbcDriver18(如下图),分别对应Jdk1.5、Jdk1.6、Jdk1.7、Jdk1.8;
②达梦提供不同hibernate和jdk版本的方言包,用户可根据开发环境选择对应的方言包版本,相关方言包驱动在dialect目录下;Dialect目录下就是对应的hibernate的方言包(如下图),达梦hibernate方言包相对应程序的hibernate版本。
jdbc和hibernate都选取对应的版本的就可以,而且一个工程下面同时只能有一个驱动版本,不能同时存在多个,会有冲突。
③hibernate持久化层框架应用连接数据库:
配置文件需要有如下东西。具体IP地址,用户名和密码根据实际情况修改:databaseType=dm //数据库类型 server.host=localhost:5236 //ip jdbc.driver=dm.jdbc.driver.DmDriver //jar包 jdbc.url=jdbc:dm://localhost:5236 //字符串 jdbc.username=SYSDBA //用户 jdbc.password= SYSDBA //用户密码 hibernate.dialect=org.hibernate.dialect.DmDialect //方言包
④mybatis持久化层框架应用连接数据库配置文件:
#dmjdbc driver=dm.jdbc.driver.DmDriver url=jdbc:dm://localhost:5236 jdbc.username=SYSDBA password= SYSDBA
⑤ODBC 连接达梦数据库:
使用odbc需注意jdk需要是1.7版本的。1.8版本并没有sun.jdbc.odbc.JdbcOdbcDriver这个驱动类driver=sun.jdbc.odbc.JdbcOdbcDriver url=jdbc:odbc:DM jdbc.username=findpt password=123456789
⑥常见错误:
网络通信异常:查看ip是否互通,端口是否互通。
查看select count(*) from v(shift+4)sessions; 查看会话是否达到最大化。
select para_value FROM SYS.“V$DM_INI” WHERE para_name =‘MAX_SESSIONS’;
如果一样,适当调大,一般大于应用连接池200为最佳。 查看数据库用户的open files 是否达到当前最大。
其他error排查下 dm.ini COMPATIBLE_MODE这个参数,查看是否支持源端数据库语法。
call SF_SET_SYSTEM_PARA_VALUE (‘COMPATIBLE_MODE’,1,1,2);
select * from v(shift+4)dm_ini where para_name LIKE ‘%COMPATIBLE_MODE%’;
也可以在jdbc连接字符串加上 ?compatibleMode=oracle
还有些应用在换成我们的数据库只后,配置完ip用户密码jar包之后还报错,需排查下,他们程序里是否有限制数据库如database=oracle 这种,或是查看应用是否有引用其他数据库驱动包的类。 -
python 连接达梦:
Windows Python3.6使用dmPython连接达梦数据库。
①安装Python3.6和达梦数据库,随后将python36或python36\scripts目录添加到系统的Path环境变量中;
② 2.双击dmPython-2.3-7.1.win-amd64-py3.6.exe 安装dmPython(前提能读到注册表中Python3.6的信息);
③连接测试:
(1)打开cmd终端,输入Python,启动到Python shell(前提:已经配置了Python环境变量)
(2)输入import dmPython
(3)依次输入如下语句
#用户名/密码,数据库所在的IP和端口号根据具体情况进行更换conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server='127.0.0.1',port=5236) cursor = conn.cursor() cursor.execute(' select * from v$instance;') values = cursor.fetchall() values cursor.close() conn.close()
④基于python 的开源框架SQlAlchemy 连接达梦数据库:
sqlalchemy_dm可以运行在任何安装了Python的平台上。生成工具setup.py位于
drivers\python\sqlalchemy目录中。 不同平台生成安装包的命令如下:
Windows:
python setup.py bdist_wininst
Linux:
python setup.py bdist_rpm
生成之后的安装包(例如sqlalchemy_dm-1.1.10.win-amd64.exe) 位于
drivers\python\sqlalchemy\dist目录中。 点击安装包安装即可
from sqlalchemy import create_engine
engine=create_engine(‘dm://SYSDBA:SYSDBA@localhost:5236/’,connect_args={‘local_code’:1,‘connection_timeout’:15})
更多推荐
所有评论(0)