Luo Hao

达梦——disql工具连接数据库

rehoni / 2022-04-04


DIsql 是 DM 数据库自带的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。

工具语法如下:

DIsql [ [<option>] [<logon> | /NOLOG] [<start>] ]
<option>::=HELP|-H|-S
<logon>::=<username>[/<password>][*<MPP_TYPE>][@<server>][:<port>][?{UDP|TCP}
][#<sslpath>@ssl_pwd]
<start>::=<`运行脚本>|<start 运行脚本>|<直接执行语句>
<`运行脚本>::=`<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<start 运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<直接执行语句>::= -E “<SQL 语句>{;<SQL 语句>}

关于这些选项的详细解释可以参考DM的官方手册。

本博客主要看Disql 连接DM实例的三种不同方式。

1. DM 服务器上直接连接

[dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 9.409(毫秒)
disql V7.6.0.95-Build(2018.09.13-97108)ENT 
Connected to: DM 7.1.6.95
SQL>

这种方式只能连接到本地实例。

2. 使用IP地址和端口连接

这种方式可以连接到任意服务器,只要IP地址和端口正确即可。

[dave@www.cndba.cn ~]$ disql SYSDBA/SYSDBA@192.168.20.191:5236

服务器[192.168.20.191:5236]:处于普通打开状态
登录使用时间: 9.463(毫秒)
disql V7.6.0.95-Build(2018.09.13-97108)ENT 
Connected to: DM 7.1.6.95
SQL> conn SYSDBA/SYSDBA@192.168.20.191:5236

服务器[192.168.20.191:5236]:处于普通打开状态
登录使用时间: 10.516(毫秒)
SQL>

这种方式不足的地方就是每次都需要输入IP地址和端口,不是很方便。

3. 使用service name 连接

在之前的博客里我们讲了dm service 的配置文件:dm_svc.conf 文件。

DM7 达梦数据库 物理结构 说明 https://www.cndba.cn/dave/article/3571

在linux 系统中,dm_svc.conf 文件在/etc 目录下。官方给的配置 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=(+8:00)
LOGIN_ENCRYPT=(0)
DIRECT=(Y)

# 服务配置区
[O2000]
TIME_ZONE=(+9:00)
LOGIN_MODE=(2)
SWITCH_TIME=(3)
SWITCH_INTERVAL=(10)

如果对 dm_svc.conf 的配置项进行了修改,需要重启客户端程序,修改的配置才能生效。

我们配置我们自己的DM service:

dave=(192.168.20.191:5236)

[dave@www.cndba.cn log]$ cd /etc
[dave@www.cndba.cn etc]$ cat dm_svc.conf 
TIME_ZONE=(480)
LANGUAGE=(cn)
[dave@www.cndba.cn etc]$ 
[dave@www.cndba.cn etc]$ 
[dave@www.cndba.cn etc]$ cat dm_svc.conf 
dave=(192.168.20.191:5236)

TIME_ZONE=(480)
LANGUAGE=(cn)
[dave@www.cndba.cn etc]$ [dave@www.cndba.cn etc]$ disql SYSDBA/SYSDBA@dave

服务器[192.168.20.191:5236]:处于普通打开状态
登录使用时间: 9.839(毫秒)
disql V7.6.0.95-Build(2018.09.13-97108)ENT 
Connected to: DM 7.1.6.95
SQL> conn SYSDBA/SYSDBA@DAVE

服务器[192.168.20.191:5236]:处于普通打开状态
登录使用时间: 9.074(毫秒)
SQL>

连接成功,这里service 居然还不区分大小写。