news 2026/3/21 20:28:18

DM数据库麒麟操作系统实操指南:从安装到开发的国产化适配之路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DM数据库麒麟操作系统实操指南:从安装到开发的国产化适配之路

一、DM 数据库安装与环境配置(Kylin OS V10 场景)

1. 安装前置准备
  • 硬件要求:CPU≥2 核(支持 x86_64/ARM 架构)、内存≥4G、磁盘空间≥20G(建议 SSD)
  • 依赖库安装:麒麟系统默认使用 dnf 包管理器,执行以下命令补全依赖

# 安装基础依赖(兼容32位/64位)

dnf install -y glibc.i686 libstdc++.i686 libaio.i686 net-tools libaio-devel

# ARM架构额外安装(若适用)

dnf install -y glibc.aarch64 libstdc++.aarch64 libaio.aarch64

  • 系统环境配置:关闭 SELINUX(麒麟系统默认开启,可能影响安装)

# 临时关闭

setenforce 0

# 永久关闭(编辑配置文件)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

  • 创建专用用户:遵循国产化安全规范,避免 root 权限运行

useradd -m dmuser && passwd dmuser

chmod 755 /home/dmuser

# 赋予目录权限(麒麟系统需额外配置)

chown -R dmuser:dmuser /opt /home/dmuser

2. 图形化安装步骤(兼容麒麟桌面环境)
  1. 上传 DM 数据库安装包(如 dm8_20230808_x86_kylin10_64.iso)至/opt目录
  2. 挂载镜像(麒麟系统支持直接挂载 ISO 文件)

mount /opt/dm8_20230808_x86_kylin10_64.iso /mnt

# 若挂载失败,执行:mount -o loop /opt/xxx.iso /mnt

  1. 切换至 dmuser 用户,启动安装向导(麒麟系统需确保图形环境正常)

su - dmuser

/mnt/DMInstall.bin

  1. 安装向导配置(国产化适配要点):
    • 选择 “典型安装”,安装路径设为/home/dmuser/dmdbms(避免权限冲突)
    • 字符集默认 UTF-8(适配国产化应用编码规范)
    • 端口保持 5236(麒麟系统默认放行,无需额外配置)
    • 安装完成后,按提示执行 root 脚本(关键步骤)

/home/dmuser/dmdbms/script/root/root_installer.sh

3. 实例创建与服务管理(麒麟系统 systemctl 适配)
  • 图形化创建实例:运行麒麟系统兼容的工具脚本

su - dmuser

/home/dmuser/dmdbms/tool/dbca.sh

配置项:

  • 实例名:DMSERVER,端口 5236
  • 数据文件路径:/home/dmuser/dmdata(确保 dmuser 有读写权限)
  • 日志模式:归档模式(生产环境必选,适配国产化合规要求)
  • 命令行启动 / 停止(麒麟系统服务管理)

# 注册系统服务(仅首次执行)

/home/dmuser/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /home/dmuser/dmdata/DMSERVER/dm.ini

# 启动服务

systemctl start DmServiceDMSERVER

# 停止服务

systemctl stop DmServiceDMSERVER

# 设置开机自启(国产化部署必备)

systemctl enable DmServiceDMSERVER

# 查看服务状态

systemctl status DmServiceDMSERVER

二、核心运维:备份与还原(麒麟系统环境适配)

1. 全量备份(命令行方式,兼容麒麟系统权限)

-- 登录数据库(麒麟系统本地连接,指定字符集)

/home/dmuser/dmdbms/bin/disql SYSDBA/SYSDBA@localhost:5236 -ENCODING UTF-8

-- 执行全量备份(麒麟系统支持的磁盘路径格式)

BACKUP DATABASE FULL TO BACKUP_20240520 BACKUPSET '/home/dmuser/dmbackup/BACKUP_20240520';

-- 验证备份集(国产化环境需定期校验)

SELECT SF_BAKSET_CHECK('DISK', '/home/dmuser/dmbackup/BACKUP_20240520');

2. 异机还原步骤(麒麟系统间数据迁移)
  1. 复制备份集至目标麒麟服务器(建议使用 scp 命令,保持权限一致)

scp -r /home/dmuser/dmbackup/BACKUP_20240520 dmuser@目标IP:/home/dmuser/dmbackup/

  1. 目标服务器执行还原(麒麟系统 mount 模式启动)

-- 停止服务

systemctl stop DmServiceDMSERVER

-- 麒麟系统mount模式启动(指定配置文件)

dmserver /home/dmuser/dmdata/DMSERVER/dm.ini mount

-- 登录disql执行还原

/home/dmuser/dmdbms/bin/disql SYSDBA/SYSDBA@localhost:5236

RESTORE DATABASE FROM BACKUPSET '/home/dmuser/dmbackup/BACKUP_20240520';

RECOVER DATABASE FROM BACKUPSET '/home/dmuser/dmbackup/BACKUP_20240520';

ALTER DATABASE OPEN;

