根据《系统管理员手册》第一章,DM8 中 “数据库”(磁盘上的文件集合)和 “实例”(内存结构+后台线程)是两个完全不同的实体。今天的实战,就是要把这两个概念在 Linux 系统中“立”起来。
环境信息:
为了安全和权限隔离,我们必须创建独立的用户。
# 创建用户组
groupadd dinstall -g 2001
# 创建用户,指定组为 dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
# 初始化密码
passwd dmdba
数据库是高并发系统,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
技术注:如果不修改,高负载下数据库的性能将会受到影响。
我们要遵循《系统管理员手册》中的最佳实践,规划好软件安装目录。
##实例保存目录
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
假设你已经上传了 ISO 文件到服务器。
mount -o loop dm8_20251016_x86_rh6_64.iso /mnt
切记:切换到 dmdba 用户!
su - dmdba
cd /mnt
./DMInstall.bin -i
这里需要根据提示进行选择,关键步骤如下:
语言选择: 输入1(中文)。
Key 文件: 如果没有 Key,选择 n (试用版,有效期一年,适合开发测试环境)。
时区:输入 21 (中国标准时间)。
安装类型:输入 1 (典型安装,包含服务端、客户端、驱动等所有组件)。
安装路径:使用默认安装目录/home/dmdba/dmdbms。
安装最后,会提示使用 root 用户执行脚本。这是为了注册服务等特权操作。
# 使用 root 执行
/home/dmdba/dmdbms/script/root/root_installer.sh
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。命令如下:
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
编辑 .bash_profile,使其最终效果如下图所示:
vim /home/dmdba/.bash_profile
切换到dmdba用户下,使环境变量生效
su - dmdba
source ~/.bash_profile
软件装好了,现在要创建“数据库”(物理文件)。这步是重中之重,因为很多核心参数一旦初始化就无法修改。
根据《系统管理员手册》第 6.3 节,我们要使用 dminit 工具。
我们构建一个通用的开发测试环境:
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=******
初始化完成后,在 /dm8/data/DAMENG 目录下会生成 dm.ini(配置文件)、dm.ctl(控制文件)以及 *.DBF(数据文件)。这就是手册里说的物理存储结构。
为了让数据库能像系统服务一样随开机自启,我们需要注册服务。
使用 root 用户运行脚本:
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
参数说明:-t指定服务类型,-p指定服务后缀名
现在,我们可以用系统命令来管理数据库了:
systemctl start DmServiceDMTEST systemctl status DmServiceDMTEST
这是最常用的运维工具,类似于 Oracle 的 sqlplus。
./disql SYSDBA/******:5236
SELECT * FROM V$TABLESPACE;
注:这需要在有图形界面的环境或通过 Xmanager 远程调用。
运行 /home/dmdba/dmdbms/tool/manager。这个工具类似于 PL/SQL Developer,可以可视化的进行用户管理、表空间管理、数据迁移等。
CREATE TABLESPACE "TEST_TBS" DATAFILE 'TEST_TBS.DBF' SIZE 128;通过本周的实战,我深刻体会到了 DM8 “单进程多线程” 架构的精妙。
按照落地计划,接下来的几周我将深入研究 DM 的体系结构(内存结构、线程结构)以及 SQL 调优。达梦数据库的探索之旅,才刚刚开始!
文章
阅读量
获赞
