news 2026/4/15 12:15:56

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/4/12 11:13:27

景区管理|基于springboot 景区管理系统(源码+数据库+文档)

景区管理 目录 基于springboot vue景区管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue景区管理系统 一、前言 博主介绍&#xff1a;✌️大…

作者头像 李华
网站建设 2026/4/10 23:41:51

基于SpringCloud的物流管理系统

文章目录 前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S 四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论 五、项目代码参考六、数据库代码参考七、项目论文示例结语 前言 &#x1f49b;博主介绍&a…

作者头像 李华
网站建设 2026/4/10 13:04:53

jenkins如何使用流水线 job

我来详细介绍 Jenkins Pipeline&#xff08;流水线&#xff09;的使用方法。一、Jenkins Pipeline 基础概念Jenkins Pipeline 是一套插件&#xff0c;支持将持续交付过程用代码方式&#xff08;Infrastructure as Code&#xff09;定义。主要优势&#xff1a;可版本控制&#x…

作者头像 李华
网站建设 2026/4/10 19:48:02

job pipeline如何使用token 触发

Jenkins Pipeline 使用 Token 触发构建的完整指南Jenkins Pipeline 支持多种通过 Token 触发构建的方式&#xff0c;主要包括 内置远程触发 和 Generic Webhook Trigger 插件 两种方式。下面详细介绍具体实现方法。一、生成 Token1. 用户 API Token&#xff08;用于认证&#x…

作者头像 李华