应用连接DM数据库

  1. dm_svc.conf配置文件:
    DM 安装时生成一个配置文件 dm_svc.conf,不同的平台所在目录有所不同。
    ①32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32目录;
    ②64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\system32目录;
    ③32 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\SysWOW64目录;
    ④在 Linux 平台下,此文件位于/etc 目录。

  2. dm_svc.conf 文件中包含 DM 各接口及客户端需要配置的一些参数,具体的配置项如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    dm_svc.conf 配置文件的内容分为全局配置区和服务配置区。全局配置区在前,可配置表中所有的配置项,服务配置区在后,以“[服务名]”开头,可配置除了服务名外的所有配置项。服务配置区中的配置优先级高于全局配置区。

  3. 下面是一个简单示例:
    以#开头的行表示是注释
    #全局配置区

    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 的配置项进行了修改,需要重启客户端程序,修
    改的配置才能生效。

  4. 应用的连接-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 这种,或是查看应用是否有引用其他数据库驱动包的类。

  5. 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})

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页