达梦数据库集群的多种语言的高可用配置
本文于 34 天前发布,最后更新于 34 天前

原文地址:DM集群的高可用的配置方式(多语言)

一、前言

本文需要结合之前的文章:达梦数据库客户端配置文件dm_svc.conf

再次强调:dm_svc.conf必须放置到应用服务器上才行,放到其他服务器上识别不到。

二、多种语言的连接方式

注意:

  1. 操作以下的示例,请确保已经正确配置dm_svc.conf文件
  2. 驱动使用的数据库版本建议与数据库的版本一致,如果驱动版本比数据库版本低,可能会出现部分不可解释的报错
  3. 每个版本的数据库都会在安装目录的drivers目录下提供对应的版本。具体的版本对应关系请查看同级目录下的readme.txt文件

2.1 Java

以下写法对springboot 、标准接口、nacos等都是通用的

#不使用服务名前的写法
conn = DriverManager.getConnection("jdbc:dm://192.168.123.123:5236", "SYSDBA", "SYSDBA");

## java语言的话目前有三种写法
## 1. 使用服务名的方式(推荐)
String url = "jdbc:dm://DM";

## 2. 自定义dm_svc.conf文件,建议是放到应用启动的用户下,避免权限问题
String url = "jdbc:dm://DM?dmsvcconf=/home/XXXXX(自行替换)/dm_svc.conf";

## 3. 连接串中手动直接拼接
String url = "jdbc:dm://DM?DM=(192.168.123.123:5236,192.168.123.124:5236)&login_mode=1";

注:这里推荐第一种写法,统一规范识别dm_svc.conf文件。

2.2 ODBC

#不使用服务名前的写法
sret = SQLConnect(hdbc, (SQLCHAR *)"192.168.123.123", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);

#使用服务名的写法
sret = SQLConnect(hdbc, (SQLCHAR *)"DM", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);

注:这里不需要调整odbc.ini、odbcinst.ini的相关配置,需要代码调整。(服务名识别不走odbc的配置文件)

2.3 .NET

##DmConnection cnn = new DmConnection();
##cnn.ConnectionString = "Server=192.168.123.123; User Id=SYSDBA; PWD = SYSDBA;Port=5236";
##cnn.Open();
##DmCommand command = new DmCommand();


#不使用服务名前的写法
cnn.ConnectionString = "Server=192.168.123.123; User Id=SYSDBA; PWD = SYSDBA;Port=5236";

#使用服务名的写法
cnn.ConnectionString = "Server=DM; User Id=SYSDBA; PWD = SYSDBA;";

2.4 GO

该写法在所有的GO的ORM框架中都适用。比如说GORM、ZORM等框架。

#不使用服务名前的写法
db, err := sql.Open("dm", "dm://SYSDBA:SYSDBA@192.168.123.123:5236?autoCommit=true")
# 使用服务名的写法
# 1. 标准写法(推荐)
db, err := sql.Open("dm", "dm://SYSDBA:SYSDBA@DM?autoCommit=true")
# 2. 连接串中手动直接拼接(未测试)
db, err := sql.Open("dm", "dm://SYSDBA:SYSDBA@DM=(192.168.123.123:5236,192.168.123.124:5236)

2.5 Python

import dmPython
# 不使用服务名前的写法
conn = dmPython.connect('SYSDBA', 'SYSDBA', '192.168.123.123:5236')
# 使用服务名的写法
conn = dmPython.connect('SYSDBA', 'SYSDBA', 'DM')


#sqlalchemy框架
# 不使用服务名前的写法
engine = create_engine('dm://SYSDBA:SYSDBA@192.168.123.123:5236', connect_args={'autoCommit': False})
# 使用服务名的写法
engine = create_engine('dm://SYSDBA:SYSDBA@DM', connect_args={'autoCommit': False})


## django框架服务名连接数据
# 不使用服务名前的写法
DATABASES = {
    'default': {
        'ENGINE': 'django_dmPython',
        'NAME': 'DAMENG',
        'USER': 'SYSDBA',
        'PASSWORD': 'SYSDBA',
        'OPTIONS': {'schema': 'DJANGGO'},
        'HOST': '10.15.1.18',
        'PORT': '5236',
    }
}
# 使用服务名的写法
DATABASES = {
    'default': {
        'ENGINE': 'django_dmPython',
        'NAME': 'DAMENG',
        'USER': 'SYSDBA',
        'PASSWORD': 'SYSDBA',
        'OPTIONS': {'schema': 'DJANGGO'},
        'HOST': 'DM',
        'PORT': '5236',
    }
}

2.6 PHP

# 不使用服务名前的写法
 $link = dm_connect("localhost:5236", "SYSDBA", "SYSDBA")
# 使用服务名的写法
 $link = dm_connect("DM", "SYSDBA", "SYSDBA")

2.7 R语言

library(DBI)
library(RDameng)
#数据库地址地址
dbHost <- "192.168.145.190"
dbServerName <- "DmServiceDMSERVER"
dbUserName <- "SYSDBA"
dbPassword <- "SYSDBA"
drv <- dbDriver("Dm")

# 不使用服务名前的写法
drv <- dbDriver("Dm")
connect.string <- paste("(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=", dbHost, ")(PORT= 5236))(CONNECT_DATA=(SERVICE_NAME=", dbServerName, ")))", sep = "")
dm8Con <- dbConnect(drv,username = dbUserName, password = dbPassword,dbname = connect.string) 

# 使用服务名的写法
dmCon <- dbConnect(drv,username = "SYSDBA", password = "123456",dbname = "DM") 

#查看连接信息
#dbGetInfo(oracleCon)
#查看驱动详细信息
#dbGetInfo(drv)

2.8 disql

## 不使用高可用的连接方式
[root@VM-0-17-centos bin]# ./disql SYSDBA/SYSDBA@127.0.0.1:5236
服务器[127.0.0.1:5236]:处于主库打开状态
登录使用时间 : 9.777(ms)
disql V8
SQL> ^C

## 使用高可用服务名的连接方式
[root@VM-0-17-centos bin]# ./disql SYSDBA/SYSDBA@DM

服务器[188.131.177.169:5236]:处于主库打开状态
登录使用时间 : 1.906(ms)
disql V8
SQL> 
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