1. 项目概述与核心价值最近几年国产数据库的声量越来越大无论是政策导向还是实际的技术成熟度都让越来越多的开发者和企业开始关注并尝试使用。达梦数据库DM作为其中的佼佼者以其高兼容性、高安全性和良好的性能成为了许多项目国产化替代的首选。然而对于很多习惯了MySQL、PostgreSQL这类开源数据库的朋友来说第一次接触达梦光是安装这一步就可能被劝退。官方文档虽然详尽但更像一本“说明书”缺乏从零开始的、手把手的引导特别是对操作系统环境、依赖项、参数配置这些细节新手很容易踩坑。这篇教程就是为你准备的无论你是刚入行的运维新人还是需要为项目进行技术选型的架构师亦或是单纯想学习国产数据库的开发者。我将以一个纯粹的“小白”视角带你走通从零开始安装达梦数据库以常见的Linux环境为例的完整流程。我们不仅会完成安装更重要的是我会把每一步背后的逻辑、可能遇到的“坑”以及我趟过的雷都清晰地告诉你。目标很简单让你看完就能动手一次安装成功并理解你做的每一个操作的意义。2. 安装前的深度准备不只是下载一个安装包很多人安装失败问题往往不是出在安装过程本身而是准备工作没做到位。达梦数据库对运行环境有一定要求盲目开始很容易导致安装中途报错甚至安装后无法启动。2.1 系统环境检查与规划达梦数据库支持多种Linux发行版如CentOS、RedHat、Ubuntu、麒麟等。这里我们以CentOS 7.x作为标准环境进行讲解其他发行版思路类似主要区别在于包管理命令。首先我们需要以root用户或具有sudo权限的用户登录系统进行一系列检查。1. 操作系统与内核版本确认打开终端执行以下命令cat /etc/redhat-release # 查看CentOS具体版本 uname -r # 查看内核版本达梦8对CentOS 7内核3.10以上有良好支持。确保你的系统是64位x86_64。2. 内存与存储空间检查达梦数据库运行需要足够的内存和磁盘空间。对于学习和功能测试建议至少物理内存4GB以上。可以通过free -h命令查看。交换空间Swap如果物理内存小于8GB建议配置Swap空间为物理内存的1.5-2倍。使用swapon -s查看。磁盘空间安装路径至少需要5GB空间数据文件路径根据未来数据量预估建议预留50GB以上。使用df -h命令查看各分区空间。注意生产环境的要求会高得多需要根据业务压力、数据量、并发连接数进行详细评估。学习环境可以适当放宽但也不能太局促否则可能影响基础功能体验。3. 关闭防火墙与SELinux学习环境建议为了避免网络访问和权限问题导致安装后无法连接在实验环境中我们通常选择暂时关闭它们。生产环境则需要配置精细的防火墙规则和SELinux策略。# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux需重启生效或临时设置 setenforce 0 # 临时设置为Permissive模式 # 永久关闭需要编辑 /etc/selinux/config将 SELINUXenforcing 改为 SELINUXdisabled然后重启。实操心得很多连接不上数据库的问题第一步就先排查防火墙和SELinux。对于新手在可控的内网测试环境先关闭它们可以快速聚焦于数据库本身的问题等一切调通后再考虑安全加固。2.2 依赖包安装与用户创建达梦数据库的运行依赖于一些系统库缺少它们会导致安装程序报错或数据库无法启动。1. 安装基础依赖包执行以下命令安装常用工具和库yum install -y tar unzip libaio numactllibaio异步IO库对数据库性能至关重要。numactl非一致性内存访问控制工具用于优化多CPU环境下的内存分配。tar,unzip用于解压安装包。2. 创建专属用户和组不建议直接使用root用户运行数据库这存在安全风险。我们应该创建一个专用的系统用户。groupadd dinstall # 创建用户组 useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba # 创建用户dmdba主目录为/home/dmdba echo “dmdba” | passwd --stdin dmdba # 为用户设置密码这里设为“dmdba”生产环境请用强密码这里创建了一个名为dmdba的用户属于dinstall组。后续的安装和初始启动都将使用这个用户进行。3. 配置系统参数限制数据库进程可能需要打开大量文件句柄和运行较多线程需要调整系统限制。 编辑/etc/security/limits.conf文件在末尾添加dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft nproc 65536 dmdba hard nproc 65536这表示对dmdba用户软硬限制都设置为最多打开65536个文件和65536个进程。修改后需要重新登录dmdba用户才能生效。2.3 获取安装包与规划安装路径1. 下载达梦数据库安装包访问达梦官方网站的下载中心根据你的操作系统选择对应的版本。通常是一个以.iso为后缀的镜像文件如dm8_20231011_x86_rh7_64.iso。你可以通过wget命令直接在服务器下载或者从本地电脑上传到服务器的某个目录例如/opt/software。2. 规划安装与数据目录这是一个关键步骤直接影响后续的管理和维护。我建议采用以下目录结构/dm8/ # 数据库软件安装根目录 ├── bin/ # 可执行文件 ├── tool/ # 工具 ├── drivers/ # 驱动 └── ... /dmdata/ # 数据库数据文件根目录建议与安装目录分离 ├── DAMENG/ # 初始数据库实例目录 │ ├── ctlvlog/ # 控制文件、日志等 │ ├── data/ # 数据文件 │ └── ... └── bak/ # 备份目录可后续创建分离的好处软件升级时可以直接覆盖/dm8而数据/dmdata不受影响降低风险。备份和磁盘规划也更清晰。权限设置将/dm8和/dmdata的所属者和组都改为dmdba:dinstall。mkdir -p /dm8 /dmdata chown -R dmdba:dinstall /dm8 /dmdata chmod -R 755 /dm8 /dmdata3. 图形化安装流程步步解析达梦提供了命令行和图形化两种安装方式。对于新手图形化界面GUI更友好我们以此为例。你需要确保服务器安装了图形化界面或者可以通过Windows上的Xmanager、MobaXterm等工具进行X11转发来显示图形界面。3.1 挂载镜像与启动安装程序首先将下载的ISO镜像挂载到系统的一个目录。# 创建挂载点 mkdir -p /mnt/dm # 挂载ISO文件假设安装包在/opt/software下 mount -o loop /opt/software/dm8_20231011_x86_rh7_64.iso /mnt/dm然后切换到我们之前创建的dmdba用户并启动安装程序。su - dmdba cd /mnt/dm ./DMInstall.bin如果一切正常屏幕上会弹出达梦数据库的图形化安装向导界面。常见问题如果执行./DMInstall.bin后提示 “无法打开显示” 或 “No protocol specified”说明X11转发未成功。请检查SSH客户端是否开启了X11转发如PuTTY中勾选“Enable X11 forwarding”。服务器上是否安装了xorg-x11-xauth包yum install -y xorg-x11-xauth。使用echo $DISPLAY命令查看显示变量是否设置正确通常应为localhost:10.0之类的值。3.2 安装向导关键步骤详解安装向导的步骤比较直观但有几个关键选择点需要特别注意。1. 选择语言和验证Key文件启动后首先选择安装语言。接着会提示你提供Key文件。Key文件.key是达梦数据库的授权文件可以从官网申请试用版或购买正式版获取。如果没有可以选择“没有Key文件”继续安装试用版试用版通常有时间和功能限制。2. 接受许可协议与选择安装类型勾选接受许可协议。在“安装类型”页面通常选择“典型安装”。它会安装最常用的服务器、客户端工具和管理工具。典型安装适合绝大多数用户包含数据库服务器、管理工具、驱动等。服务器安装只安装数据库服务器核心组件。客户端安装只安装客户端连接工具。自定义安装高级用户可以选择特定组件。3. 选择安装目录这是最重要的一步点击“浏览”选择我们之前创建并设置好权限的/dm8目录。务必确保安装路径没有空格和中文。4. 确认安装摘要并开始安装安装程序会列出你之前的所有选择确认无误后点击“安装”。此时安装程序会开始解压文件、复制组件、进行初始配置。这个过程可能需要几分钟请耐心等待。5. 执行配置脚本图形化安装完成后会弹出一个提示窗口告诉你需要以root权限执行一个配置脚本/dm8/script/root/root_installer.sh。 不要关闭当前安装程序新开一个终端窗口切换到root用户执行该脚本su - root cd /dm8/script/root ./root_installer.sh这个脚本主要完成创建达梦服务DmService所需的系统链接等操作。执行成功后回到图形界面点击“确定”。6. 初始化数据库实例关键步骤安装完软件后向导会提示你是否“初始化数据库”。一定要勾选“初始化数据库”。数据库软件DM Server和数据库实例Instance是两个概念。软件是引擎实例才是真正存放你数据的地方。点击“初始化”进入数据库配置工具dbca。3.3 数据库实例配置实战初始化数据库会启动一个独立的配置工具这里的选择将决定你数据库实例的初始形态。1. 创建数据库实例选择“创建数据库实例”点击“开始”。2. 选择模板一般选择“一般用途”General Purpose它平衡了OLTP和OLAP的需求。3. 指定数据库目录同样关键将“数据库目录”设置为我们规划好的数据目录例如/dmdata/DAMENG。这样就和软件安装目录分离开了。4. 设置数据库标识数据库名例如DAMENG默认。实例名例如DMSERVER。实例名在服务器上唯一标识一个运行中的数据库服务。端口号默认5236。确保该端口没有被其他程序占用netstat -tlnp | grep 5236。5. 设置数据库文件这里可以设置初始数据文件、日志文件的大小和存放路径。对于学习环境可以直接使用默认值。注意查看路径是否都在/dmdata/DAMENG下或其子目录。6. 初始化参数设置字符串大小写敏感这是一个极其重要且初始化后无法修改的参数。它决定了‘TABLE’和‘table’是否被视作相同的标识符。勾选大小写敏感符合Oracle、PostgreSQL等数据库的习惯也是达梦的默认推荐。‘TABLE’和‘table’是不同的。不勾选大小写不敏感更接近MySQL的默认行为。‘TABLE’和‘table’是相同的。踩坑实录如果你的应用是从MySQL迁移过来的并且代码中SQL语句对大小写很随意那么选择“大小写不敏感”可以避免大量修改。但请注意一旦初始化完成这个属性就无法更改了务必根据你的应用情况慎重选择。字符集选择UTF-8或GB18030推荐UTF-8以支持多语言。VARCHAR类型以字符为单位建议勾选这样定义VARCHAR(10)就是10个字符而不是10个字节更符合直觉。7. 设置口令为默认的数据库管理员账户SYSDBA设置密码。请设置一个强密码并牢记。8. 完成创建确认所有配置信息点击“完成”。工具会开始创建数据文件、初始化系统表空间等这个过程视硬件性能而定可能需要数分钟。创建成功后配置工具会提示“数据库创建完成”。至此数据库软件和第一个实例都已就绪。4. 启动、连接与基础验证安装和初始化完成后我们如何让数据库跑起来并验证它是否工作正常呢4.1 启动与停止数据库服务达梦数据库在Linux下通常以后台服务Service的形式运行。服务名与我们之前设置的实例名相关。1. 切换回dmdba用户操作数据库服务应该由专属用户启动。su - dmdba2. 启动数据库服务进入安装目录的bin文件夹使用DmService脚本控制服务。cd /dm8/bin ./DmServiceDMSERVER start # 启动服务DMSERVER是你的实例名你会看到类似 “Starting DmServiceDMSERVER: [ OK ]” 的提示。3. 查看服务状态./DmServiceDMSERVER status如果显示 “DmServiceDMSERVER (pid xxxx) is running.”说明服务已成功启动。4. 停止数据库服务./DmServiceDMSERVER stop5. 注册系统服务可选便于管理为了方便使用systemctl命令管理可以将达梦服务注册到系统。这通常已经在执行root_installer.sh脚本时完成了。你可以检查一下systemctl status DmServiceDMSERVER.service # 以root用户执行如果已注册就可以使用systemctl start|stop|status DmServiceDMSERVER来管理了。4.2 使用命令行工具连接数据库服务启动后我们可以使用达梦自带的命令行工具disql类似Oracle的sqlplusMySQL的mysql进行连接和操作。cd /dm8/bin ./disql SYSDBA/‘你设置的密码‘localhost:5236SYSDBA用户名。‘你设置的密码‘注意密码如果包含特殊字符可能需要用引号括起来。localhost:5236数据库服务器地址和端口。连接成功后提示符会变为SQL。你可以执行一些简单的SQL来验证SELECT ‘Hello, DM8!‘; SELECT * FROM V$VERSION; -- 查看数据库版本信息 SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES; -- 查看表空间状态如果这些命令都能正常返回结果恭喜你数据库安装并运行成功了4.3 使用图形化管理工具管理工具命令行对于DBA来说很高效但对于开发或日常管理图形化工具更直观。达梦提供了DM管理工具。在服务器图形界面或者通过X11转发到本地可以启动它cd /dm8/tool ./manager启动后点击“注册连接”填写连接信息连接名自定义如“本地测试”。主机名localhost或服务器IP。端口号5236。用户名/口令SYSDBA和你的密码。连接成功后你可以在左侧看到数据库的树状结构可以方便地查看、管理表、视图、存储过程等所有数据库对象执行SQL脚本进行用户权限管理等。注意事项管理工具需要图形界面。对于纯命令行服务器可以考虑使用第三方跨平台的数据库客户端如DBeaver它通过JDBC驱动连接达梦非常好用。你需要从达梦安装目录的/dm8/drivers/jdbc下找到JDBC驱动包如DmJdbcDriver18.jar在DBeaver中添加驱动并配置连接。5. 安装后必须进行的配置与优化安装成功并连上只是万里长征第一步。为了让数据库更稳定、更安全、性能更好有几个基础的配置必须做。5.1 配置归档与开启日志数据安全的基石达梦数据库默认运行在非归档NOARCHIVELOG模式。在这种模式下只能进行冷备份关闭数据库后的备份并且无法实现基于时间点的恢复。对于任何正式环境开启归档模式是必须的。1. 修改数据库为MOUNT状态在disql中执行ALTER DATABASE MOUNT;2. 配置归档路径首先创建一个用于存放归档日志的目录并授予权限mkdir -p /dmdata/arch chown dmdba:dinstall /dmdata/arch chmod 755 /dmdata/arch然后在disql中配置归档ALTER DATABASE ADD ARCHIVELOG ‘DEST /dmdata/arch, TYPE local, FILE_SIZE 1024, SPACE_LIMIT 20480‘;DEST归档日志存放路径。TYPE本地归档。FILE_SIZE每个归档文件大小单位MB。SPACE_LIMIT归档目录总空间限制单位MB0表示无限制。3. 开启归档模式ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; -- 将数据库切换回OPEN状态4. 验证归档状态SELECT ARCH_MODE FROM V$DATABASE; -- 应返回 ‘Y‘ SELECT * FROM V$ARCHIVED_LOG; -- 查看归档日志信息开启归档后数据库的重做日志在写满后会被复制到归档目录为后续的热备份和恢复提供了可能。5.2 调整基础内存参数达梦数据库安装后内存参数使用的是默认值可能不适合你的服务器。主要调整dm.ini配置文件中的以下几个参数文件位于你的数据目录下如/dmdata/DAMENG/dm.ini。重要修改参数前请先备份dm.ini文件。修改后需要重启数据库服务才能生效。使用disql或管理工具查看和修改以下为SQL命令-- 查看当前内存相关参数 SELECT PARA_NAME, PARA_VALUE FROM V$DM_INI WHERE PARA_NAME LIKE ‘%MEMORY%‘ OR PARA_NAME LIKE ‘%BUFFER%‘; -- 使用SP_SET_PARA_VALUE函数修改需具有DBA权限且部分参数需要重启 -- 设置最大内存一般为物理内存的50%-70% SP_SET_PARA_VALUE(2, ‘MAX_OS_MEMORY‘, 2000); -- 单位MB此处设为2GB -- 设置缓冲区大小对性能影响巨大通常设为MAX_OS_MEMORY的60%-70% SP_SET_PARA_VALUE(2, ‘BUFFER‘, 1000); -- 单位M此处设为1GB -- 设置SQL缓冲区大小 SP_SET_PARA_VALUE(2, ‘CACHE_POOL_SIZE‘, 200); -- 单位MSP_SET_PARA_VALUE(1/2, ‘参数名‘, 值)第一个参数为1表示立即生效部分参数支持2表示重启生效。这些参数没有绝对的最优值需要根据实际业务负载进行监控和调整。初期可以按上述比例设置后续通过监控V$MEM_POOL、V$BUFFER等动态视图来优化。5.3 配置监听与远程连接默认安装后数据库监听本地所有IP0.0.0.0的5236端口。如果你需要从其他服务器连接需要确保防火墙开放了5236端口如果之前关闭了防火墙则可跳过。此外为了管理方便可以配置dm_svc.conf服务名解析文件。该文件通常位于/etc目录Linux或达梦安装目录的bin下。 编辑/etc/dm_svc.conf如果没有则创建TIME_ZONE(08:00) LANGUAGE(cn) DMSERVER(localhost:5236) # 定义一个服务名DMSERVER指向本地配置后在disql中可以直接用./disql SYSDBA/密码DMSERVER连接无需写主机端口。6. 高频问题排查与解决实录即使按照教程一步步来你也可能会遇到一些问题。这里我整理了新手最常遇到的几个“坑”及其解决方法。6.1 安装启动类问题问题1执行./DMInstall.bin提示 “无法打开显示” 或 “No protocol specified”。原因X11转发未正确设置。解决确保SSH客户端开启了X11转发。在服务器上以root安装xorg-x11-xauthyum install -y xorg-x11-xauth。以dmdba用户执行xhost 命令可能需要先切换到图形界面或配置。最稳妥的替代方案对于纯命令行服务器可以使用静默安装模式。先根据响应文件模板安装包内有dm_silent_install.xml编辑好配置然后执行./DMInstall.bin -i -f /path/to/your_install.xml。问题2数据库服务启动失败查看日志/dmdata/DAMENG/log/dm_服务名_日期.log报错“共享内存创建失败”或“端口被占用”。原因可能上次服务异常退出共享内存未释放或其他进程占用了5236端口。解决检查端口netstat -tlnp | grep 5236如果被其他进程占用考虑停止该进程或修改达梦端口。清理共享内存和信号量谨慎操作确保没有其他达梦实例在运行ipcs -m | grep dmdba | awk ‘{print $2}‘ | xargs -I {} ipcrm -m {} ipcs -s | grep dmdba | awk ‘{print $2}‘ | xargs -I {} ipcrm -s {}再次尝试启动服务。6.2 连接访问类问题问题3使用disql或客户端工具无法连接提示“网络通信异常”。原因这是最泛的报错可能原因很多。排查步骤排查清单服务是否运行./DmServiceDMSERVER status。监听是否正常在服务器上执行netstat -tlnp | grep 5236看是否有LISTEN状态且进程名为dmserver。防火墙如果防火墙开启需添加规则firewall-cmd --zonepublic --add-port5236/tcp --permanent firewall-cmd --reload。或者直接关闭测试环境。SELinux临时禁用setenforce 0或为达梦配置SELinux策略。连接字符串检查主机名、端口、用户名、密码是否正确。密码特殊字符建议用单引号括起来。客户端网络从客户端telnet 服务器IP 5236测试端口通不通。问题4使用SYSDBA可以连接但自建用户无法连接提示“用户名或密码错误”。原因用户未创建、密码错误、用户状态被锁定、或无登录权限。解决用SYSDBA登录后检查SELECT USERNAME, ACCOUNT_STATUS, CREATED FROM DBA_USERS WHERE USERNAME ‘你的用户名‘; -- 如果用户不存在则创建CREATE USER 用户名 IDENTIFIED BY “密码”; -- 如果状态为LOCKED则解锁ALTER USER 用户名 ACCOUNT UNLOCK; -- 授予登录权限GRANT CREATE SESSION TO 用户名;6.3 性能与操作类问题问题5执行SQL或数据导入时特别慢。原因可能涉及多方面初期可重点排查以下几点。排查内存参数检查BUFFER等内存池大小是否设置过小见5.2节。磁盘IO检查数据文件所在磁盘的IO性能使用iostat -x 1观察%util和await。统计信息表数据量大但无统计信息优化器可能选择低效计划。收集统计信息DBMS_STATS.GATHER_TABLE_STATS(‘模式名‘ ‘表名‘);。归档日志影响如果归档目录空间满或IO慢会拖慢数据库。检查归档目录空间和IO。问题6误操作删除了数据如何恢复前提必须已开启归档模式并存在有效备份。恢复思路简化如果有完整的物理备份数据文件归档日志可以使用达梦的dmrman工具进行还原和恢复。如果只是误删了少量数据并且时间不长可以尝试查询闪回查询Flashback Query功能需配置UNDO_RETENTION参数并启用例如SELECT * FROM 表名 WHEN TIMESTAMP ‘2024-01-01 10:00:00‘;。核心建议定期备份并测试恢复流程。没有经过恢复测试的备份是不可靠的。制定备份策略每日全备每小时增备并严格执行是DBA最重要的职责。安装达梦数据库从陌生到熟悉最关键的就是动手实践。这篇教程试图把每个环节的“为什么”和“怎么办”都讲清楚希望能帮你绕过我当年踩过的那些坑。数据库管理是一门实践性极强的学问安装只是入门。接下来你可以尝试创建自己的业务表导入一些数据练习备份恢复慢慢探索达梦更多的特性和优化技巧。记住官方文档永远是你最好的朋友遇到任何问题多查文档多看看动态性能视图V$开头的视图那里的信息最真实。