暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

达梦数据库初体验:手把手教你从零搭建数据库

原创 szrsu 2025-02-20
329

达梦数据库,作为老牌国产数据库之一,近年来在数据库领域崭露头角。它不仅在技术上实现了自主可控,还在功能和性能上逐渐完善。在设计上借鉴了 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 
解压安装程序......... 
硬件架构校验通过!
复制

image-20250211113353126

image.png

image-20250211113425792

image-20250211113455391

image-20250211113705457

image-20250211113800630

在这里插入图片描述
在这里插入图片描述

执行配置脚本:

[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

复制

image-20250211114948645

image-20250211115036158

image-20250211115105994
在这里插入图片描述

设置数据库名、实例名及端口号

image-20250211115528636

image-20250211115816768

选择页大小、簇大小、字符集等

在这里插入图片描述

此处设置为DMdba123

image-20250211120012135
在这里插入图片描述
在这里插入图片描述

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 ~]# 

复制

image-20250211120350118

image-20250211120417348

重启数据库

[root@dmdb ~]# systemctl restart DmServiceDMSERVER.service
[root@dmdb ~]# 

复制

image-20250211120536713

点击完成,至此达梦数据库安装完成,可以开始使用了。

命令行配置

使用 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
复制

image-20250213230004185

image-20250213230021856
在这里插入图片描述

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
复制

结语

达梦数据库提供了直观的管理界面工具,方便您进行数据库的日常维护和管理。通过简单的配置,您可以快速创建数据库、表和用户,开始您的达梦数据库体验之旅吧。

最后修改时间:2025-02-21 11:18:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论