dm8达梦数据库安装

前言

环境:centos7.6 x86-64、dm8
本篇介绍虚拟机安装dm8数据库单节点的简单步骤。

官方社区文档:https://eco.dameng.com/document/dm/zh-cn/start/dm-instance-linux.html

服务器资源需求和下载链接

官方社区下载地址:https://eco.dameng.com/download/  这里我们下载:开发版 x84 rhel7
下载下来的是一个dm8_20241227_x86_rh7_64.zip包,解压即可,里面有一个dm8_20241227_x86_rh7_64.iso镜像,上传到服务器上面去。
服务器资源需求:
Linux(glibc2.3 以上,内核 2.6,已安装KDE/GNOME 桌面环境),可以是最小化安装,图形化不是必须的。centos 7.6最小化安装就能满足。
CPU:支持国产与国际主流 CPU 处理器
内存:256M(建议 512M 以上)
硬盘:5G 以上可用空间

安装dm8数据库

下面只给出基本的安装过程的命令,都很简单,达梦数据库的安装其实就是分为达梦软件本身的安装,创建和注册数据库实例。

安装dm8本身数据库软件(命令行交互式安装)

./DMInstall.bin						# 图形化安装
./DMInstall.bin -i 					# 命令行安装(推荐,本次就是使用命令行安装)
./DMInstall.bin -q 配置文件全路径	# 配置文件的写法格式请看官网
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
setenforce 0
echo "检查是否关闭selinux:";getenforce && grep 'SELINUX=disabled' /etc/selinux/config

systemctl stop firewalld.service && systemctl disable firewalld.service
echo "检查是否关闭防火墙:";systemctl status firewalld.service | grep -E 'Active|disabled'

# 1. 创建安装用户组dinstall
groupadd -g 12349 dinstall
# 2. 创建安装用户dmdba
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 3. 初始化用户密码
echo '123456' | passwd --stdin dmdba

# 配置系统限制
cat >> /etc/security/limits.conf <<'EOF'
# for dm8
dmdba   hard  nofile   65536
dmdba   soft   nofile    65536
dmdba   hard  nproc   65535
dmdba   soft   nproc    65535
dmdba   hard   stack   8192
dmdba   soft   stack    8192
EOF

# 挂载dm iso镜像
mount dm8_20241227_x86_rh7_64.iso /mnt/
# 复制文件后重新授权
cd /mnt/
cp DMInstall.bin  /home/dmdba/
cd /home/dmdba/
chown dmdba:dinstall DMInstall.bin
umount /mnt
# 切换用户开始命令行安装,-i就是命令行交互式安装
su - dmdba
cd /home/dmdba/
[dmdba@dm8 ~]$ ./DMInstall.bin  -i
安装语言: 
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1					# 选择中文,本身达梦就是国产的数据库,肯定选择中文啦
解压安装程序......... 
硬件架构校验通过!
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N		# key相对于秘钥,我们没有key文件,所以这里选择no

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y			# 选择设置时区
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21			# 选择21 中国标准时间

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1	# 选择典型安装,典型安装包含服务器、客户端、驱动、用户手册、数据库服务等,是最全量的安装
所需空间: 1995M

请选择安装目录 [/home/dmdba/dmdbms]:/home/dmdba/dmdbms		# 选择安装目录,默认就是/home/dmdba/dmdbms
可用空间: 34G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y	# 选择Y

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1995M
可用空间: 34G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):Y		# 开始安装
2025-01-22 12:41:51 
[INFO] 安装达梦数据库...
2025-01-22 12:41:51 
[INFO] 安装 基础 模块...
2025-01-22 12:42:00 
[INFO] 安装 服务器 模块...
2025-01-22 12:42:03 
[INFO] 安装 客户端 模块...
2025-01-22 12:42:07 
[INFO] 安装 驱动 模块...
2025-01-22 12:42:09 
[INFO] 安装 手册 模块...
2025-01-22 12:42:10 
[INFO] 安装 服务 模块...
2025-01-22 12:42:11 
[INFO] 移动日志文件。
2025-01-22 12:42:12 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh		# 按照安装提示,再开一个窗口,用root用户执行这个脚本

安装结束

