达梦集群高可用连接配置
达梦连接配置介绍1. JDBC连接串格式JDBC(Java Database Connectivity)是 Java 应用程序与数据库的接口规范,旨在让各数据库开发商为 Java 程序员提供标准的数据库应用程序编程接口(API)。JDBC 定义了一个跨数据库、跨平台的通用 SQL 数据库 API。DM JDBC 驱动程序是 DM 数据库的 JDBC 驱动程序,它是一个能够支持基本 SQL 功能的通用应用程序编程接口,支持一般的 SQL 数据库访问。通过 JDBC 驱动程序,用户可以在应用程序中实现对 DM 数据库的连接与访问,JDBC 驱动程序的主要功能包括:建立与 DM 数据库的连接发送 SQL 语句到数据库处理并返回语句执行结果1.1 格式一host、port 不作为连接属性,直接输入值即可。格式:jdbc:dm://[host][:port][/schemaName][?propName1=propValue1][&propName2=propValue2][&…]…参数说明:host:数据库所在 IP 地址,缺省为 localhost。ipv6 地址需包含在[]中port:数据库端口号,缺省为 5236schemaName:指定登录使用的默认模式名,缺省使用与登录用户同名的模式?:参数分隔符,表示后面的都是参数&:参数间隔符,多个参数用&分开propName:连接串属性名称。详见JDBC连接串属性表;propValue:连接串属性值。示例:jdbc:dm://192.168.0.96:5236/SYSDBA?resultSetType=10031.2 格式二host、port 作为连接属性,此时必须按照JDBC连接串属性表中说明进行设置,且属性名称大小写敏感。格式:jdbc:dm://[/schemaName][?propName1=propValue1][&propName2=propValue2][&…]…示例:jdbc:dm://?host=192.168.0.96&port=52361.3 格式三使用自定义服务名,可指定多个数据库节点。格式:jdbc:dm://GroupName[/schemaName][?GroupName=(host1:port1,host2:port2,…)][&propName1=propValue1][&propName2=propValue2][&…]…参数说明:GroupName:数据库服务名,支持指定多个 host:port,若未指定服务名对应的 host:port,则将在配置文件 dm_svc.conf 中匹配相应的服务名; 若未指定服务名对应的 host:port,则在 dm_svc.conf 中匹配示例:jdbc:dm://test?test=(192.168.0.96:5236,192.168.0.96:5237)&LOGIN_DSC_CTRL=0&LOGIN_MODE=1&CLUSTER=DSC&autoReconnect=2&epSelector=1同一个属性在 JDBC 连接串和 dm_svc.conf 中均有设置但值不同时,以 JDBC 连接串优先。2. JDBC连接串属性表所有时间参数可使用(h:小时,m:分钟,s:秒,ms:毫秒),不带单位时默认 ms,有效值范围 0~2147483647。缺省值 5 分钟。2.1 连接属性属性说明必须host主库地址,IP 或 localhost否port端口号否unixSocketFileUNIX socket 路径(Linux)否user登录用户否password登录密码否appName客户端应用程序名称否socketTimeout网络通信链路超时(ms)否sessionTimeout会话超时时间(s)否connectTimeout连接超时时间(ms),缺省 5000否StmtPoolSize语句句柄池大小,缺省 15否PStmtPoolSizeprepare 语句句柄池大小否pstmtPoolValidTimeprepare 语句缓存有效时间(ms)否escapeProcess是否进行语法转义处理否autoCommit是否自动提交否localTimezone客户端本地时区(分钟,-779~840)否maxRows结果集行数限制否LobMode大字段数据获取模式:1服务器获取,2本地缓存否ignoreCase结果集列名是否忽略大小写否resultSetType结果集类型:1003/1004/1005否2.2 集群与高可用属性属性说明必须loginMode优先登录的服务器模式(0~4)否loginStatus连接时只选择状态匹配的库(0/3/4/5)否loginDscCtrl是否只选择 dsc control 节点否epSelector节点选择策略(0=均匀分布,>0=固定第n个)否epSelectorDynamic是否根据节点存活状态动态调整 epSelector否autoReconnect连接异常处理策略(0~7,可组合)否switchTimes尝试遍历服务名列表的次数否switchInterval遍历间隔时间(ms)否cluster集群类型:DW/RW/MPP/DPC/DSC/NORMAL否dbAliveCheckFreq检测数据库存活的频率(ms)否checkFreq循环检测连接是否需要重置的时间间隔(ms)否2.3 读写分离属性属性说明必须rwSeparate是否启用读写分离(0~5)否rwPercent分发到主库的事务占比(%)否rwAutoDistribute事务分发是否由 JDBC 自动管理否rwHA是否开启读写分离高可用否rwStandbyRecoverTime备库故障恢复检测间隔(ms)否allowRange允许动态负载均衡误差范围(%)否2.4 安全与加密属性属性说明必须sslFilesPathSSL 加密文件路径否sslKeystorePassSSL 加密文件口令否uKeyNameUkey 文件路径否uKeyPinUkey 口令否OsAuthType操作系统认证类型(0~4)否loginCertificate登录加密公钥路径否localEncrypt是否启用用户名密码本地加密否userEncrypt消息通信是否加密用户名否2.5 日志与监控属性属性说明必须logDir日志文件生成目录否logLevel日志级别:off/assert/error/warn/sql/info/DEBUG/all否logFlushFreq日志刷盘频率(s)否statEnable是否启用状态监控否statDir状态监控信息输出目录否statFlushFreq状态监控写文件刷盘频率(s)否statSlowSqlCount统计慢 SQL top 行数否statHighFreqSqlCount统计高频 SQL top 行数否2.6 其他属性属性说明必须mppLocal是否 MPP 本地连接否mppOptMPP 集群批量插入优化否keyWords用户关键字标识否dmsvcconfURL 属性配置文件路径否dbAliveCheckTimeout检测数据库存活的连接超时(ms)否prepareOptimize是否对预编译 SQL 做优化否serverOption附加信息,格式:{key=value,...}否reconnectErrors需要重连的异常错误码否errMapDM 错误码和 Oracle 错误码映射否3. dm_svc.conf配置文件dm_svc.conf 是客户端配置文件,包含 DM 各接口和客户端工具需要配置的参数,必须和接口/客户端工具位于同一台机器上才能生效。初始 dm_svc.conf 文件在 DM 安装时自动生成。不同平台的生成目录有所不同。文件位置:Windows 32位:%SystemRoot%\system32Windows 64位:%SystemRoot%\system32Windows 64位运行32位程序:%SystemRoot%\SysWOW64Linux:/etc可通过环境变量 DM_SVC_PATH 修改路径。3.1 配置项支持情况配置项JDBC.NETNodeJSGo服务名√√√√EP_SELECTOR√√√√AUTO_RECONNECT√×√√CLUSTER√×√√LOGIN_MODE√√√√LOGIN_DSC_CTRL√×√√RW_SEPARATE√√√√RW_HA√×√√CONNECT_TIMEOUT√×√√SOCKET_TIMEOUT√√√√SWITCH_TIMES√√√√COMPRESS√×√√SSL_FILES_PATH√×√√LOG_DIR√√√√LOG_LEVEL√√√√STAT_ENABLE√××√3.2 dm_svc.conf用法dm_svc.conf 配置文件的内容分为全局配置区和服务配置区。全局配置区在前;服务配置区在后,以“[服务名]”开头。其中,服务名配置项可以在全局配置区,也可以在此服务名对应的服务配置区之前,即在其对应的“[服务名]”之前。dm_svc.conf 格式如下:# 全局配置区 参数配置…… # 服务配置区 [服务名1] 参数配置…… # 服务配置区 [服务名2] 参数配置…… 服务配置区中的配置优先级高于全局配置区。全局配置区的配置项影响所有会话,除非会话所属服务配置区中单独进行了配置,因此对于全局配置区配置项的设置修改需要慎重。如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端工具,修改的配置才能生效。另外,如果 dm_svc.conf 配置文件中包含中文,则必须保证该配置文件的编码与客户端编码一致。3.3 配置示例场景一配置常规环境的 dm_svc.conf。此处常规环境是指服务名中的 IP 之间互不相关(既不是主备关系、也不在一个集群中)。例 NORMAL 中的 192.168.0.1 和 192.168.0.2 是两个互不相关的 IP。# 以#开头的行表示是注释 # 全局配置区 NORMAL=(192.168.0.1:5000,192.168.0.2:5236) TIME_ZONE=(480) #表示+8:00时区 DIRECT=(Y) # 服务配置区 # 常规环境,两个没有关系的IP [NORMAL] TIME_ZONE=(540) #表示+9:00时区 LOGIN_MODE=(4) SWITCH_TIMES=(3) SWITCH_INTERVAL=(100) 场景二配置集群环境的 dm_svc.conf。一个服务名中的所有 IP 均来自于同一个集群。以 DMDSC 集群为例。# 以#开头的行表示是注释 # 全局配置区DMDSC1=(192.168.1.1:5236,192.168.1.3:5236)DMDSC2=(192.168.1.5:5236,192.168.1.7:5236)TIME_ZONE=(480) #表示+8:00时区 #DMDSC1 服务配置区#以下配置目标连接 DMDSC1 服务名的第一个服务(192.168.1.1:5236),以间隔 1000 毫秒的节奏尝试遍历服务名中的各服务进行连接,若在遍历中成功连上符合要求的服务则立即返回;若没有,则继续。一共尝试 60 次遍历,若60次尝试后依然未连接上目标服务,则根据LOGIN_MODE的配置进行下一种连接的尝试。若连接建立时连上的是2号服务,而一段时间后 1 号服务可以正常连接了,当前连接也不会自动切换到 1 号服务。[DMDSC1]LOGIN_MODE=(4) #若是DSC主+单机备,建议这里配置成0SWITCH_TIMES=(60)SWITCH_INTERVAL=(1000)EP_SELECTOR=(1)AUTO_RECONNECT=(1) #DMDSC2 服务配置区#以下配置目标连接 DMDSC2 服务名的第一个服务(192.168.1.5:5236),以间隔 1000 毫秒的节奏尝试遍历服务名中的各服务进行连接,若在遍历中成功
以上内容来自博客订阅源,版权归原作者。热度统计站内详情页访问。

登录后,加入这场讨论。
登录参与