行业资讯

达梦数据库入门实战:从安装部署到基础管理全流程指南

发布时间:2026/8/18 7:04:16
达梦数据库入门实战:从安装部署到基础管理全流程指南 1. 从零开始为什么选择达梦数据库作为起点最近几年国产数据库的声量越来越大无论是政策导向还是技术成熟度都让很多开发者和企业开始认真考虑将国产数据库纳入技术栈。达梦数据库DM Database作为其中的老牌选手经常出现在各种国产化替代的清单里。我第一次接触它也是因为一个老项目的迁移需求当时市面上资料远没有现在丰富踩了不少坑。现在回头看对于想入门国产数据库或者需要评估技术选型的朋友来说达梦确实是一个不错的切入点。它不像一些新兴数据库那样激进其架构和语法对熟悉Oracle或MySQL的朋友来说上手门槛相对较低但又能让你快速建立起对国产数据库生态、工具链和管理模式的基本认知。简单来说达梦数据库是一个关系型数据库管理系统支持标准SQL具备事务、存储过程、触发器等核心特性。它既能跑在Windows上也能部署在Linux上甚至还有适配ARM架构的版本这在当前信创环境下非常关键。对于初学者而言你完全可以把学习达梦的过程看作是学习一个“带有国产数据库特色”的通用数据库知识。你之前积累的SQL功底、数据库设计思想在这里大部分都能复用。学习的重点在于熟悉达梦特有的管理工具、参数配置逻辑、以及一些与Oracle高度相似的PL/SQL方言。接下来我会以一个完全新手的视角带你走一遍从安装、连接到基础管理的完整流程并分享那些官方手册里不会写的实操细节和避坑指南。2. 环境准备与安装选对版本避开第一个坑安装是万里长征第一步但这第一步就可能让你卡住半天。达梦提供了多种安装包选择错误会导致后续一系列兼容性问题。2.1 版本与平台选择策略首先你需要明确自己的学习或测试环境。达梦数据库主要分为开发版和企业版对于个人学习和功能验证开发版完全足够它是免费的。在官网下载时你会看到针对不同操作系统Windows/Linux和不同CPU架构x86-64, ARM64, MIPS等的安装包。注意如果你的电脑是苹果M系列芯片ARM架构或者你需要在国产化ARM服务器如华为鲲鹏、飞腾上部署务必选择对应的ARM版本安装包。x86的安装包在ARM机器上根本无法运行这是初学者最容易忽略的一点。对于Linux系统我个人强烈建议使用CentOS 7.x或麒麟V10等主流国产操作系统作为学习环境它们的兼容性经过大量验证。如果你习惯用Windows直接下载Windows版的安装包即可图形化安装过程非常友好。2.2 Linux环境下的静默安装实战图形化安装虽然简单但作为未来的管理员掌握命令行静默安装是必备技能。这能让你在无界面的服务器上从容部署。假设我们已经下载了Linux版的安装包dm8_setup_rh7_64_ent_8.1.1.xx.iso这是一个ISO镜像文件。第一步挂载镜像并准备安装用户。# 创建挂载点并挂载ISO文件 mkdir -p /mnt/dm mount -o loop /path/to/dm8_setup_rh7_64_ent_8.1.1.xx.iso /mnt/dm # 创建达梦专用的安装用户和组不能使用root用户直接安装 groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba echo dmdba | passwd --stdin dmdba这里创建dmdba用户是达梦的强制要求主要是出于安全和管理隔离的考虑。第二步使用dmdba用户执行静默安装。我们需要先准备一个响应文件dm_install.xml告诉安装程序我们的选择。?xml version1.0? DATABASE !-- 安装类型典型安装 -- TYPE0/TYPE !-- 安装路径确保dmdba用户有读写权限 -- INSTALL_PATH/opt/dmdbms/INSTALL_PATH !-- 是否初始化数据库选是 -- INIT_DB1/INIT_DB !-- 数据库实例参数 -- DB_NAMEDAMENG/DB_NAME PORT_NUM5236/PORT_NUM SYSTEM_PWDDameng123/SYSTEM_PWD SYSDBA_PWDSYSDBA/SYSDBA_PWD /DATABASE这个XML文件定义了安装类型、路径、以及是否在安装后直接创建一个数据库实例。其中PORT_NUM是数据库监听端口默认为5236SYSTEM_PWD是操作系统用户SYSTEM的密码SYSDBA_PWD是数据库超级管理员SYSDBA的密码这里设置为默认的SYSDBA生产环境一定要改第三步以dmdba用户身份运行安装命令。# 切换到dmdba用户 su - dmdba # 进入挂载目录执行安装指定响应文件 cd /mnt/dm ./DMInstall.bin -q /home/dmdba/dm_install.xml-q参数表示静默安装。安装过程大概需要几分钟完成后会在/opt/dmdbms下生成达梦的安装目录。实操心得1权限与路径陷阱安装后务必检查/opt/dmdbms目录及其子目录的所有者是否为dmdba:dinstall。有时安装脚本可能在某些子目录上留下root权限这会导致后续数据库启动失败。可以用chown -R dmdba:dinstall /opt/dmdbms统一修正。另外安装路径不要包含中文或特殊字符尽量使用像/opt/dmdbms或/home/dmdba/dmdbms这样的标准路径。2.3 Windows环境下的图形化安装要点Windows下的安装就直观多了运行setup.exe一路点击“下一步”即可。但有几个关键点需要注意安装路径同样建议选择纯英文路径如D:\dmdbms。实例配置在“初始化数据库”环节你会设置数据库实例名、端口、字符集和密码。字符集这里是个大坑默认可能是GB18030但如果你未来可能需要处理多语言数据或与UTF-8编码的应用对接强烈建议选择UTF-8或UNICODE。一旦创建字符集后期更改极其麻烦需要重建数据库。服务注册安装程序会询问是否注册达梦数据库服务到Windows服务管理器建议勾选。这样以后可以通过“服务”来启动和停止数据库比命令行方便。安装完成后在开始菜单或安装目录下你会找到达梦自带的图形化管理工具“DM管理工具”和“DM服务查看器”它们是后续操作的主要入口。3. 核心工具链解析不止于Navicat安装好数据库下一步就是连接和管理。很多人第一个想到的就是用熟悉的Navicat。这没问题但达梦自己的工具链其实更强大、更“原生”能帮你解决很多Navicat搞不定的问题。3.1 官方管理工具DM管理工具详解这是达梦的“旗舰级”图形化管理客户端功能非常全面类似于Oracle的SQL Developer或PL/SQL Developer。首次打开你需要创建一个新的连接连接名自定义如“本地测试库”。主机localhost 或 127.0.0.1本地或服务器IP。端口5236默认。用户名/密码SYSDBA / 你安装时设置的密码。连接成功后左侧是对象浏览器可以查看所有表、视图、存储过程等。右侧是SQL编辑器和执行结果窗口。它的优势在于完整的模式对象管理创建、修改表、索引、视图等有直观的图形界面。SQL调试与优化支持PL/SQL调试可以查看执行计划对性能调优很有帮助。备份还原提供图形化的备份、还原和作业调度功能比命令行更易用。会话与锁监控可以实时查看当前有哪些用户连接哪些SQL正在执行有没有死锁这是运维排障的神器。实操心得2解决DM管理工具连接慢的问题有时候DM管理工具首次连接或打开对象树时会很慢。这通常不是因为数据库慢而是工具在后台查询大量系统视图来刷新界面。可以在“工具”-“选项”里关闭“对象浏览器自动刷新”或增大“查询超时时间”。对于日常SQL编写和调试这个工具比Navicat更专业。3.2 使用Navicat连接达梦的完整指南尽管官方工具强大但Navicat因其优秀的用户体验和跨数据库管理能力依然是很多人的首选。要让Navicat连接达梦关键一步是配置正确的驱动。首先你需要从达梦安装目录如/opt/dmdbms/drivers/jdbc或D:\dmdbms\drivers\jdbc找到JDBC驱动文件主要是DmJdbcDriver18.jar对应JDK 1.8。然后在Navicat中新建一个连接数据库类型选择“其他” - “ODBC”。别急这里不是真用ODBC而是一个通用接口。接下来是关键配置在“连接”设置页自定义连接名主机和端口填对。切换到“高级”选项卡找到“JDBC”一栏。驱动程序类名填入dm.jdbc.driver.DmDriverJDBC URL填入格式为jdbc:dm://主机名:端口号?参数例如jdbc:dm://localhost:5236?schemaSYSDBAcompatibleModeoracle类路径点击后面的“...”按钮添加你刚才找到的DmJdbcDriver18.jar文件。用户名和密码填SYSDBA及其密码。这里URL中的compatibleModeoracle参数非常重要它告诉驱动以Oracle兼容模式进行通信能更好地支持Navicat的一些高级特性。配置完成后点击“测试连接”如果成功你就可以像管理MySQL或Oracle一样使用Navicat来操作达梦数据库了包括数据导入导出、模型设计等。常见问题1Navicat测试连接报错“未找到驱动程序”这几乎100%是因为类路径没有正确添加JAR文件或者添加了错误版本的JAR。请确认添加的JAR文件路径无误。驱动程序类名完全正确大小写敏感。你的Navicat版本是Premium高级版或以上因为标准版可能不支持自定义JDBC驱动。3.3 不可或缺的命令行工具disql图形化工具虽好但在服务器运维、批量脚本执行时命令行工具disql才是王道。它类似于Oracle的sqlplus。使用前需要配置环境变量或者直接进入安装目录的bin文件夹下执行。连接数据库# Linux下切换到dmdba用户 su - dmdba cd /opt/dmdbms/bin ./disql SYSDBA/SYSDBAlocalhost:5236 # Windows下打开CMD进入安装目录的bin文件夹 cd D:\dmdbms\bin disql SYSDBA/SYSDBAlocalhost:5236连接成功后会显示SQL提示符。你可以执行所有SQL语句。几个常用命令SELECT * FROM v$instance;-- 查看数据库实例信息。SPOOL /home/dmdba/query.log-- 将后续屏幕输出记录到日志文件。SPOOL OFF-- 停止记录。EDIT-- 编辑上一条SQL语句在Linux下会调用vi编辑器。/-- 执行当前缓冲区的SQL在disql里分号不是执行语句的必须输入/或直接回车到空行才执行。实操心得3disql中的脚本执行与输出控制如果你想通过shell脚本批量执行SQL可以这样echo exit | ./disql SYSDBA/SYSDBAlocalhost:5236 \/home/dmdba/init.sql\注意这里SQL文件路径前有一个反引号这是disql特有的语法表示执行脚本文件。脚本执行完毕后通过管道输入“exit”退出disql。这对于自动化部署初始化数据库非常有用。4. 数据库基础管理实操从创建用户到数据导入连接上数据库后我们就要开始做一些实质性的管理工作了。这部分我们抛开简单的建表语句聚焦于那些有达梦特色或者容易出错的日常管理任务。4.1 用户、表空间与权限管理达梦的用户和权限体系与Oracle非常相似。默认安装后只有SYSDBA和SYSAUDITOR等系统内置用户。我们首先要创建自己的业务用户。-- 1. 创建表空间数据文件初始大小100M自动扩展每次扩展50M最大限制2G CREATE TABLESPACE MY_DATA DATAFILE MY_DATA01.DBF SIZE 100 AUTOEXTEND ON NEXT 50 MAXSIZE 2048; -- 2. 创建用户并指定默认表空间和临时表空间 CREATE USER MY_USER IDENTIFIED BY MyPass123 DEFAULT TABLESPACE MY_DATA TEMPORARY TABLESPACE TEMP; -- 3. 授予用户基本权限连接和资源角色 GRANT PUBLIC, RESOURCE TO MY_USER; -- 4. 授予用户在特定表空间上的无限配额权限否则用户无法创建表 ALTER USER MY_USER QUOTA UNLIMITED ON MY_DATA;这里有几个关键点表空间达梦强烈建议为不同应用创建独立的表空间便于管理和备份。AUTOEXTEND ON很重要避免数据写满导致业务中断。用户密码达梦的密码策略默认可能比较严格可能要求大小写数字混合。如果创建失败可以先用SYSDBA登录执行sp_set_para_value(1, PWD_POLICY, 0);临时关闭密码复杂度策略生产环境不推荐。权限PUBLIC角色包含最基本的连接权限RESOURCE角色允许用户创建表、视图、过程等对象。更细粒度的权限可以使用GRANT SELECT ON 表名 TO 用户名;来授予。4.2 字符集与兼容性参数设置字符集问题一旦出错就是灾难性的。安装时若选错或者从其他数据库迁移数据时字符集不匹配会导致乱码。我们可以查看和修改一些兼容性参数让达梦更好地适应你的应用环境。-- 查看数据库字符集和国家字符集 SELECT * FROM V$PARAMETER WHERE NAME LIKE %CHARACTER_SET%; -- 查看服务器端和客户端的编码设置 SELECT SF_GET_UNICODE_FLAG(); -- 返回1表示UNICODE0表示非UNICODE -- 设置兼容模式会话级重启后失效 SET COMPATIBLE_MODE 2; -- 2表示兼容Oracle模式对使用Oracle语法的应用非常友好 -- 或者修改系统参数需要重启数据库 SP_SET_PARA_VALUE(2, COMPATIBLE_MODE, 2);COMPATIBLE_MODE这个参数至关重要。设置为Oracle兼容模式后达梦会模拟Oracle的很多行为比如双引号处理、空字符串视为NULL、序列的使用方式等能极大减少应用代码的改造量。4.3 使用dimp和dexp进行数据迁移达梦自带的数据导出dexp和导入dimp工具类似于Oracle的exp/imp是进行逻辑备份和迁移的利器。它们都是命令行工具功能强大。场景将MY_USER用户下的所有对象导出cd /opt/dmdbms/bin ./dexp SYSDBA/SYSDBAlocalhost:5236 DIRECTORY/home/dmdba/backup FILEmy_user_full.dmp LOGmy_user_exp.log OWNERMY_USER参数解释DIRECTORY导出文件存放目录达梦8需要提前用CREATE DIRECTORY语句创建逻辑目录并授权这里为了简化直接使用操作系统路径需要工具在数据库服务器本地执行。FILE导出的DMP文件名。LOG导出过程的日志文件。OWNER按用户导出。场景将上述导出文件导入到另一个数据库或同一库的不同用户./dimp SYSDBA/SYSDBAlocalhost:5236 DIRECTORY/home/dmdba/backup FILEmy_user_full.dmp LOGmy_user_imp.log REMAP_SCHEMAMY_USER:NEW_USER TABLE_EXISTS_ACTIONREPLACE参数解释REMAP_SCHEMA将原用户MY_USER的对象导入到新用户NEW_USER下。NEW_USER需要提前创建好并有相应权限。TABLE_EXISTS_ACTION当表已存在时的处理方式。REPLACE表示先删除原表再创建APPEND表示追加数据TRUNCATE表示清空表再插入。实操心得4大数据量导出导入的优化对于数据量很大的情况直接导出导入可能很慢甚至内存溢出。可以尝试以下优化使用PARALLEL4参数启用并行加快速度。使用COMPRESSY参数压缩导出文件减少磁盘IO。分批导出导入使用QUERY\WHERE create_time 2023-01-01\这样的条件进行过滤。导入时可以先禁用约束和索引导入完成后再重建能大幅提升速度。./dimp ... TABLE_EXISTS_ACTIONREPLACE CONSTRAINTSN INDEXESN -- 导入完成后在disql中连接NEW_USER执行脚本重建索引 -- /path/to/rebuild_indexes.sql5. 常见问题排查与性能调优入门数据库运行起来后难免会遇到连接不上、SQL跑得慢等问题。掌握基本的排查思路是运维能力的体现。5.1 连接类问题排查清单当应用或客户端无法连接到达梦数据库时可以按照以下顺序排查数据库服务是否启动Linux:systemctl status DmServiceDMSERVER(服务名可能不同可用systemctl list-units | grep dm查看)Windows: 在“服务”中查看 “DmAPService” 和以 “DmService” 开头的实例服务是否运行。监听端口是否正常在数据库服务器上执行netstat -tlnp | grep 5236。如果看不到监听可能是数据库实例没启动或者配置文件dm.ini中的PORT_NUM被修改了。防火墙是否放行Linux:firewall-cmd --query-port5236/tcp或iptables -L -n | grep 5236Windows: 检查Windows Defender防火墙或第三方防火墙规则。客户端网络是否通畅从客户端机器telnet 服务器IP 5236如果不通是网络问题。用户名密码是否正确权限是否足够用disql在服务器本地尝试连接排除网络问题。确认用户是否有CREATE SESSION权限。连接数是否已满用SYSDBA登录查询SELECT COUNT(*) FROM V$SESSIONS;对比SELECT * FROM V$PARAMETER WHERE NAME MAX_SESSIONS;查看当前会话数和最大会话数限制。5.2 SQL执行慢的初步分析思路一条SQL突然变慢或者新上的业务SQL效率低下可以按以下步骤分析第一步查看执行计划在DM管理工具或disql中对慢SQL执行EXPLAIN。EXPLAIN SELECT * FROM large_table WHERE user_name test;执行计划会显示访问路径是全表扫描CSCN还是索引扫描SSEK、连接方式、成本估算等。重点关注是否用上了你期望的索引。第二步检查统计信息是否过期达梦的优化器依赖统计信息来生成计划。如果表经过大量增删改统计信息可能失效。-- 收集某个表的统计信息 DBMS_STATS.GATHER_TABLE_STATS(MY_USER, LARGE_TABLE); -- 收集整个模式的统计信息 DBMS_STATS.GATHER_SCHEMA_STATS(MY_USER);定期更新统计信息是个好习惯。第三步检查锁等待有时候SQL慢是因为它在等待其他事务释放锁。-- 查看当前锁信息 SELECT * FROM V$LOCK; SELECT * FROM V$TRX; -- 查看正在执行的SQL SELECT SESS_ID, SQL_TEXT, STATE FROM V$SESSIONS WHERE STATE ACTIVE;如果发现阻塞找到阻塞会话的SESS_ID必要时可以用SP_CLOSE_SESSION(SESS_ID);谨慎地关闭会话生产环境需确认该会话可中断。第四步检查系统资源登录数据库服务器用top或htop查看CPU、内存、磁盘IO情况。数据库性能瓶颈常常转移到磁盘IO上。可以使用iostat -x 1查看磁盘利用率%util和响应时间await。5.3 基础性能优化建议对于初学者可以从以下几个低成本高收益的点入手优化索引优化确保查询条件WHERE, JOIN, ORDER BY中的字段有合适的索引。避免在索引列上使用函数或计算。达梦支持函数索引但需谨慎使用。SQL写法避免使用SELECT *只取需要的列。多表连接时确保连接条件上有索引。小心使用IN和NOT IN大数据集时考虑改用EXISTS或JOIN。内存参数调整达梦有两个关键内存池缓冲池BUFFER和SQL缓存池CACHE_POOL。可以通过V$PARAMETER视图查看BUFFER和CACHE_POOL_SIZE的当前值。在物理内存充足的服务器上适当增大这些参数可以显著提升性能。修改需要编辑dm.ini文件并重启数据库务必谨慎。BUFFER 2048 # 单位是页默认页大小8K即约16MB。生产环境可能设置为物理内存的50%-70%。 CACHE_POOL_SIZE 200 # 单位是MB用于缓存SQL执行计划。归档日志管理如果数据库开启了归档模式生产环境建议开启归档日志文件会不断增长占用磁盘空间。需要定期备份并清理旧的归档日志。可以通过配置作业或脚本使用ALTER DATABASE ARCHIVELOG DELETE ...命令来管理。数据库调优是一个深水区以上只是入门级的思路。更深入的优化需要结合具体的业务SQL、数据模型和硬件配置来分析。对于初学者先保证能稳定运行能快速定位和解决常见的连接、慢查询问题就已经成功了一大半。剩下的就是在实际项目中不断积累经验了。