# 再开一个窗口,用root账号登录,然后执行这个脚本
[root@dm8 ~]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@dm8 ~]# 
# 安装完成之后,达梦默认会在dmdba下配置两个环境变量
cat  /home/dmdba/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin"
export DM_HOME="/home/dmdba/dmdbms"
# 但是没有把它配置到PATH环境变量里面,所以可以配置PATH环境变量,还是使用dmdba账号配置
cat >> /home/dmdba/.bash_profile <<'EOF'
export PATH=$PATH:$HOME/bin:$DM_HOME/bin
EOF
[dmdba@dm8 ~]$ source /home/dmdba/.bash_profile
[dmdba@dm8 ~]$ which disql
~/dmdbms/bin/disql
[dmdba@dm8 ~]$ 

至此,达梦软件已经安装完成了。

# 查看脚本root_installer.sh是什么内容
# 可以发现,这就是一个创建DmAPService service并启动服务和移动配置文件的脚本而已
# DmAPService服务是达梦数据库中一个非常重要的服务,数据库的备份和恢复都依赖DmAPService服务
[root@dm8 ~]# cat /home/dmdba/dmdbms/script/root/root_installer.sh
#!/bin/sh

#run by root
RUID=`/usr/bin/id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`
if [ ${RUID} != "0" ]
then
	 echo "必须以 root身份执行此脚本!"
	exit 1
fi

echo "移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录"
mv "/home/dmdba/dmdbms/bin/dm_svc.conf" /etc/dm_svc.conf

echo "创建DmAPService服务"
"/home/dmdba/dmdbms/script/root/dm_service_installer.sh" -s "/home/dmdba/dmdbms/bin/DmAPService"

echo "启动DmAPService服务"
systemctl start DmAPService.service

#查看dm_svc.conf文件,好像也没啥
[root@dm8 ~]# cat /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(CN)
[root@dm8 ~]# 

创建和注册数据库实例

dbca是一个图形化的达梦数据库配置助手,用于创建数据库实例和自动注册数据库实例(页面操作配置很简单),脚本位于/home/dmdba/dmdbms/tool/dbca.sh,直接执行脚本就会弹出配置助手页面。
dminit工具也是用于创建实例,是命令行方式创建实例,但是dminit工具不会自动创建服务,需要单独注册实例的服务。

# 创建数据库实例
# 还是使用dmdba账号登录
mkdir /home/dmdba/dmdata
cd /home/dmdba/dmdbms/bin
./dminit help			# 查看命令帮忙,有很多参数都有默认值
./dminit PATH=/home/dmdba/dmdata DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 PAGE_SIZE=16   SYSDBA_PWD='Aa@12345678' SYSAUDITOR_PWD='Aa@12345678'

# 注册数据库实例
# 使用dm_service_installer.sh脚本进行注册(必须使用root账号运行)
cd /home/dmdba/dmdbms/script/root
[root@dm8 root]# ./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
[root@dm8 root]# 
参数说明:
-t:指定注册服务类型,支持的服务类型:dmap、dmamon、dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm。
-dm_ini:指定服务所需要的dm.ini文件路径。
-p:指定服务名后缀,生成的操作系统服务名为"服务脚本模板名,称 + 服务名后缀"。此参数只针对 dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm 服务脚本生效。

# 启动数据库实例(root身份启动)
systemctl start DmServiceDMSERVER
systemctl status DmServiceDMSERVER
systemctl enable  DmServiceDMSERVER
netstat  -lntup | grep 5236

至此,达梦数据库已经安装完成,达梦软件,数据库实例都运行正常了。一个达梦软件可以创建多个实例,只要端口不相同即可。

小结

无脑快速安装达梦数据库命令:

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
setenforce 0
echo "检查是否关闭selinux:";getenforce && grep 'SELINUX=disabled' /etc/selinux/config

systemctl stop firewalld.service && systemctl disable firewalld.service
echo "检查是否关闭防火墙:";systemctl status firewalld.service | grep -E 'Active|disabled'

# 1. 创建安装用户组dinstall
groupadd -g 12349 dinstall
# 2. 创建安装用户dmdba
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 3. 初始化用户密码
echo '123456' | passwd --stdin dmdba

