赞
踩
随着国产化趋势的不断发展以及信创项目的推进,国产芯片、国产操作系统和国产数据库等无疑成为了最热门的话题;其中,达梦数据库便是国产数据库梯队中的优秀代表。
达梦数据库是由武汉达梦公司自主研发的,最早的 DM1 版本可以追溯到 1993 年,当前最新版本为 DM8 版本。达梦数据库从功能和需求上又可以具体分为标准版、企业版、安全版和开发版四个版本。
本文是基于 Kylin V10 操作系统安装 DM8 企业版数据库进行展开的,关于 Kilin 操作系统的安装,大家可以参考《银河麒麟高级服务器操作系统 V10 版本安装教程》这篇博文,本文将不再展开介绍。
名称 | 要求 |
---|---|
CPU | Intel Pentium4(建议 Pentium 41.6G 以上)处理器 |
内存 | 256M(建议 512M 以上) |
硬盘 | 5G 以上可用空间 |
网卡 | 10M 以上支持 TCP/IP 协议的网卡 |
光驱 | 32 倍速以上光驱 |
显卡支持 | 1024768256 以上彩色显示 |
显示器 | SVGA 显示器 |
键鼠 | 普通键盘/鼠标 |
名称 | 要求 |
---|---|
操作系统 | Linux(glibc2.3 以上,内核 2.6以上,已安装 KDE/GNOME 桌面环境,建议预先安装 UnixODBC 组件) |
网络协议 | TCP/IP |
系统盘 | 至少 1G 以上的剩余空间 |
关于系统防火墙和 SELINUX 模块,在我的实验环境中都是默认的配置,即防火墙是开启的状态,SELINUX 也没有被禁用。在生产环境或者测试环境中,建议禁用 SELINUX 模块,至于防火墙可以根据需要选择是否关闭或者开启并放行对应的端口。
[root@kylin10 ~]# cat /proc/version
Linux version 4.19.90-24.4.v2101.ky10.x86_64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 24 12:14:55 CST 2021
[root@kylin10 ~]# uname -r
4.19.90-24.4.v2101.ky10.x86_64
[root@kylin10 ~]# arch
x86_64
[root@kylin10 ~]# ldd --version
ldd (GNU libc) 2.28
Copyright (C) 2018 自由软件基金会。
这是一个自由软件;请见源代码的授权条款。本软件不含任何没有担保;甚至不保证适销性
或者适合某些特殊目的。
由 Roland McGrath 和 Ulrich Drepper 编写。
[root@kylin10 ~]# gcc --version
gcc (GCC) 7.3.0
Copyright © 2017 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@kylin10 ~]# lscpu
[root@kylin10 ~]# cat /proc/cpuinfo
[root@kylin10 ~]# free -m
[root@kylin10 ~]# cat /proc/meminfo
[root@kylin10 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 99G 0 part ├─klas-root 253:0 0 83G 0 lvm / └─klas-swap 253:1 0 16G 0 lvm [SWAP] sr0 11:0 1 4G 0 rom [root@kylin10 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.3G 0 3.3G 0% /dev tmpfs 3.3G 4.0K 3.3G 1% /dev/shm tmpfs 3.3G 9.5M 3.3G 1% /run tmpfs 3.3G 0 3.3G 0% /sys/fs/cgroup /dev/mapper/klas-root 83G 9.3G 74G 12% / tmpfs 3.3G 44K 3.3G 1% /tmp /dev/sda2 1014M 211M 804M 21% /boot tmpfs 667M 32K 667M 1% /run/user/0
目录用途 | 绝对路径 | 备注 |
---|---|---|
软件安装包路径 | /opt/iso | 存放 DM8 数据库安装介质 |
软件安装路径 | /dm8 | 达梦数据库软件安装路径 |
数据库实例创建路径 | /dm8/data | 存放数据的路径,数据包括但不限于数据文件、日志文件、参数文件等 |
归档文件存储路径 | null | 本文不涉及归档设置,仅提供规划参考;归档的开启是可选的,默认不开归档 |
备份集存储路径 | null | 本文不涉及备份设置,仅提供规划参考;一般建议和源库存储分开存放 |
Step1
:创建用户和用户组。
[root@kylin10 ~]# groupadd dinstall
[root@kylin10 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@kylin10 ~]# passwd dmdba
[root@kylin10 ~]# id dmdba
用户id=1000(dmdba) 组id=1000(dinstall) 组=1000(dinstall)
Step2
:创建软件安装目录并设置权限。
[root@kylin10 ~]# mkdir /dm8
[root@kylin10 ~]# chown dmdba:dinstall /dm8/
[root@kylin10 ~]# chmod 775 /dm8/
[root@kylin10 ~]# ls -ld /dm8/
drwxrwxr-x 2 dmdba dinstall 6 7月 4 15:45 /dm8/
Step3
:修改打开文件最大数。
[root@kylin10 ~]# vim /etc/security/limits.conf //编辑配置文件在末尾添加如下四行参数保存并退出。 dmdba hard nofile 65536 dmdba soft nofile 65536 dmdba hard stack 32768 dmdba soft stack 16384 [root@kylin10 ~]# su - dmdba //切换到 dmdba 用户下查看配置是否生效。 [dmdba@kylin10 ~]$ ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 26446 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65536 // <== 显然配置已经生效了。 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 16384 // <== 显然配置已经生效了。 cpu time (seconds, -t) unlimited max user processes (-u) 26446 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Step4
:创建软件包路径并设置挂载。
[root@kylin10 ~]# mkdir /opt/iso //创建软件包路径。
[root@kylin10 ~]# mkdir /mnt/dm-cdrom //创建挂载点。
[root@kylin10 ~]# ls -lh /opt/iso/ //查看软件包信息。
总用量 723M
-rw-r--r-- 1 root root 723M 7月 4 14:11 dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso
[root@kylin10 ~]# mount /opt/iso/dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso /mnt/dm-cdrom/ //设置挂载。
Step5
:安装数据库软件(在 dmdba 用户下执行安装
)。
[root@kylin10 ~]# su - dmdba
[dmdba@kylin10 ~]$ cd /mnt/dm-cdrom/
[dmdba@kylin10 dm-cdrom]$ ls -lh
总用量 723M
-r-xr-xr-x 1 root root 2.7M 8月 23 2021 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 720M 8月 23 2021 DMInstall.bin // <== 此为数据库软件安装程序。
[dmdba@kylin10 dm-cdrom]$ ./DMInstall.bin -i // <== 以命令行方式执行数据库软件安装程序。 请选择安装语言(C/c:中文 E/e:英文) [C/c]: //默认安装语言为中文。 解压安装程序.......... 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n //没有 Key 所以此处为否。 是否设置时区? (Y/y:是 N/n:否) [Y/y]: //默认设置时区。 设置时区: [ 1]: GTM-12=日界线西 [ 2]: GTM-11=萨摩亚群岛 [ 3]: GTM-10=夏威夷 [ 4]: GTM-09=阿拉斯加 [ 5]: GTM-08=太平洋时间(美国和加拿大) [ 6]: GTM-07=亚利桑那 [ 7]: GTM-06=中部时间(美国和加拿大) [ 8]: GTM-05=东部部时间(美国和加拿大) [ 9]: GTM-04=大西洋时间(美国和加拿大) [10]: GTM-03=巴西利亚 [11]: GTM-02=中大西洋 [12]: GTM-01=亚速尔群岛 [13]: GTM=格林威治标准时间 [14]: GTM+01=萨拉热窝 [15]: GTM+02=开罗 [16]: GTM+03=莫斯科 [17]: GTM+04=阿布扎比 [18]: GTM+05=伊斯兰堡 [19]: GTM+06=达卡 [20]: GTM+07=曼谷,河内 [21]: GTM+08=中国标准时间 [22]: GTM+09=汉城 [23]: GTM+10=关岛 [24]: GTM+11=所罗门群岛 [25]: GTM+12=斐济 [26]: GTM+13=努库阿勒法 [27]: GTM+14=基里巴斯 请选择设置时区 [21]: //默认设置为“21”即中国标准时间。 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]: //默认使用典型安装。 所需空间: 1178M 请选择安装目录 [/home/dmdba/dmdbms]:/dm8 //指定数据库软件安装路径。 可用空间: 73G 是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]:y //确认安装路径信息。 安装前小结 安装位置: /dm8 所需空间: 1178M 可用空间: 73G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y //确认安装。 2022-07-04 16:06:22 [INFO] 安装达梦数据库... 2022-07-04 16:06:22 [INFO] 安装 基础 模块... 2022-07-04 16:06:24 [INFO] 安装 服务器 模块... 2022-07-04 16:06:24 [INFO] 安装 客户端 模块... 2022-07-04 16:06:25 [INFO] 安装 驱动 模块... 2022-07-04 16:06:25 [INFO] 安装 手册 模块... 2022-07-04 16:06:25 [INFO] 安装 服务 模块... 2022-07-04 16:06:33 [INFO] 移动日志文件。 2022-07-04 16:06:33 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: // <== 此处提示要以 root 用户执行一个脚本文件。 /dm8/script/root/root_installer.sh 安装结束
[root@kylin10 ~]# /dm8/script/root/root_installer.sh //新开一个 terminal 窗口以 root 用户执行此脚本。
移动 /dm8/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
Step6
:配置 dmdba 用户环境变量。
[root@kylin10 ~]# vim /home/dmdba/.bash_profile //编辑环境变量配置文件在末尾添加如下一行参数保存后退出。
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
[root@kylin10 ~]# su - dmdba //切换到 dmdba 用户下使环境变量配置立即生效。
[dmdba@kylin10 ~]$ source .bash_profile
Step7
:创建数据库实例(在 dmdba 用户下执行创建
)。
注意事项:在创建数据库实例时需要注意以下三点:
dminit help
命令进行查看;/dm8
目录下,则需要单独创建并且设置所有者和权限;不会自动注册数据库服务
的,需要单独再进行注册。下面进行举例(因为前面配置过环境变量所以可以直接调用 dminit
命令,否则需要进到 $DM_HOME/bin
目录下执行 ./dminit
命令):
[dmdba@kylin10 ~]$ dminit PATH=/dm8/data DB_NAME=DMTEST INSTANCE_NAME=DMTEST SYSDBA_PWD=Dameng123 PORT_NUM=5237 PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2022-08-20 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dm8/data/DMTEST/DMTEST01.log log file path: /dm8/data/DMTEST/DMTEST02.log write to dir [/dm8/data/DMTEST]. create dm database success. 2022-07-04 16:30:34
Step8
:注册数据库服务(在 root 用户下进行注册
)。
[root@kylin10 ~]# cd /dm8/script/root/
[root@kylin10 root]# ./dm_service_installer.sh -t dmserver -p DMTEST -dm_ini /dm8/data/DMTEST/dm.ini
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMTEST.service → /usr/lib/systemd/system/DmServiceDMTEST.service.
创建服务(DmServiceDMTEST)完成
Step9
:启动数据库服务(在 root 用户下进行服务启动
)。
[root@kylin10 ~]# systemctl start DmServiceDMTEST.service
[root@kylin10 ~]# systemctl status DmServiceDMTEST.service //服务应处于 “active (running)” 状态。
[root@kylin10 ~]# systemctl list-unit-files |grep DmServiceDMTEST //在注册服务时已经将数据库实例服务设置为了开机自启动。
DmServiceDMTEST.service enabled
Step10
:查看数据库实例进程和服务监听端口。
[root@kylin10 ~]# ps -ef |grep dmserver //达梦数据库是单进程多线程结构。
dmdba 6713 1 1 16:44 ? 00:00:02 /dm8/bin/dmserver /dm8/data/DMTEST/dm.ini -noconsole
root 6789 3200 0 16:48 pts/0 00:00:00 grep dmserver
[root@kylin10 ~]# netstat -antlp |grep 5237
tcp6 0 0 :::5237 :::* LISTEN 6713/dmserver
Step11
:连接数据库。
[root@kylin10 ~]# su - dmdba
[dmdba@kylin10 ~]$ disql SYSDBA/Dameng123:5237
服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 2.730(ms)
disql V8
SQL>
SQL> select name from v$database; //查询数据库名称。
行号 NAME
---------- ------
1 DMTEST
已用时间: 0.948(毫秒). 执行号:50601.
SQL> select instance_name from v$instance; //查询实例名称。
行号 INSTANCE_NAME
---------- -------------
1 DMTEST
已用时间: 3.364(毫秒). 执行号:50600.
Step1
:关闭数据库服务(以 root 用户进行关闭
)。
[root@kylin10 ~]# systemctl stop DmServiceDMTEST.service
Step2
:执行卸载脚本(以 dmdba 用户执行卸载
)。
[dmdba@kylin10 ~]$ cd /dm8/ [dmdba@kylin10 dm8]$ ./uninstall.sh -i // <== 执行卸载脚本。 请确认是否卸载达梦数据库(/dm8/)? (y/Y:是 n/N:否):y // <== 确认卸载。 是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y // <== 确认删除。 正在删除所有数据库库服务 删除数据库服务DmJobMonitorService 删除数据库服务DmInstanceMonitorService 删除数据库服务DmAuditMonitorService 删除数据库服务DmAPService 删除数据库服务DmServiceDMTEST 删除所有数据库库服务完成 正在删除数据库目录 删除bin目录 删除bin目录完成 删除bin2目录 删除bin2目录完成 删除include目录 删除include目录完成 删除desktop目录 删除desktop目录完成 删除doc目录 删除doc目录完成 删除drivers目录 删除drivers目录完成 删除jdk目录 删除jdk目录完成 删除jar目录 删除jar目录完成 删除samples目录 删除samples目录完成 删除script目录 删除script目录完成 删除tool目录 删除tool目录完成 删除web目录 删除web目录完成 删除uninstall目录 删除uninstall目录完成 删除license_en.txt文件 删除license_en.txt文件完成 删除license_zh.txt文件 删除license_zh.txt文件完成 删除uninstall.sh文件 删除uninstall.sh文件完成 删除数据库目录完成 使用root用户执行命令: // <== 此处提示要以 root 用户执行一个脚本文件。 /dm8/root_uninstaller.sh
[root@kylin10 ~]# /dm8/root_uninstaller.sh //新开一个 terminal 窗口以 root 用户执行此脚本。
删除DmAPService服务
Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
删除DmServiceDMTEST服务
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMTEST.service.
删除/etc/dm_svc.conf文件
Step3
:检查安装目录和实例目录。
[root@kylin10 ~]# ls -lh /dm8/
总用量 4.0K
drwxr-xr-x 2 dmdba dinstall 6 7月 4 17:00 bin
drwxr-xr-x 3 dmdba dinstall 20 7月 4 16:30 data
drwxr-xr-x 2 dmdba dinstall 249 7月 4 16:57 log
-rwxr-xr-x 1 dmdba dinstall 519 7月 4 16:57 root_uninstaller.sh
[root@kylin10 ~]# du -sh /dm8/*
0 /dm8/bin
890M /dm8/data // <== 显然数据目录下还是有文件的。
516K /dm8/log
4.0K /dm8/root_uninstaller.sh
通过上面的检查不难发现,在卸载数据库以后,还是会保留 log 日志以及 data 数据目录的;即达梦数据库卸载时是不会删除数据文件的
。
Step1
:创建用户和用户组。
Step2
:创建软件安装目录并设置权限。
Step3
:修改打开文件最大数。
编辑 /etc/security/limits.conf
配置文件:
[root@kylin10 桌面]# vim /etc/security/limits.conf
在文件末尾添加红色方框中的内容,保存并退出:
切换到 dmdba 用户下验证配置是否生效:
Step4
:创建软件包路径并设置挂载。
Step5
:安装数据库软件(在 dmdba 用户下执行安装
)。
配置好 xhost 后调用图形化安装:
Step6
:配置 dmdba 用户环境变量。
编辑 dmdba 用户的环境变量配置文件:
[root@kylin10 桌面]# vim /home/dmdba/.bash_profile
在文件末尾添加如下所示的内容:
使环境变量配置立即生效:
[root@kylin10 桌面]# su - dmdba
[dmdba@kylin10 ~]$ source .bash_profile
Step7
:创建数据库实例。
这里的 terminal 窗口还是前面安装数据库软件的窗口,如果是新打开的 terminal 窗口,还需要重新配置 xhost 才可以调用图形化界面:
Step8
:查看数据库服务状态。
Step9
:查看数据库实例进程和服务监听端口。
Step10
:连接数据库。
配置好 xhost 后调用图形化进行数据库卸载:
当安装数据库出现如下报错时,首先需要排查可用内存空间,达梦数据库安装时建议至少有 1GB 可用内存空间;当排除掉可用内存不足的因素,大概率就是因为 /tmp
可用空间不足导致的,因为达梦数据库在安装时会产生临时文件,大约需要占用 1GB 的临时空间。
要解决这个问题,要么是扩展 /tmp 目录空间,要么是指定其它目录作为数据库安装时使用的临时目录;下面我们以第二种方法为例进行说明:
Step1
:创建临时目录并配置所有者和权限。
[root@kylin10 ~]# mkdir /opt/dm-tmp
[root@kylin10 ~]# chown dmdba:dinstall /opt/dm-tmp/
[root@kylin10 ~]# chmod 775 /opt/dm-tmp/
[root@kylin10 ~]# ls -ld /opt/dm-tmp/
drwxrwxr-x 2 dmdba dinstall 6 7月 5 09:07 /opt/dm-tmp/
Step2
:指定 DM_INSTALL_TMPDIR
变量。
[root@kylin10 ~]# su - dmdba
[dmdba@kylin10 ~]$ export DM_INSTALL_TMPDIR=/opt/dm-tmp
[dmdba@kylin10 ~]$ echo $DM_INSTALL_TMPDIR
/opt/dm-tmp
或者
[dmdba@kylin10 ~]$ vim .bash_profile //在环境变量配置文件中添加如下信息。
export DM_INSTALL_TMPDIR=/opt/dm-tmp
[dmdba@kylin10 ~]$ source .bash_profile //使环境变量配置立即生效。
Step3
:重新执行安装。
无论是进行数据库安装还是卸载,当 xhost
和 DISPLAY
设置不正确时,就会导致图形化调用失败,如下图所示:
其主要原因就是在 dmdba 用户下,我们执行 echo $DISPLAY
返回为空,导致图形化调用失败;所以,我们要严格按照下图所示的步骤,确保在 dmdba 用户下执行 echo $DISPLAY
返回的端口号和在 root 用户下查询到的端口号保持一致:
整个达梦数据库的安装和卸载流程走下来,个人感觉和 Oracle 数据库很相似,但是比 Oracle 数据库的安装和卸载都要更加简单、方便一些。其实还有一种静默安装的方式没有进行介绍,后面会在其它博文中进行演示说明。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。