ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

达梦数据库之disql体验优化

2022-02-28 16:31:21  阅读:272  来源: 互联网

标签:dmdba DM disql rlwrap 数据库 localhost SQL 达梦


前言

作为运维过MySQL或者Oracle的DBA来说,在Linux版本的数据库安装完成之后,可能通常更喜欢使用其自带的命令行工具进行数据库连接,并进行一些常规的数据库操作。所以,在安装完达梦数据库之后,大家可能顺理成章的也会使用disql进行数据库的日常操作。这时,可能会遇到一些使用上的小问题,总感觉DM的disql工具有那么一些些的不顺手,本篇文章总结了一些大家可能会遇到的问题,希望对大家使用disql有所帮助。

快速启动

在安装完DM数据库之后,我们通常会切换到dmdba这个用户对数据库进行操作。(希望大家也养成这样一个好习惯,因为这样可以避免安全问题和一些莫名其妙的权限问题),在命令行输入disql后回车,提示找不到该命令。

[root@localhost ~]# su - dmdba
Last login: Mon Feb 28 14:50:07 CST 2022 on pts/2
[dmdba@localhost ~]$ disql
bash: disql: command not found...

经常使用Linux的同学可能会知道,这应该是没有正确设置disql可执行程序的路径到PATH环境变量,那么,我们现在就把达梦数据库的bin目录设置的dmdba用户的.bash_profile环境变量文件中。

# 编辑环境变量文件
[dmdba@localhost ~]$ vim ~/.bash_profile

#添加如下两行记录,其中DM_HOME表示DM数据库的安装路径
DM_HOME=/opt/dmdb/dmdbms
export PATH=$PATH:$DM_HOME/bin

# 使用source命令,让配置文件立即生效
source ~/.bash_profile

[dmdba@localhost ~]$ disql
disql: error while loading shared libraries: libdisql_dll.so: cannot open shared object file: No such file or directory

在配置PATH环境变量生效之后,执行disql又报错,提示不能找到共享库文件。网上有朋友说cd到达梦的bin目录再执行disql即可解决。果然,当我们cd到DM数据库的bin目录下之后再启动disql,就能正常启动了。

[dmdba@localhost dmdb]$ cd $DM_HOME/bin
[dmdba@localhost bin]$ disql
disql V8
用户名:

不过,这好像失去了配置PATH变量后在任何目录都能启动disql的便利性。其实,出现上述错误的环境是因为LD_LIBRARY_PATH还没有将DM的bin目录加入,因为disql程序引用了该路径的库文件。

# 编辑环境变量文件
[dmdba@localhost ~]$ vim ~/.bash_profile

#添加如下记录,其中DM_HOME表示DM数据库的安装路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

# 使用source命令,让配置文件立即生效
source ~/.bash_profile

[dmdba@localhost dmdb]$ disql
disql V8
用户名:

至此,快速启动disql圆满的问题解决了。

删除键无效

在disql使用过程中,有的同学打错了命令,想利用键盘上的backspace删除回退键修改,却遭到了无情的拒绝,就像下面这样:

# 或者出现^[[3~乱码
[dmdba@localhost ~]$ disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 7.471(ms)
SQL> creattee^[[3~^[[3~^[[3~^[[3~  

# 或者出现^H的乱码
[dmdba@localhost ~]$ disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.407(ms)
SQL> created^H^H^H^H

出现该问题通常是因为大家使用的SSH命令行终端工具键盘设置问题,一般可以在xshell等工具的【当前会话属性】→ 【终端】→【键盘】→【BACKSPLACE键序列】选择使用ASCII 127即可解决。

结果集输出到文件

有些SQL查询返回的结果太长,可能在命令行上查看不太方便,这个时候我们可以将查询结果输出到一个文件中,拷贝到windows个人电脑上利用强大的文本编辑器进行查看,此时,可以使用spool命令导出输出结果到指定文件

SQL> spool /tmp/tablespace_useage.txt
SQL> select * from SYS.DBA_FREE_SPACE;
# 还可以就本地临时调用操作系统命令(less、more、cat等等)验证导出结果
SQL> host more /tmp/tablespace_useage.txt

更强大的disql命令行

有时候执行的命令实在太多,想要复制之前执行的SQL命令。又或者输入了很长的SQL之后发现其中一个字母顺序写反了,你想将光标移动回去仅仅修改某处错误的地方

标签:dmdba,DM,disql,rlwrap,数据库,localhost,SQL,达梦
来源: https://www.cnblogs.com/jiangchuang/p/15946178.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有