# 配置系统限制
cat >> /etc/security/limits.conf <<'EOF'
# for dm8
dmdba   hard  nofile   65536
dmdba   soft   nofile    65536
dmdba   hard  nproc   65535
dmdba   soft   nproc    65535
dmdba   hard   stack   8192
dmdba   soft   stack    8192
EOF

# 挂载dm iso镜像
mount dm8_20241227_x86_rh7_64.iso /mnt/
# 复制文件后重新授权
cd /mnt/
cp DMInstall.bin  /home/dmdba/
cd /home/dmdba/
chown dmdba:dinstall DMInstall.bin
umount /mnt
# 切换用户开始命令行安装,-i就是命令行交互式安装
su - dmdba
cd /home/dmdba/
./DMInstall.bin  -i
安装语言: 
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1					# 选择中文,本身达梦就是国产的数据库,肯定选择中文啦
解压安装程序......... 
硬件架构校验通过!
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N		# key相对于秘钥,我们没有key文件,所以这里选择no

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y			# 选择设置时区
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21			# 选择21 中国标准时间

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1		# 选择典型安装,典型安装包含服务器、客户端、驱动、用户手册、数据库服务等,是最全量的安装
所需空间: 1995M

请选择安装目录 [/home/dmdba/dmdbms]:/home/dmdba/dmdbms		# 选择安装目录,默认就是/home/dmdba/dmdbms
可用空间: 34G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y	# 选择Y

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1995M
可用空间: 34G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):Y		# 开始安装
2025-01-22 12:41:51 
[INFO] 安装达梦数据库...
2025-01-22 12:41:51 
[INFO] 安装 基础 模块...
2025-01-22 12:42:00 
[INFO] 安装 服务器 模块...
2025-01-22 12:42:03 
[INFO] 安装 客户端 模块...
2025-01-22 12:42:07 
[INFO] 安装 驱动 模块...
2025-01-22 12:42:09 
[INFO] 安装 手册 模块...
2025-01-22 12:42:10 
[INFO] 安装 服务 模块...
2025-01-22 12:42:11 
[INFO] 移动日志文件。
2025-01-22 12:42:12 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh		# 按照提示,再开一个窗口,用root用户执行这个脚本

安装结束

# 按照提示,再开一个窗口,用root用户执行这个脚本
/home/dmdba/dmdbms/script/root/root_installer.sh

# 配置环境变量(使用root账号或dmdba账号登录执行即可)
cat >> /home/dmdba/.bash_profile <<'EOF'
export PATH=$PATH:$HOME/bin:$DM_HOME/bin
EOF
source /home/dmdba/.bash_profile
which disql

# 创建数据库实例(使用dmdba账号登录执行)
mkdir /home/dmdba/dmdata
cd /home/dmdba/dmdbms/bin/
./dminit PATH=/home/dmdba/dmdata DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 PAGE_SIZE=16 SYSDBA_PWD='Aa@12345678' SYSAUDITOR_PWD='Aa@12345678'

# 注册数据库实例(必须使用root账号登录执行)
# 使用dm_service_installer.sh脚本进行注册
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdata/DAMENG/dm.ini -p DMSERVER

# 启动数据库实例(使用root账号登录执行)
systemctl start DmServiceDMSERVER
systemctl status DmServiceDMSERVER
systemctl enable  DmServiceDMSERVER
netstat  -lntup | grep 5236

达梦的静默安装

su - dmdba
./DMInstall.bin -q /home/dmdba/auto_install.xml
# 配置文件里面其实定义了很多配置,模板如下地址
https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html#2.2.2.3 静默安装

卸载达梦

https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html#2.2.3 卸载 DM
# 命令行卸载
su - dmdba
# 进入DM安装目录
cd /DM_INSTALL_PATH
# 执行卸载脚本命令行,卸载需要添加参数-i,此脚本将会完全卸载数据库实例和数据库软件
./uninstall.sh -i
# 如果仅需要卸载实例,即可先停止实例,然后删除实例注册的service文件,最后删除整个实例的目录即可
systemctl stop DmServiceGRP1_RT_01.service
/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_01.service
rm -rf /home/dmdba/dmdata/DAMENG

修改数据库端口

数据库实例默认的端口是5236,如果需要修改的话,每个实例下面都有一个叫做dm.ini的配置文件,这个配置文件里面包含了很多配置,其中的PORT_NUM就是指定数据库实例监听的端口。