-- 重启服务

systemctl restart DmServiceDMSERVER

3. 国产化环境备份策略建议
  • 适配麒麟系统定时任务:使用 crontab 配置自动备份(避免使用 Windows 风格任务计划)

# 编辑dmuser的定时任务

su - dmuser

crontab -e

# 添加每日全量备份(凌晨2点执行)

0 2 * * * /home/dmuser/dmdbms/bin/disql SYSDBA/SYSDBA@localhost:5236 -c "BACKUP DATABASE FULL TO BACKUP_$(date +\%Y\%m\%d) BACKUPSET '/home/dmuser/dmbackup/BACKUP_$(date +\%Y\%m\%d)';"

  • 归档日志配置:麒麟系统下修改 dm.ini 文件,确保日志路径存在且权限正确

ARCH_INI = 1 # 开启归档

ARCH_DEST = /home/dmuser/dmarch # 归档日志路径(需手动创建)

  • 备份集存储:建议同步至国产化存储设备(如华为 OceanStor),符合数据安全要求

三、DM 函数实战:常用函数用法与示例(与系统无关,保持原逻辑)

1. 字符串函数

函数名

功能

示例

结果

CONCAT

字符串拼接

CONCAT('DM', '数据库')

'DM 数据库'

SUBSTR

截取字符串

SUBSTR('DM8企业版', 3, 4)

' 企业版'

TRIM

去除空格

TRIM(' DM数据库 ')

'DM 数据库'

2. 日期函数(重点)

-- 当前日期时间

SELECT SYSDATE FROM DUAL; -- 2024-05-20 14:30:25

-- 日期加减

SELECT SYSDATE + INTERVAL '3' DAY FROM DUAL; -- 3天后日期

SELECT DATEADD(MM, 1, SYSDATE) FROM DUAL; -- 1个月后日期

-- 日期格式化(适配国产化应用日期格式)

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; -- 自定义格式

3. 聚合函数与分析函数

-- 聚合函数:统计订单总额

SELECT ORDER_DATE, SUM(AMOUNT) AS TOTAL_AMOUNT

FROM ORDERS

GROUP BY ORDER_DATE

HAVING SUM(AMOUNT) > 1000;

-- 分析函数:排名(按销售额降序)

SELECT PRODUCT_ID, SALE_AMOUNT,

RANK() OVER (ORDER BY SALE_AMOUNT DESC) AS SALE_RANK

FROM PRODUCT_SALES;

四、SQL 开发实战:复杂查询与程序设计(保持原逻辑,补充麒麟环境注意事项)

1. 多表关联查询(电商订单场景)

SELECT

u.USER_ID, u.USER_NAME, o.ORDER_ID, o.ORDER_DATE,

o.TOTAL_AMOUNT, p.PRODUCT_NAME

FROM

USERS u

JOIN ORDERS o ON u.USER_ID = o.USER_ID

JOIN ORDER_DETAIL od ON o.ORDER_ID = od.ORDER_ID

JOIN PRODUCT p ON od.PRODUCT_ID = p.PRODUCT_ID

WHERE

o.ORDER_DATE BETWEEN '2024-05-01' AND '2024-05-31'

ORDER BY o.ORDER_DATE DESC;

2. DM 存储过程设计(数据同步场景,适配麒麟系统编码)

CREATE OR REPLACE PROCEDURE SYNC_USER_HISTORY

AS

V_RET INT;

BEGIN

-- 插入历史数据

INSERT INTO USER_HISTORY

SELECT * FROM USERS

WHERE CREATE_TIME < ADD_MONTHS(SYSDATE, -3);

-- 删除3个月前数据

DELETE FROM USERS

WHERE CREATE_TIME THS(SYSDATE, -3);

COMMIT;

V_RET := 1; -- 执行成功

EXCEPTION

WHEN OTHERS THEN

ROLLBACK;

V_RET := 0; -- 执行失败

RAISE_APPLICATION_ERROR(-20001, '同步失败:' || SQLERRM);

END;

/

-- 调用存储过程(麒麟系统下正常执行)

CALL SYNC_USER_HISTORY();

3. 动态 SQL 应用(灵活查询场景)

CREATE OR REPLACE PROCEDURE QUERY_ORDER(

P_USER_ID IN INT,

P_START_DATE IN DATE,

P_END_DATE IN DATE,

P_RESULT OUT SYS_REFCURSOR

)

AS

V_SQL VARCHAR2(1000);

BEGIN

V_SQL := 'SELECT * FROM ORDERS WHERE 1=1';

-- 动态拼接条件

IF P_USER_ID IS NOT NULL THEN

V_SQL := V_SQL || ' AND USER_ID = ' || P_USER_ID;

END IF;

IF P_START_DATE IS NOT NULL THEN

