注册
CentOS 7 下 DM8 深度部署与体系结构初探
技术分享/ 文章详情 /

CentOS 7 下 DM8 深度部署与体系结构初探

KAl 2025/12/12 77 0 0

从零开始:CentOS 7 下 DM8 深度部署与体系结构初探

前言:为什么是 DM8?

根据《系统管理员手册》第一章,DM8 中 “数据库”(磁盘上的文件集合)和 “实例”(内存结构+后台线程)是两个完全不同的实体。今天的实战,就是要把这两个概念在 Linux 系统中“立”起来。

第一阶段:环境准备

环境信息:

  • OS: CentOS Linux 7 (Core)
  • DB: DM8 (达梦数据库管理系统 V8)
  • User: dmdba (专用的数据库用户,严禁使用 root 裸奔)

1.1 创建用户与组

为了安全和权限隔离,我们必须创建独立的用户。

# 创建用户组 groupadd dinstall -g 2001 # 创建用户,指定组为 dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba # 初始化密码 passwd dmdba

1.2 修改文件打开最大数(ulimit)

数据库是高并发系统,Linux 默认的 1024 个文件句柄根本不够用。
操作: 编辑 /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

技术注:如果不修改,高负载下数据库的性能将会受到影响。

1.3 规划安装目录

我们要遵循《系统管理员手册》中的最佳实践,规划好软件安装目录。

##实例保存目录 mkdir -p /dmdata/data ##归档保存目录 mkdir -p /dmdata/arch ##备份保存目录 mkdir -p /dmdata/dmbak ##将文件所有者修改为 dmdba chown dmdba:dinstall /dmdata/data /dmdata/arch /dmdata/dmbak -R ##给路径下的文件设置 755 权限 chmod -R 755 /dmdata/data /dmdata/arch /dmdata/dmbak

第二阶段:DM8软件安装(CLI 方式)

2.1 挂载镜像

假设你已经上传了 ISO 文件到服务器。

mount -o loop dm8_20251016_x86_rh6_64.iso /mnt

2.2 启动安装程序

切记:切换到 dmdba 用户!

su - dmdba cd /mnt ./DMInstall.bin -i

2.3 交互式安装步骤

这里需要根据提示进行选择,关键步骤如下:

  1. 语言选择: 输入1(中文)。

  2. Key 文件: 如果没有 Key,选择 n (试用版,有效期一年,适合开发测试环境)。

  3. 时区:输入 21 (中国标准时间)。

  4. 安装类型:输入 1 (典型安装,包含服务端、客户端、驱动等所有组件)。

  5. 安装路径:使用默认安装目录/home/dmdba/dmdbms。

image20251205150938119.png

安装最后,会提示使用 root 用户执行脚本。这是为了注册服务等特权操作。

# 使用 root 执行 /home/dmdba/dmdbms/script/root/root_installer.sh

image20251205151141237.png

2.4 配置环境变量

切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。命令如下:

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

编辑 .bash_profile,使其最终效果如下图所示:

vim /home/dmdba/.bash_profile

image20251205151525410.png

切换到dmdba用户下,使环境变量生效

su - dmdba source ~/.bash_profile

第三阶段:初始化数据库实例

软件装好了,现在要创建“数据库”(物理文件)。这步是重中之重,因为很多核心参数一旦初始化就无法修改

根据《系统管理员手册》第 6.3 节,我们要使用 dminit 工具。

3.1 关键参数解析

  • PAGE_SIZE (页大小): 默认为 8K。如果你的业务有很多长文本,建议设为 16K 或 32K。注意:建库后不能修改!
  • CASE_SENSITIVE (大小写敏感): 默认为 Y。这决定了 Select 和 select 是否一样,以及表名是否区分大小写。迁移 Oracle 通常设为 Y,迁移 MySQL/SQLServer 通常设为 N。
  • CHARSET (字符集): 0 代表 GB18030,1 代表 UTF-8。

3.2 执行初始化

我们构建一个通用的开发测试环境:

cd /home/dmdba/dmdbms/bin ./dminit path=/dmdata/data PAGE_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5236 SYSDBA_PWD=****** SYSAUDITOR_PWD=******

image20251205153327697.png

初始化完成后,在 /dm8/data/DAMENG 目录下会生成 dm.ini(配置文件)、dm.ctl(控制文件)以及 *.DBF(数据文件)。这就是手册里说的物理存储结构

第四阶段:注册服务与启动(Service)

为了让数据库能像系统服务一样随开机自启,我们需要注册服务。

4.1 注册服务

使用 root 用户运行脚本:

cd /home/dmdba/dmdbms/script/root/ ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST

参数说明:-t指定服务类型,-p指定服务后缀名

4.2 启动数据库

现在,我们可以用系统命令来管理数据库了:

systemctl start DmServiceDMTEST systemctl status DmServiceDMTEST

image20251205154708645.png

第五阶段:工具连接与实操验证

5.1 使用 Disql (CLI 工具)

这是最常用的运维工具,类似于 Oracle 的 sqlplus。

./disql SYSDBA/******:5236
SELECT * FROM V$TABLESPACE;

image20251205155037724.png

5.2 使用 DM 管理工具 (GUI 工具)

注:这需要在有图形界面的环境或通过 Xmanager 远程调用。
运行 /home/dmdba/dmdbms/tool/manager。这个工具类似于 PL/SQL Developer,可以可视化的进行用户管理、表空间管理、数据迁移等。

  1. 连接数据库

image20251205161018098.png

  1. 创建表空间:CREATE TABLESPACE "TEST_TBS" DATAFILE 'TEST_TBS.DBF' SIZE 128;
    image20251205161233570.png

总结与思考

通过本周的实战,我深刻体会到了 DM8 “单进程多线程” 架构的精妙。

  1. dminit 阶段确定的 PAGE_SIZE 直接决定了 B 树的存储效率。
  2. dm.ini 配置文件是实例的大脑,控制着内存池(Buffer Pool)和线程的行为。
  3. Linux 下的规范化部署(用户隔离、限制配置、服务注册)是生产环境稳定运行的基石。

按照落地计划,接下来的几周我将深入研究 DM 的体系结构(内存结构、线程结构)以及 SQL 调优。达梦数据库的探索之旅,才刚刚开始!

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服