systemctl  stop DmServiceDMSERVER.service 
vim /home/dmdba/dmdata/DAMENG/dm.ini
PORT_NUM = 52361

systemctl  start DmServiceDMSERVER.service 
lsof -i:52361

disql工具的使用

Linux命令行下提供了disql工具来链接数据库。

# disql的几种语法
1、不指定IP端口,默认登录本机
[root@master ~]# disql 			# 不写IP端口,默认链接本机LOCALHOST:5236
用户名:sysdba					# 用户名不区分大小写
密码:							# 秘文输入密码

2、指定IP端口登录DM服务器,SYSDBA是用户名,会提示输入密码,秘文输入密码Aa@12345678
disql SYSDBA@192.168.118.140:5236
或 disql sysdba@192.168.118.140:5236

3、使用标识符链接
如果觉得IP端口不好记,那么也可以使用svc标识符进行连接
vim /etc/dm_svc.conf		# 安装dm软件的时候默认创建了这个文件
TIME_ZONE=(480)				# 原有的,不用管
LANGUAGE=(CN)				# 原有的,不用管

dmserver=(192.168.118.140:5236)			# 我们新加的,格式就是:svc_name=(IP:PORT),svc_name可以自定义
然后就可以标识符链接了:
disql sysdba@dmserver
	

4、密码带有特殊字符又想秘文登录,假设sysdba密码是Aa@12345678,像这种带有特殊字符的,在linux下,需要使用
双引号将密码包含进来,同时外层再使用单引号进行转义。但是还是建议不要秘文登录
disql sysdba/'"Aa@12345678"'@192.168.118.140:5236


在使用disql登录时,用户名、svc_name标识符都不分区大小写,但是密码肯定是区分大小写的


# 详细语法如下
[root@master ~]# disql -h
disql V8
version: 03134284294-20241225-255012-20119 Pack20

DISQL 用法1:disql -h|help
  显示disql版本信息和帮助信息

DISQL 用法2:disql [ [<option>] [<logon> | {/NOLOG}] [<start>] ]
  使用disql命令
  示例: disql SYSDBA/SYSDBA@192.168.1.64:5236 `e:\a.sql

    <option> ::= [-L] [-S]

        -L
          只尝试登录一次

        -S
          隐藏模式,隐藏<SQL>标识符

    <logon> ::= {<username>[/<password>] | /}[@<connect_identifier>][<logon_option>] [<os_auth>]

        <connect_identifier> ::= [<svc_name> | host[:port] | <unixsocket_file>]

            HOST如果是IPv6的地址,需要用[]指明是IPv6地址
              例如[fe80::1e6f:65ff:fed1:3724%6]

            INET_TYPE如果是UNIXSOCKET类型,<connect_identifier>需要指明是unixsocket地址
              例如:/data/sdb/DAMENG/foo.sock

        <logon_option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}

            <extend_option>            <value>
            ---------------            ---------------------------
            MPP_TYPE                   GLOBAL/LOCAL
            INET_TYPE                  UDP/TCP/IPC/RDMA/UNIXSOCKET
            SSL_PATH                   <path_str>
            SSL_PWD                    <pwd_str>
            PROXY_CLIENT               <user_str>
            GWDSN                      <GATEWAY DSN>
            UKEY_NAME                  <ukey_name_str>
            UKEY_PIN                   <ukey_pin_str>
            SHAKE_CRYPTO               <shake_crypto_str>
            USER_NEW_PWD               <new_pwd>
            FE_MODE                    TRUE/FALSE

        <os_auth> ::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}


    /NOLOG 选项能在未登录DM服务器的情况下启动disql

    <start> ::= <`sql脚本> | <@sql脚本> | <@@sql脚本> | <start sql脚本> | <direct cmd> | <direct sql> 运行disql脚本

        <`sql脚本>::= "`<file_path>[<PARAMETER_VALUE> { <PARAMETER_VALUE>}...]"

        <@sql脚本>::= "@<file_path>[<PARAMETER_VALUE> { <PARAMETER_VALUE>}...]"

        <@@sql脚本>::= "@@<file_path>[<PARAMETER_VALUE> { <PARAMETER_VALUE>}...]"

        <start sql脚本>::= "START <file_path>[<PARAMETER_VALUE> { <PARAMETER_VALUE>}...]"
          只能在进入disql后使用"

        <direct sql>::= -E "<SQL语句>[;<SQL语句>]"

        <direct cmd>::= -C "<set 命令>"

