DIsql 是 DM 数据库的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。DIsql 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在应用菜单和安装目录中找到。

这里主要介绍使用DIsql的开启及登录方法,SQL语句部分在这不做详细介绍。

1 启动 DIsql

启动之后,当出现“SQL>”符号时,即说明DIsql启动成功,可以利用DM提供的SQL语句和数据库进行交互操作了。

1.1 在 windows 系统中启动 DIsql

windows 环境下,有两种启动 DIsql 的方式。第一种是启动安装软件后生成的程序菜单,第二种是启动安装目录下自带的 DIsql 工具。

1.1.1 程序菜单启动

如果在 WINDOWS 环境中安装了DM数据库产品,那么可以在应用菜单中找到SQL交互式查询工具,直接双击即可启动。然后使用 LOGIN 或 CONN 命令登录到指定数据库。LOGIN 或 CONN 命令下文有详细介绍。

以 LOGIN 为例,登录到 IP 地址为 192.168.1.150 的机器上,用户名和密码为:SYSDBA/SYSDBA,端口号为 5236。其他全部敲回车,采用缺省输入。密码不会回显到屏幕上。

图1 菜单启动登录界面

也可以全部直接回车,采用缺省输入,登录到本地DM数据库。缺省值请参考下文LOGIN命令。

1.1.2 自带 DIsql 工具启动

DIsql 工具位于 DM 数据库安装目录的 bin 子目录下,例如DM数据库的安装目录为 D:\dmdbms,则 DIsql 位于 D:\dmdbms\bin\DIsql.exe。双击启动,然后输入用户名、密码,就可登录到本地 DM 数据库实例。密码不会回显到屏幕上。也可以全部直接回车,采用缺省输入,缺省值为 SYSDBA/SYSDBA。

图2 自带 DIsql 工具登录界面

如果后续操作想登录到其他 DM 数据库实例,可使用 LOGIN 或 CONN 命令。

1.2 命令行启动 DIsql

命令行启动 DIsql 适用于任何操作系统平台。下面以 WINDOWS 系统为例。

1.2.1 命令行启动

从命令行启动 DIsql 并登录到数据库。在命令行工具中找到 DIsql 所在安装目录 D:\dmdbms\bin,输入 DIsql 和登录方式后回车。登录方式在下一节详细介绍。

登录界面如下:

图3 命令行启动登录界面

1.2.2 DIsql 登录方式

DIsql 的登录方式。

语法如下:

