达梦数据库,作为老牌国产数据库之一,近年来在数据库领域崭露头角。它不仅在技术上实现了自主可控,还在功能和性能上逐渐完善。在设计上借鉴了 Oracle 的一些理念,这使得它在架构和功能上与 Oracle 有诸多相似之处。如达梦数据库采用客户端/服务器模式,支持多层体系结构,能够处理高并发请求并保障系统的稳定性和性能。在存储管理方面,达梦数据库也采用了表空间的概念,通过数据文件来组织物理存储,这与 Oracle 的存储管理方式非常相似。此外,达梦数据库的 SQL 语法与 Oracle 高度一致,这使得熟悉 Oracle 的开发人员和数据库管理员能够快速上手达梦数据库,降低了学习成本和迁移难度。
达梦数据库的这些特点,不仅使其在国产数据库中脱颖而出,也为那些希望从 Oracle 迁移过来的企业提供了一个熟悉而又可靠的选择。随着国产化进程的加速,达梦数据库在信创领域的应用越来越广泛。
熟悉一个数据库,我们先从安装开始,接下来讲讲达梦数据库如何安装。
安装前准备
关闭防火墙
[root@dmdb ~]# systemctl stop firewalld [root@dmdb ~]# systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
复制
关闭selinux
####修改/etc/selinux/config文件中的SELINUX值为disabled # sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
复制
创建用户
**注意:**安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
[root@dmdb ~]# groupadd dinstall -g 2001 [root@dmdb ~]# useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba [root@dmdb ~]# passwd dmdba 更改用户 dmdba 的密码 。
复制
创建目录和授权
创建目录:
##实例保存目录 mkdir -p /dmdata/data ##归档保存目录 mkdir -p /dmdata/arch ##备份保存目录 mkdir -p /dmdata/dmbak
复制
授权:
chown -R dmdba:dinstall /dmdata/ chown -R dmdba:dinstall /dmdata/data chown -R dmdba:dinstall /dmdata/arch chown -R dmdba:dinstall /dmdata/dmbak chmod -R 755 /dmdata/ chmod -R 755 /dmdata/data chmod -R 755 /dmdata/arch chmod -R 755 /dmdata/dmbak
复制
修改文件打开最大数
修改/etc/security/limits.conf:
[root@dmdb ~]# vi /etc/security/limits.conf dmdba soft nice 0 dmdba hard nice 0 dmdba soft as unlimited dmdba hard as unlimited dmdba soft fsize unlimited dmdba hard fsize unlimited dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft core unlimited dmdba hard core unlimited dmdba soft data unlimited dmdba hard data unlimited
复制
查看参数是否生效:
[root@dmdb ~]# su - dmdba [dmdba@dmdb ~]$ ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 20 file size (blocks, -f) unlimited pending signals (-i) 26445 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) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 65536 <<<<<已更改 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
复制
数据库安装
DM 数据库在 Linux 环境下支持命令行安装和图形化安装。
图形安装
安装包下载:https://eco.dameng.com/download/,可以选择开发版作为个人测试使用,不需要key就可以安装使用。
挂载安装镜像:
[root@dmdb ~]# mount /dev/cdrom /mnt mount: /mnt: WARNING: source write-protected, mounted read-only. [root@dmdb ~]# cd /mnt/ [root@dmdb mnt]# ls 'DM8 Install.pdf' DMInstall.bin
复制
设置DISPLAY变量:
[root@dmdb mnt]# env|grep DIS DISPLAY=10.10.10.1:0.0 [root@dmdb mnt]# xhost + access control disabled, clients can connect from any host [root@dmdb mnt]# su - dmdba 上一次登录: 二 2月 11 11:12:45 CST 2025 pts/0 上 [dmdba@dmdb ~]$ export DISPLAY=10.10.10.1:0.0
复制
执行图形化安装命令:
[dmdba@dmdb ~]$ cd /mnt/ [dmdba@dmdb mnt]$ ./DMInstall.bin 解压安装程序......... 硬件架构校验通过!
复制
执行配置脚本:
[root@dmdb ~]# sh /home/dmdba/dmdbms/script/root/root_installer.sh 移动 /home/dmdba/dmdbms/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服务
复制
命令行安装
[dmdba@dmdb tmp]$ ./DMInstall.bin -i 安装语言: [1]: 简体中文 [2]: English 请选择安装语言 [1]:1 解压安装程序......... 硬件架构校验通过! 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n 是否设置时区? (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 请选择安装类型的数字序号 [1 典型安装]:1 请选择安装目录 [/home/dmdba/dmdbms]: 可用空间: 40G 是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y 安装前小结 安装位置: /home/dmdba/dmdbms 所需空间: 1995M 可用空间: 40G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y
复制
安装完成后显示如下:
2025-02-13 23:16:41 [INFO] 安装达梦数据库... 2025-02-13 23:16:41 [INFO] 安装 基础 模块... 2025-02-13 23:16:47 [INFO] 安装 服务器 模块... 2025-02-13 23:16:48 [INFO] 安装 客户端 模块... 2025-02-13 23:16:49 [INFO] 安装 驱动 模块... 2025-02-13 23:16:49 [INFO] 安装 手册 模块... 2025-02-13 23:16:49 [INFO] 安装 服务 模块... 2025-02-13 23:16:50 [INFO] 移动日志文件。 2025-02-13 23:16:51 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /home/dmdba/dmdbms/script/root/root_installer.sh 安装结束
复制
以root用户执行脚本
[root@dmdb tmp]# /home/dmdba/dmdbms/script/root/root_installer.sh 移动 /home/dmdba/dmdbms/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服务
复制
配置数据库实例
DM 数据库在 Linux 环境支持命令行配置实例以及图形化配置实例。
图形化配置
[dmdba@dmdb ~]$ export DISPLAY=10.10.10.1:0.0 [dmdba@dmdb ~]$ dbca.sh 2025-02-11 11:48:34 [com.dameng.dbca.Startup] [INFO] 启动DBCA
复制
设置数据库名、实例名及端口号
选择页大小、簇大小、字符集等
此处设置为DMdba123
root执行配置脚本:
[root@dmdb ~]# mv /home/dmdba/dmdbms/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service [root@dmdb ~]# systemctl enable DmServiceDMSERVER.service Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service. [root@dmdb ~]# systemctl start DmServiceDMSERVER.service [root@dmdb ~]#
复制
重启数据库
[root@dmdb ~]# systemctl restart DmServiceDMSERVER.service [root@dmdb ~]#
复制
点击完成,至此达梦数据库安装完成,可以开始使用了。
命令行配置
使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例
[dmdba@dmdb ~]$ cd /home/dmdba/dmdbms/bin [dmdba@dmdb bin]$ ls dminit dminit --查看dminit命令 [dmdba@dmdb bin]$ ./dminit path=/dmdata/data DB_NAME=DMDB INSTANCE_NAME=PROD SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123 log_size=256 initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2025-12-25 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dmdata/data/DMDB/DMDB01.log log file path: /dmdata/data/DMDB/DMDB02.log write to dir [/dmdata/data/DMDB]. create dm database success. 2025-02-13 23:32:12
复制
使用root用户,注册数据库服务,注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。
[root@dmdb tmp]# cd /home/dmdba/dmdbms/script/root/ [root@dmdb root]# ./dm_service_installer.sh -h [root@dmdb root]# ./dm_service_installer.sh -t dmserver -p PROD -dm_ini /dmdata/data/DMDB/dm.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmServicePROD.service → /usr/lib/systemd/system/DmServicePROD.service. 创建服务(DmServicePROD)完成
复制
设置环境变量(可选)
[root@dmdb ~]# su - dmdba 上一次登录: 二 2月 11 11:32:09 CST 2025 pts/0 上 [dmdba@dmdb ~]$ cat .bash_profile # Source /root/.bashrc if user has one [ -f ~/.bashrc ] && . ~/.bashrc export DM_HOME="/home/dmdba/dmdbms" export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool [dmdba@dmdb ~]$ source .bash_profile
复制
卸载
如果安装过程中出错或者需要重新安装,我们来看一下如何进行卸载,卸载方式有2种:图形化卸载和命令行卸载。
图形卸载
--进入卸载目录 如:/home/dmdba/dmdbms [dmdba@dmdb dmdbms]$ env|grep DIS DISPLAY=10.10.10.1:0.0 [dmdba@dmdb dmdbms]$ ./uninstall.sh
复制
root用户执行脚本:
[root@dmdb ~]# /home/dmdba/dmdbms/root_uninstaller.sh Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service. Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
复制
卸载程序不会删除安装目录下有用户数据的库文件以及安装 DM 后使用过程中产生的一些文件。
用户可以根据需要手工删除这些内容。
[root@dmdb dmdata]# cd /home/dmdba/dmdbms/ [root@dmdb dmdbms]# rm -rf * [root@dmdb ~]# cd /dmdata/ [root@dmdb dmdata]# ls -lrt 总用量 0 drwxr-xr-x 2 dmdba dinstall 6 2月 11 11:25 arch drwxr-xr-x 2 dmdba dinstall 6 2月 11 11:26 dmbak drwxr-xr-x 3 dmdba dinstall 20 2月 11 12:01 data [root@dmdb dmdata]# rm -rf *
复制
命令卸载
--进入卸载目录 如:/home/dmdba/dmdbms,执行卸载命令 [dmdba@dmdb dmdbms]$ ./uninstall.sh -i 使用 root 用户执行脚本文件: [root@dmdb ~]# /home/dmdba/dmdbms/root_uninstaller.sh Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service. Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
复制
启停数据库
启动数据库
[dmdba@dmdb ~]$ cd /home/dmdba/dmdbms/bin [dmdba@dmdb bin]$ ./DmServiceDMSERVER start Starting DmServiceDMSERVER: [ OK ] --DmServiceDMSERVER中的DMSERVER是实例名,根据具体环境来
复制
停止数据库
[dmdba@dmdb ~]$ cd /home/dmdba/dmdbms/bin [dmdba@dmdb bin]$ ./DmServiceDMSERVER stop Stopping DmServiceDMSERVER: [ OK ] --DmServiceDMSERVER中的DMSERVER是实例名,根据具体环境来
复制
重启数据库
[dmdba@dmdb ~]$ cd /home/dmdba/dmdbms/bin [dmdba@dmdb bin]$ ./DmServiceDMSERVER restart DmServiceDMSERVER service is stopped. Starting DmServiceDMSERVER: [ OK ] --DmServiceDMSERVER中的DMSERVER是实例名,根据具体环境来
复制
查看数据库状态
[dmdba@dmdb bin]$ ps -ef|grep dmserver dmdba 8085 1 8 23:52 pts/0 00:00:04 /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DMDB/dm.ini -noconsole dmdba 8246 4419 0 23:53 pts/0 00:00:00 grep dmserver [dmdba@dmdb bin]$ netstat -tnlp|grep 523 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 :::5236 :::* LISTEN 8085/dmserver [dmdba@dmdb bin]$ cd /home/dmdba/dmdbms/bin [dmdba@dmdb bin]$ ./DmServicePROD status DmServicePROD (pid 8085) is running. --DmServicePROD中的PROD是实例名,根据具体环境来
复制
连接数据库
命令行连接
连接方式:./disql 用户名/密码@服务器IP:数据库实例端口号
[dmdba@dmdb ~]$ disql sysdba/Dameng123@10.10.10.123:5236 或 SQL> conn sysdba/Dameng123@10.10.10.123:5236
复制
连接字符串连接
[dmdba@dmdb ~]$ vi /etc/dm_svc.conf TIME_ZONE=(480) LANGUAGE=(CN) db=(10.10.10.123:5236) [dmdba@dmdb ~]$ disql sysdba/Dameng123@db
复制
结语
达梦数据库提供了直观的管理界面工具,方便您进行数据库的日常维护和管理。通过简单的配置,您可以快速创建数据库、表和用户,开始您的达梦数据库体验之旅吧。