[root@master ~]# 

disql执行脚本-方法

可以使用disql工具执行脚本,脚本在Linux服务器上,如下所示,使用start命令或 ` 都可以

1、方法一
# 在命令行登录的时候执行脚本,使用` ,但是要\转义
# 会让输入密码登录,登录成功之后自动执行脚本
disql sysdba@192.168.118.140:5236 \`/home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/1-CREATESCHEMA.sql
方法二、disql登录之后使用 ` 或start命令 来执行脚本
disql sysdba@192.168.118.140:5236
SQL> `/home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/2-REGION.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/3-CITY.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/4-LOCATION.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/5-DEPARTMENT.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/6-JOB.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/7-EMPLOYEE.sql
SQL> start /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8/8-JOB_HISTORY.sql

还是推荐先使用disql登录之后再使用start命令来执行脚本。

disql执行宿主机命令

为方便disql与宿主机的交互,在disql里面可以执行宿主机命令,使用host关键字即可,如下所示:

[dmdba@master ~]$ disql sysdba@192.168.118.140:5236
密码:

服务器[192.168.118.140:5236]:处于普通打开状态
登录使用时间 : 4.158(ms)
disql V8
SQL> host df -Th					# host关键字后面加要执行的宿主机Linux命令
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   16M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        39G   28G   12G  71% /
/dev/sda1               xfs      1014M  226M  789M  23% /boot
tmpfs                   tmpfs     378M     0  378M   0% /run/user/0

SQL> host							# host关键字,进入了一个临时的宿主机环境
[dmdba@master ~]$ pwd
/home/dmdba
[dmdba@master ~]$ ls
dmdata  dmdbms  DMInstall.bin
[dmdba@master ~]$ exit				# 退出又回到disql 的sql终端
exit
SQL> 

manager工具的使用

manager是达梦的图形化工具,安装了客户端工具就会有这个工具,既可以在win上安装也可以在Linux上安装。
这里我们在Linux上安装达梦软件时已经勾选了安装客户端,工具位于:/home/dmdba/dmdbms/tool/manager,就是个shell脚本,直接./manager启动即可。
也可以在win上安装manager工具。
在这里插入图片描述
启用SQL提示能自动识别补全关键字:
在这里插入图片描述
还可以启用下面这些功能:
在这里插入图片描述
这两个去掉,不要勾选:
在这里插入图片描述
查看表之间的主外键关系:
在这里插入图片描述

在这里插入图片描述
快速创建SQL语句:
在这里插入图片描述

修改Manager 工具显示语言

如果安装DM时选择的是英文,那么DM的Manager工具也是英文。
windows平台下,Manager工具的配置文件是DM_HOME/tool/manager.ini,将参数-Dosgi.nl=en_US 改成-Dosgi.nl=zh_CN即可。Linux下直接修改脚本:

vim /home/dmdba/dmdbms/tool/manager
INSTALL_LANGUAGE=zh_CN

常用SQL

# 查询是否大小写敏感
#    --1 为大小写敏感,0 为大小写不敏感
SELECT SF_GET_CASE_SENSITIVE_FLAG();


# 限制查询返回的行数 limit n
# limit可以放在排序order by 前面或后面本质上都是order by先执行再到limit,但是建议limit写在order by后面更直观
select * from  dmhr.test1 order by id  limit 3;		# 建议这样写
select * from  dmhr.test1  limit 3 order by id ;	# 不建议

# rowid 唯一标识一行数据
# rowid是数据的物理地址,通常使用rowid来删除没有主键的重复数据
select rowid,* from  dmhr.test1

# ROWNUM,使用SELECT语句返回的结果集,若希望按特定条件查询前N条记录,可以使用伪列ROWNUM
# 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
select rownum ,* from  dmhr.test1 where rownum <= 3;



# || 拼接字符串
select '编号:' || region_id || ', 我的家在: ' || region_name from dmhr.region;
编号:1, 我的家在: 华北
编号:2, 我的家在: 华东
编号:3, 我的家在: 华南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值