DISQL 用法1:disql –h|help 显示 disql 版本信息和帮助信息DISQL 用法2:disql [ [<option>] [<logon> |{/NOLOG}] [<start>] ]<option>::=[-L] [-S]<logon>::={{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>] <connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file><option>::= ##{ <exetend_option>=<value>{,<extend_option>=<value>} }  --此行外层{}是为了封装参数之用,书写时需要保留<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}<start>::=<`运行脚本>|<start运行脚本>|<直接执行语句>|<直接执行SET命令><`运行脚本>::=`<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]<start运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]<直接执行语句>::= -E “<SQL语句>{;<SQL语句>}”<直接执行SET命令>::=-C “<SET命令>”

-h|helph或help表示显示DIsql版本信息和帮助信息。

*[-L] [-S]**:-L 表示只尝试登录一次;-S表示设置DIsql界面为隐藏模式,隐藏<*SQL>标识符。

**{{*<*username>[/*<*password>]} | /}**:*<*username>[/*<*password>]为用户名和密码。普通登录方式时用户名必写,密码缺省为SYSDBA。/表示采用操作系统身份验证方式登录,此时无需指定用户名和密码,即使指定也会被忽略。如果*<*password>中含有特殊字符,因为特殊字符在操作系统中需要被特殊处理,因此特殊字符书写的时候需要按照要求的格式。本节末尾会针对包含特殊字符的*<*password>如何书写,进行详细介绍。

服务名。服务名在dm_svc.conf中配置。dm_svc.conf的配置请参考《DM8系统管理员手册》。例如:在 dm_svc.conf 中配置服务名 dmsvc =(192.168.1.150:5236, 192.168.1.150:5237)。然后就可以使用服务名登录了:DIsql SYSDBA/SYSDBA@dmsvc。使用服务名的好处是第一个IP连不通,会自动连接下一个。

*<*host>[:*<*port>]服务器IP地址和端口号。缺省情况下默认为本地服务器和端口号LOCALHOST:5236。当服务器为本机时,SERVER:PORT 可直接写LOCALHOST。当连接其他服务器时,SERVER:PORT需写上IP地址和PORTNUM,例如:192.168.0.248:8888。*<*host>如果是IPv6的地址,需要用[]指明是IPv6地址,例如[fe80::1e6f:65ff:fed1:3724%6]

<unixsocket_file>专门用于在 LINUX 系统中,当服务器与客户端之间使用 UNIXSOCETUNIX-IPC 方式通信时,指定客户端连接的 UNIXSOCKET 路径文件名。必须和 inet_type=UNIXSOCKET 同时使用。例如:

./disql SYSDBA/SYSDBA@/data/sdb/DAMENG/foo.sock##{inet_type=UNIXSOCKET}

***<*option>**:为扩展选项,用法为<exetend_option>=*<*value>。所有 value 值不能包含空格,不能包含特殊的符号,如引号等。书写扩展选项时需要用引号##”{ }”进行封装,例如:##”{inet_type=tcp,mpp_type=local}”。

AS <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>**:操作系统身份验证。用户可以通过将操作系统用户加入到操作系统的 dmdba|dmsso|dmauditor 用户组来使用操作系统用户登录数据库,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR 用户。还可以通过将操作系统用户加入到操作系统的 dmusers 用户组来使用操作系统用户登录数据库,对应数据库的同名用户。AUTO 表示按顺序自动匹配数据库用户类型。操作系统身份验证无需输入用户名和密码,若输入用户名和密码将会被忽略。操作系统身份验证的其他说明可参考《DM8 安全管理》2.3.1节。

*/NOLOG**:表示在未登录DM服务器的情况下启动 disql。此时可以进行 DIsql 的显示设置和本地变量操作。如果没有 /NOLOG 选项必须登录服务器,不带参数的时候提示输入用户名和密码,此时的用户名和密码用法参考<*logon>。且登录三次失败后退出 DIsql。

<`运行脚本>:符号运行sql脚本文件。如果在linux环境下使用,<运行脚本>外需要加上单引号,里如:’`” < file_path >”‘。是运行的sql脚本文件的绝对路径。

<PARAMETER_VALUE>是传给<file_path>脚本文件中本地变量的参数值,将其中的参数内容传给变了&1,&2,&3…以此类推。

<start运行脚本>使用START命令运行 sql 脚本文件。<file_path><PARAMETER_VALUE>的用法和<`运行脚本>相同。例如:

SQL> start e:\a.sql

<直接执行语句>使用-E参数,将在运行DIsql时直接执行后续的一条或多条SQL语句,查询结果不显示行号、时间以及影响行数,且不受-C参数控制。例如:

DIsql SYSDBA/SYSDBA -E "SELECT TOP 1 * FROM SYSOBJECTS; SELECT TOP 1 * FROM V$CMD_HISTORY"。

<直接执行SET命令>使用-C参数,将在运行DIsql时直接执行后续的SET命令。例如:

DIsql SYSDBA/SYSDBA -C "SET LONG 1000 PAGESIZE 0"。

*<*password> 中特殊字符的书写规范:

1. 不同操作系统

1) WINDOWS系统

  • DIsql的关键字符,DIsql的要求对连接串的特殊字符需要使用双引号括起来”aaaa/aaaa”,操作系统的要求需要再在最外加双引号和转义”””aaaa/aaaa”””。例如:用户名为user01,密码为aaaa/aaaa,那么连接串要写成:DIsql user01/”””aaaa/aaaa”””

  • 空格,需要使用双引号括起来作为一个整体(这是操作系统的要求)。例如:用户名为user01,密码为aaaa aaaa ,那么连接串要写成:DIsql user01/”aaaa aaaa”

  • 双引号,DIsql要求对双引号需要使用双引号括起来,同时双引号需要转义”aaaa””aaaa”;操作系统要求再对双引号转义和最外层加双引号”””aaaa””””aaaa”””。例如:用户名为user01,密码为aaaa”aaaa,那么连接串要写成:DIsql user01/”””aaaa””””aaaa”””。

2) LINUX 系统

LINUX 环境下,密码中的特殊字符处理过程既要考虑操作系统的要求,又要考虑 DIsql 的要求。

首先,操作系统的要求。

bash 的引号设计为:在单引号中,所有的特殊字符都失去其特殊含义;在双引号中,特殊字符包括:美元符($)、反引号(`)、转义符(\)、感叹号(!)。

如果密码中没有单引号的,应该都只有外面加单引号就可以解决了;如果密码只有单引号,那么可以将单引号用双引号括起来;如果既有单引号又有美元符($)、反引号(`)、转义符(\)、感叹号(!)四个特殊字符,那么在特殊字符之前全部加\转义就好了。

例如: ‘aaaa\aaaa’ 传给disql为 aaaa\aaaa。

“aaaa’aaaa” 传给disql为 aaaa’aaaa。

“aaa’\$aaaa” 传给disql为 aaa’$aaaa。

其次,在操作系统要求的基础上,增加DIsql对关键字和双引号的要求。

  • DIsql的关键字符,DIsql的要求对连接串的特殊字符需要使用双引号括起来。例如:密码为aaaa\aaaa,使用双引号括起来“aaaa\aaaa”,因为此密码中不含有单引号,根据操作系统的要求直接在最外面加单引号。例如:用户名为user01,密码为aaaa/aaaa,那么连接串要写成:./DIsql user01/’”aaaa/aaaa”’。

  • 双引号,DIsql要求对双引号需要使用双引号括起来,同时双引号需要转义。例如:密码为aaa”\aaaa,那么根据DIsql的要求加双引号同时转义为”aaa””\aaaa”,因为没有单引号,根据操作系统的要求直接加单引号。例如:用户名为user01,密码为aaa”\aaaa,那么连接串要写成:./DIsql user01/’”aaa””\aaaa”’。

  • 单引号,根据操作系统的要求,只能将单引号放入双引号中。例如:用户名为user01,密码为aaaa’aaaa,那么连接串要写成:./DIsql user01/”aaaa’aaaa”。

  • 单引号+操作系统下的特殊字符,根据操作系统的要求,因为单引号只能放在双引号内,同时双引号中还有一些特殊字符不能被识别需要加反斜杠转义。例如:用户名为user01,密码为aaa’$aaaa,使用双引号括起来,同时对$加反斜杠转义。那么连接串要写成:./DIsql user01/”aaa’\$aaaa”。

  • 单引号+双引号,根据操作系统的要求,单引号需要放在双引号中,在双引号中表示双引号则使用反斜杠转义双引号。例如:用户名为user01,密码为aaa”’aaaa,根据DIsql的要求双引号作为特殊字符,需要使用双引号在括起来,同时使用双引号对双引号转义”aaa””’aaaa”;同时考虑操作系统的要求,因为含有单引号,只能将整个密码放入双引号中,同时对双引号使用反斜杠转义,那么连接串要写成:./DIsql user01/”\”aaa\”\”’aaaa\””。

如何转义双引号

  1. DIsql的要求使用双引号对双引号内的双引号转义。

  2. WINDOWS命令行,使用双引号或者反斜杠对双引号内的双引号转义。

  3. LINUX命令行,使用反斜杠对双引号内的双引号转义。

2 切换登录

用户进入 DIsql 界面后,如果想切换到其他 DM 数据库实例。有两种实现方式:一是使用 LOGIN 命令;二是使用 CONN 命令。登录到远程数据库,必须在服务名处使用 IP 地址或网络服务名。

2.1 LOGIN /LOGOUT

1. LOGIN 登录主库建立会话

直接输入 LOGIN 命令后,屏幕会提示输入登录信息。

图4 login 登录提示信息

服务名:数据库服务名、或 IP 地址、或 UNIXSOCKET 文件路径名。LOCALHOST 表示本地服务器。默认为 LOCALHOST。例如,UNIXSOCKET 文件路径名为 /home/te/foo.sock。

用户名和密码:默认均为 SYSDBA,密码不回显。

端口号:默认为 5236。

SSL 路径和 SSL 密码:用于服务器通信加密,不加密的用户不用设置,缺省为不设置。

UKEY 名称和 UKEY PIN码:供使用UKEY的用户使用,普通用户不用设置,缺省为不使用。

MPP 类型:参见上一节\<MPP_TYPE\>,MPP 类型是 MPP 登录属性,此属性的设置对非 MPP 系统没有影响。此属性的有效值为 GLOBAL 和 LOCAL,默认为 GLOBAL。

是否读写分离(y/n):默认n。如果输入y,会提示:读写分离百分比(0-100)。用户根据需要输入相应的百分比,如果输入的百分比不合法,那就相当于没有设置。

协议类型:默认 TCP,可选 TCP|UDP|IPC(共享内存)|RDMA(远程直接内存访问)|UNIXSOCKET。

登录成功后会显示登录时间。

2. LOGOUT 从登录主库注销会话

LOGOUT 命令从登录主库注销会话。断开连接而不退出 DIsql。

SQL>LOGOUT

2.2 CONN[ECT] /DISCONN[ECT]

1. CONN[ECT] 连接

在 DIsql 界面中,使用 CONN[ECT]命令登录远程数据库。

语法如下:

CONN[ECT] <logon><logon>::={{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>] <connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file><option>::= ##{ <exetend_option>=<value>{,<extend_option>=<value>} }  --此行外层{}是为了封装参数之用,书写时需要保留<os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}

示例如下:

SQL>CONN SYSDBA/SYSDBA@192.168.1.150

2. DISCONN[ECT] 断开连接

DISCONN[ECT]:断开连接而不退出 DIsql。与 logout 功能一样。

SQL>DISCONN

3 退出 DIsql

使用 EXIT/QUIT 命令,退出 DIsql。

语法如下:

EXIT|QUIT

更多达梦资讯请上达梦社区了解 https://eco.dameng.com

DM达梦数据库DIsql入门学习相关推荐

  1. oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性

    1 表行计数器 说明 默认情况下,DM 达梦数据库count() 是秒回结果的,不受表中实际行数的影响,执行select count() 都能立即返回正确的结果.因为达梦数据库的count(*)操作不 ...

  2. 达梦数据库disql工具使用

    达梦数据库disql工具类似于Oracle的sqlplus工具,使用方法上也比较相近. disql工具用法 ./disql help查看disql命令行工具使用 [dmdba@localhost bi ...

  3. DM达梦数据库的使用以及数据迁移工具的使用

    1.找不到DM数据库的相关软件 我们打开虚拟机的终端,在根目录下输入命令: ./manager ------->是打开达梦数据库的管理工具 ./dts --------------->是打 ...

  4. 达梦数据库DCA培训学习

    达梦数据库DCA培训学习 随着信息技术应用创新(信创)产业的推进和发展,国产化信息技术越来越受到重视. 从2018年开始经常听到比较多提倡国产化后才对包括国产操作系统.国产数据库.国产中间件等有一些了 ...

  5. 浅谈DM达梦数据库安全管理之用户身份验证与权限管理

            数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护.DM达梦数据库提供了包括用户标识与鉴别.自主与强制访问控制.通信与存储 加密.审计等丰富的安全功能.达梦数据库 的 ...

  6. 浅谈DM达梦数据库体系结构概念

    浅谈DM达梦数据库体系结构概念 DM逻辑结构 DM和Oracle一样也分数据库和实例,两者的概念也基本一致. 但是不同点在于:达梦是单进程.多线程,而oracle是多进程的. DM这种对称服务器构架在 ...

  7. DM达梦数据库删除表时提示锁超时的解决方法

    DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...

  8. 达梦数据库-disql方式连接数据库

    disql 是 DM 数据库自带的一个命令行客户端工具,可实现命令行方式连接达梦数据库进行交互. 问题:如果 disql 使用时 报错 [damdab@test]$ dsiql -bash: disq ...

  9. dm服务器未能启动,DM 达梦数据库 创建服务 无法创建目录_REPLACE_SELF_DM_HOME 错误解决方法...

    在升级DM 8.1.1.19升级到8.1.1.48 的操作中,创建的服务无法正常启动. 但手工执行dmserver 命令是可以启动达梦实例. https://www.cndba.cn/dave/art ...

最新文章

  1. Linux学习(十四)---大数据定制篇Shell编程
  2. linux判断目录,文件存在等
  3. 大数据技术下 分布式数据库何去何从?
  4. mysql如何实现读提交锁_MySQL学习笔记(二)—MySQL事务及锁详解
  5. C#-DataTable分页代码
  6. ios 推送消息 php推送
  7. mysql迁移之后读取速度变慢_如何解决数据库迁移之后变慢的问题
  8. 知识图谱论文阅读(九)【转】推荐系统遇到知识图谱之MKR模型
  9. 夜读源码,带你探究 Go 语言的iota
  10. python画多层网络_绘制多层n
  11. 东航期货行情接口和交易接口(20190509)
  12. 打车平台Lyft获Magna 2亿美元投资,携手打造自动驾驶汽车
  13. python二维码批量拼接,多张高清二维码批量拼接
  14. 各类文件的文件头标志
  15. echarts 圆饼图空心中间加文字
  16. 如何把平板(pad)作为笔记本电脑的分屏详细教程
  17. 520,张一鸣宣布卸任字节跳动CEO!
  18. STM32F1系列与STM32F4系列的GPIO
  19. mbs单位是什么意思计算机,Mbps,MBs什么不一样
  20. ffmpeg+mencoder环境搭建和视频处理总结(4m/1/99)

热门文章

  1. 百度AI快车道“入沪”,目标检测上海专场成功举办
  2. 根据主键ID修改已经存在的数据
  3. 固定资产管理系统,让企业的固定资产管理事半功倍
  4. 2018.10.25-dtoj-3989-五子棋(fir)
  5. MacBook的程序坞(任务栏)主屏副屏幕切换
  6. Python3 使用腾讯云 API 接口实现音频文件转写(支持本地音频或者 url 音频)
  7. C#GDI+简单绘图
  8. Markdown马克飞象css(代码块优化)
  9. 基于QT的智能家居中控系统的简明设计
  10. php 设置 useragent,PHP如何设置User Agent