V_SQL := V_SQL || ' AND ORDER_DATE >= TO_DATE(''' || TO_CHAR(P_START_DATE, 'YYYY-MM-DD') || ''', ''YYYY-MM-DD'')';

END IF;

IF P_END_DATE IS NOT NULL THEN

V_SQL := V_SQL || ' AND ORDER_DATE || TO_CHAR(P_END_DATE, 'YYYY-MM-DD') || ''', ''YYYY-MM-DD'')';

END IF;

OPEN P_RESULT FOR V_SQL;

END;

/

五、麒麟系统特有问题解决思路与技巧

1. 安装失败:图形环境不兼容
  • 现象:执行 DMInstall.bin 后无响应,或提示 “无法启动图形界面”
  • 解决
    1. 安装麒麟系统图形依赖:dnf install -y xorg-x11-server-utils gtk2
    2. 若仍无法启动,使用命令行安装模式:

su - dmuser

/mnt/DMInstall.bin -i console

2. 服务启动失败:麒麟系统权限限制
  • 现象:systemctl start DmServiceDMSERVER 提示 “权限被拒绝”
  • 排查步骤
    1. 检查数据文件目录权限:ls -ld /home/dmuser/dmdata,确保属主为 dmuser
    2. 关闭麒麟系统防火墙(临时测试):systemctl stop firewalld
    3. 查看日志定位问题:cat /home/dmuser/dmdbms/log/DmServiceDMSERVER.log
3. 依赖库冲突:麒麟系统自带库版本不兼容
  • 现象:启动 dmserver 提示 “libstdc++.so.6: version `GLIBCXX_3.4.21' not found”
  • 解决
    1. 安装高版本 libstdc++:dnf install -y libstdc++-devel
    2. 建立软链接(临时适配):

ln -s /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

4. 备份失败:麒麟系统磁盘挂载权限
  • 现象:备份时提示 “无法写入备份集目录”
  • 解决
    1. 检查备份目录挂载属性:mount | grep /home/dmuser/dmbackup,确保无 “ro” 只读属性
    2. 重新挂载为可写:mount -o remount,rw /dev/sdb1 /home/dmuser/dmbackup(根据实际磁盘调整)

六、国产化环境进阶建议与资源推荐

  1. 官方适配资源
    • 达梦麒麟系统适配手册:达梦技术文档中心
    • 麒麟系统 DM 数据库安装视频教程:麒麟软件官方 B 站账号
  1. 工具推荐(国产化适配)
    • 图形化管理工具:DM Management Studio(麒麟版)
    • 性能监控:DM Performance Monitor + 麒麟系统自带 nmon 监控工具
    • 备份工具:DM Backup Tool + 麒麟系统备份软件(Kylin Backup)
  1. 国产化部署最佳实践
    • 架构选型:DM 主备模式 + 麒麟集群(Kylin Cluster),提升高可用
    • 安全配置:启用 DM 数据库审计功能 + 麒麟系统安全模块(Kylin Security)
    • 数据迁移:使用 DM 数据迁移工具(DTS),支持从 Oracle/MySQL 迁移至 DM(麒麟环境)

(注:文档部分内容可能由 AI 生成)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/20 9:05:28

计算机毕设java的品牌手机商城 基于Java的线上品牌手机销售平台开发与设计 Java技术驱动的品牌手机商城系统构建与实现

计算机毕设java的品牌手机商城3t59h9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着互联网技术的飞速发展&#xff0c;线上购物已成为人们生活中不可或缺的一部分。品牌手…

作者头像 李华
网站建设 2026/3/21 6:54:49

国产数据库技术学习心得:DM8 从入门到实战全攻略​

目录​ 课程学习背景与 DM 数据库简介​ DM8 数据库安装与环境配置&#xff08;图文教程&#xff09;​ 实例创建与初始化配置​ 核心功能实战&#xff1a;备份还原操作指南​ DM 函数用法与 SQL 查询实战​ DM SQL 程序设计思路与步骤​ 常见问题排查与技巧总结​ 学习…

作者头像 李华
网站建设 2026/3/21 3:31:31

打工人狂喜!Clipboard Helper 绿色工具,告别重复 Ctrl+C/V

做客服、行政或数据录入时&#xff0c;总要把同一套话术、数据复制粘贴到不同地方。日复一日的 CtrlC、CtrlV 循环&#xff0c;手没麻&#xff0c;心态先崩了 —— 这破班怎么还需要靠重复操作续命&#xff1f; 直到我挖到这款吾爱大神 dreamscd 原创的绿色工具&#xff0c;直…

作者头像 李华
网站建设 2026/3/14 15:48:30

GSV6715@ACP#6715产品规格详解及产品应用分享

GSV6715 产品参数详解与应用场景总结一、产品核心定位GSV6715 是由基石酷联&#xff08;GScoolink&#xff09;推出的4 进 1 出混合切换器芯片&#xff0c;主打 HDMI 2.1 与 DisplayPort 1.4 信号的灵活转换&#xff0c;最终输出 HDMI 2.1 信号。芯片集成了基于 RISC-V 架构的嵌…

作者头像 李华