ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Linux系统部署达梦数据库全流程指南:从安装配置到Navicat连接实战

Linux系统部署达梦数据库全流程指南:从安装配置到Navicat连接实战 1. 项目概述为什么要在Linux上部署达梦数据库如果你是一名后端开发、运维或者刚接触国产数据库的技术人员最近很可能频繁听到“达梦数据库”这个名字。作为一款成熟稳定的国产关系型数据库达梦在金融、政务、能源等对数据安全、自主可控要求极高的领域应用越来越广。很多项目从概念验证到生产上线第一步往往就是“把数据库先装起来”。而Linux服务器凭借其高稳定性、优异的性能和开源生态无疑是承载达梦数据库的首选环境。然而从官网下载一个安装包到在Linux上让达梦数据库稳定、安全地跑起来中间隔着不少“坑”。网上的教程要么过于简略跳过了关键配置要么版本陈旧与新版的安装器对不上。特别是当你需要配置远程连接、优化性能或者用熟悉的Navicat进行管理时会发现细节决定成败。这篇内容就是把我多次在CentOS、麒麟、统信UOS等不同Linux发行版上部署达梦数据库以常见的DM8为例的经验结合安装、配置、连接、基础管理的全流程整理成一份可以直接“抄作业”的指南。无论你是要在物理机、虚拟机还是云主机上操作都能在这里找到对应的步骤和避坑点。2. 安装前的核心准备工作兵马未动粮草先行。在运行安装程序之前充分的准备工作能避免绝大多数安装失败和后续的性能问题。这一步的核心是匹配的系统环境、合理的规划、以及一个干净的起点。2.1 系统环境检查与依赖确认达梦数据库对Linux系统有一定的要求。以达梦DM8为例官方支持主流的Linux发行版如CentOS 7/8、Red Hat、Ubuntu、麒麟、统信UOS等。首先我们需要进行一系列检查。1. 操作系统与内核版本检查通过命令uname -r和cat /etc/os-release来确认系统信息。确保内核版本不要太老旧。例如在CentOS 7上建议内核在3.10以上。虽然达梦对glibc版本有要求但主流发行版的默认版本通常都能满足。2. 硬件资源评估这是最容易忽视但至关重要的一环。你需要关注两点内存这是影响达梦性能的关键。官方建议至少1GB但对于生产环境或测试学习我强烈建议准备2GB以上可用内存。安装程序本身和数据库实例运行都需要内存。你可以用free -h命令查看。磁盘空间需要规划两块空间。一是安装路径通常2-3GB足够二是数据库数据文件、日志文件存放的路径这个空间需求取决于你的数据量但初期建议预留20GB以上。使用df -h命令查看磁盘使用情况并确保目标分区有足够空间。3. 依赖包安装达梦数据库安装和运行需要一些基础的系统库。在CentOS/RHEL系列上通常需要这些包yum install -y glibc libaio libnsl numactl在Ubuntu/Debian系列上则是apt-get update apt-get install -y libaio1 libnss3安装这些依赖可以避免后续出现“找不到共享库”之类的错误。2.2 规划安装路径与用户在Linux下不推荐直接使用root用户来安装和运行数据库服务这存在安全风险。标准的做法是创建一个专用的系统用户和用户组。1. 创建dmdba用户和dinstall组groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba然后为dmdba用户设置一个密码passwd dmdba。2. 规划目录并授权假设我们规划安装到达梦的默认路径/dm8数据文件放在/dm8/data。mkdir -p /dm8 chown -R dmdba:dinstall /dm8 chmod -R 755 /dm8这里将/dm8及其子目录的所有者改为dmdba用户所属组为dinstall并赋予合适的权限。3. 配置资源限制可选但建议为了让数据库进程能打开足够多的文件句柄和使用足够的进程数需要修改dmdba用户的资源限制。编辑/etc/security/limits.conf文件在末尾添加dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft nproc 65536 dmdba hard nproc 65536修改后需要重新登录dmdba用户才会生效。可以通过ulimit -n和ulimit -u命令验证。2.3 获取安装包与上传从达梦官网下载对应你操作系统架构x86_64或aarch64的安装包。通常是一个以.iso为后缀的镜像文件如dm8_20231011_x86_rh6_64.iso。将下载的ISO文件上传到你的Linux服务器。你可以使用scp命令或SFTP工具。这里假设你上传到了/opt目录。接下来需要挂载这个ISO文件以访问其中的安装程序mkdir -p /mnt/dm mount -o loop /opt/dm8_20231011_x86_rh6_64.iso /mnt/dm现在安装文件就在/mnt/dm目录下了。切换到dmdba用户准备安装su - dmdba。注意很多教程会直接让你用root执行安装脚本这虽然简单但不符合安全规范也可能导致后续权限问题。坚持使用专用用户安装是良好运维习惯的开始。3. 图形化与命令行安装全流程解析达梦提供了图形化GUI和命令行CLI两种安装方式。图形化适合新手在带有桌面的环境操作命令行则适用于无图形界面的服务器也是自动化部署的基础。3.1 图形化安装步骤详解如果你连接的Linux服务器有桌面环境或者你通过X11转发在本地显示了远程桌面图形化安装是最直观的。1. 设置显示变量并启动安装器在dmdba用户的终端下确保DISPLAY环境变量正确设置例如export DISPLAYlocalhost:10.0具体值取决于你的X11配置。然后进入挂载点运行安装程序cd /mnt/dm ./DMInstall.bin这会启动一个图形化的安装向导。2. 关键安装界面选项解读语言选择选择简体中文。欢迎页面直接下一步。许可证协议必须勾选“接受”才能继续。Key文件如果你有有效的授权文件.key在此处加载。没有的话可以选择“试用”通常有1年的试用期。安装类型建议选择“典型安装”。它会安装数据库服务器、客户端工具和管理工具满足大多数需求。“精简安装”只装服务器“自定义安装”适合高级用户。安装目录这里填入我们之前规划并授权好的/dm8。安装程序会检测该目录的权限如果权限不对会报错。确认安装安装程序会总结你的选择确认无误后点击“安装”。安装过程等待进度条走完。初始化数据库安装完成后会弹出“数据库配置助手”。我强烈建议在安装时一并完成初始化这比事后用命令行初始化要方便很多。点击“初始化”。3. 数据库实例初始化配置在初始化向导中有几个关键配置模板选择对于初次使用选择“一般用途”即可。数据库目录设置数据库数据文件、日志文件等的存放位置。可以设置为/dm8/data与安装路径分离便于管理。数据库名、实例名、端口号PORT_NUM默认为5236这是达梦的默认监听端口确保没有被防火墙阻挡。字符集这是超级重要的一个坑点请务必根据你的应用需求选择。如果应用主要处理中文且无国际化的多语言需求选择GB18030。如果需要支持多语言如同时存储中英文则选择UTF-8或Unicode。这里的选择必须和后续客户端连接、数据导入导出的字符集设置保持一致否则就会出现“提示本地格式GBK但是本地确是UTF8”这种令人头疼的乱码问题。设置密码为默认的SYSDBA用户设置一个强密码。务必牢记。创建示例库学习阶段可以勾选生产环境不建议。完成点击完成后安装程序会执行初始化。成功后会提示“数据库创建完成”。4. 注册服务关键步骤安装和初始化完成后最后一步是以root身份注册系统服务。在安装完成的提示框里会有一个脚本路径例如/dm8/script/root/root_installer.sh。切换回root用户执行这个脚本exit # 从dmdba用户退出回到root sh /dm8/script/root/root_installer.sh这个脚本会将达梦的DmService服务注册到系统的服务管理器中如systemd。之后你就可以用systemctl start DmServiceDMSERVER这样的命令来管理数据库服务了。3.2 命令行静默安装实战对于没有图形界面的生产服务器或者需要编写自动化部署脚本时命令行静默安装是唯一选择。它依赖于一个响应文件dm.ini。1. 准备响应文件在挂载的ISO目录/mnt/dm里通常有一个silent_install目录里面包含了响应文件模板dm_silent_install.xml。我们需要复制并修改它。cp /mnt/dm/silent_install/dm_silent_install.xml /home/dmdba/ cd /home/dmdba vi dm_silent_install.xml你需要修改的关键参数包括?xml version1.0? DATABASE !-- 安装路径 -- INSTALL_PATH/dm8/INSTALL_PATH !-- 安装类型TYPICAL典型 -- INSTALL_TYPETYPICAL/INSTALL_TYPE !-- 是否初始化库1是 -- INIT_DB1/INIT_DB !-- 初始化参数 -- DB DB_NAMEDAMENG/DB_NAME INSTANCE_NAMEDMSERVER/INSTANCE_NAME PORT_NUM5236/PORT_NUM SYSDBA_PWD你的强密码/SYSDBA_PWD !-- 注意字符集 -- CHARSETGB18030/CHARSET DB_PATH/dm8/data/DB_PATH !-- 日志文件路径 -- LOG_PATH/dm8/data/LOG_PATH !-- 是否大小写敏感1敏感 -- CASE_SENSITIVE1/CASE_SENSITIVE /DB /DATABASE2. 执行静默安装使用dmdba用户指定响应文件进行安装cd /mnt/dm ./DMInstall.bin -q /home/dmdba/dm_silent_install.xml安装程序会读取响应文件中的配置自动完成所有步骤无需人工干预。安装日志会输出到终端也可以查看/tmp目录下的DMinstall*.log文件。3. 静默安装后的服务注册静默安装完成后同样需要以root身份执行服务注册脚本。脚本路径通常和图形化安装一致sh /dm8/script/root/root_installer.sh实操心得无论是图形化还是命令行安装“初始化数据库”和“注册服务”这两个环节最容易漏掉。很多人安装完发现启动不了就是因为没初始化数据库没有数据文件或者能启动但无法开机自启就是因为没注册服务。务必按步骤完成。4. 安装后的核心配置与基础操作数据库安装并启动后工作才刚刚开始。为了让数据库能被远程访问、安全稳定运行需要进行一系列配置。4.1 服务管理与状态检查服务注册后我们就可以使用systemd来管理达梦数据库服务了。服务名通常是DmServiceDMSERVER如果你的实例名是DMSERVER。启动服务systemctl start DmServiceDMSERVER停止服务systemctl stop DmServiceDMSERVER重启服务systemctl restart DmServiceDMSERVER查看状态systemctl status DmServiceDMSERVER设置开机自启systemctl enable DmServiceDMSERVER查看状态时如果看到active (running)字样并且下方日志没有报错说明服务启动成功。你也可以通过达梦自带的disql命令行工具连接本地数据库验证cd /dm8/bin ./disql SYSDBA/你的密码localhost:5236连接成功后执行select * from v$instance;能看到实例信息就证明数据库运行正常。4.2 防火墙与网络配置要让其他机器能够访问达梦数据库必须开放其监听端口默认5236。1. 防火墙配置以firewalld为例firewall-cmd --permanent --add-port5236/tcp firewall-cmd --reload firewall-cmd --list-ports # 确认5236端口已开放如果你的系统用的是iptables命令会有所不同。2. 达梦服务器配置允许远程连接默认情况下达梦可能只允许本地连接。需要修改数据库服务器配置文件。 首先找到达梦的配置文件dm.ini它位于你的数据目录下例如/dm8/data/DAMENG/dm.ini。 编辑此文件找到MAL_INI和RLOG_SSL_NAME等参数但更直接的是检查监听。不过更常见的做法是配置dmmal.ini和dmarch.ini用于高级容灾对于基础远程访问通常只需确保监听正确。 一个更稳妥的方法是使用达梦提供的dm.ini参数确保没有设置LISTENER_LOCAL_ONLY1如果存在则设为0或注释掉。但根据我的经验新版本默认是允许远程连接的主要障碍往往是防火墙。3. 验证网络连通性在客户端机器上使用telnet或nc命令测试端口是否通畅telnet 服务器IP 5236如果连接失败请依次检查服务器防火墙、云服务商的安全组规则、达梦服务是否在正确监听所有IPnetstat -tlnp | grep 5236查看监听地址是否为0.0.0.0:5236。4.3 使用管理工具Manager与命令行工具disql达梦提供了图形化的管理工具DM Management Server和DM Management Console但服务器端通常我们更依赖命令行工具disql。1. disql 基础使用disql是达梦的交互式SQL工具类似于Oracle的sqlplus或MySQL的mysql客户端。连接数据库./disql SYSDBA/密码127.0.0.1:5236执行SQL连接后直接输入SQL语句以分号;结尾并按回车执行。常用命令desc 表名;查看表结构。spool /tmp/query.log开始将屏幕输出记录到文件。spool off停止记录。edit编辑上一条SQL语句。/执行当前缓冲区的SQL通常是刚用edit修改过的。exit或quit退出disql。2. 使用DM管理工具远程你可以在Windows或Linux桌面安装DM Management Console然后新建连接输入服务器IP、端口、用户名SYSDBA和密码即可图形化地管理数据库对象、执行SQL、监控性能等。这对于不熟悉命令行的开发者非常友好。5. 实战使用Navicat连接达梦数据库Navicat是很多开发者和DBA喜爱的数据库管理工具它从Navicat 15版本开始增加了对达梦数据库的支持。但连接过程中有一些特定配置不注意就会连接失败。5.1 驱动配置与连接步骤1. 获取达梦JDBC驱动Navicat连接达梦本质上是使用JDBC驱动。你需要从达梦数据库的安装目录中获取这个驱动文件。它位于/dm8/drivers/jdbc目录下文件名为DmJdbcDriver18.jar版本号可能不同。将这个JAR文件拷贝到你的客户端电脑上。2. 在Navicat中配置驱动打开Navicat点击“文件”-“新建连接”-“其他”-“达梦”。在连接设置窗口中切换到“高级”选项卡。你会看到“JAR文件”或“驱动文件”的配置项。点击“…”按钮指向你刚才拷贝的DmJdbcDriver18.jar文件。关键点有时Navicat可能自带一个旧版驱动连接会报错。务必手动指定为你从服务器上拷贝的最新驱动。3. 填写连接参数回到“常规”选项卡连接名自定义如“生产达梦”。主机达梦数据库服务器的IP地址。端口5236。服务名/数据库名填写你初始化数据库时设置的数据库名如DAMENG。注意有些版本或模式下这里可能填写SYSDBA或者留空如果连接不上可以尝试不同组合。用户名SYSDBA。密码安装时设置的SYSDBA密码。字符集这里必须和服务器端数据库的字符集保持一致如果服务器初始化时选了GB18030这里就选GB18030如果服务器是UTF-8这里就选UTF-8。这是解决中文乱码问题的关键。4. 测试连接点击“测试连接”。如果一切配置正确会提示“连接成功”。如果失败请根据错误信息排查。5.2 常见连接错误与解决方案错误现象可能原因解决方案“网络错误连接被拒绝”1. 服务器防火墙/安全组未开5236端口。2. 达梦数据库服务未启动。3. 主机IP或端口填写错误。1. 检查服务器防火墙和云安全组规则。2. 登录服务器systemctl status DmServiceDMSERVER。3. 在服务器上用netstat -tlnp | grep 5236确认监听。“无效的用户名/密码”1. 密码错误。2. 用户名错误注意大小写默认SYSDBA大写。1. 确认密码。可在服务器用disql本地连接测试。2. 检查用户名拼写。“驱动程序未加载”或“找不到驱动类”1. Navicat中未正确指定达梦JDBC驱动JAR文件。2. JAR文件版本与数据库版本不匹配。1. 在Navicat连接设置的高级选项中重新指定正确的、从服务器拷贝的JAR文件路径。2. 尝试使用达梦安装包中提供的其他版本JDBC驱动。“字符集不匹配”导致中文乱码客户端连接字符集与服务器数据库字符集不一致。确保Navicat连接设置中的“字符集”选项与创建数据库时选择的字符集如GB18030, UTF-8完全相同。“服务名无效”“数据库名”一栏填写错误。尝试填写DAMENG、SYSDBA或直接留空。可以在服务器上通过select name from v$database;查询实际数据库名。避坑技巧Navicat连接达梦最常出的两个问题就是驱动和字符集。驱动一定要用服务器配套的不要用Navicat自带的。字符集一定要两边对齐。把这两点搞定连接成功率能提升90%。6. 基础使用与维护操作指南数据库连接上了接下来就是日常的使用和维护。这里介绍几个最常用的操作。6.1 数据库与用户管理1. 创建新的表空间和用户最佳实践不建议直接使用SYSDBA进行业务操作。应该为每个应用创建独立的用户和表空间。-- 1. 创建表空间假设数据文件放在 /dm8/data/ CREATE TABLESPACE MYAPP_DATA DATAFILE /dm8/data/MYAPP_DATA01.dbf SIZE 128; -- 2. 创建用户并指定默认表空间 CREATE USER MYAPP_USER IDENTIFIED BY StrongPass123 DEFAULT TABLESPACE MYAPP_DATA; -- 3. 授予基本权限 GRANT RESOURCE, VTI TO MYAPP_USER;这样应用就用MYAPP_USER用户连接其数据都存放在MYAPP_DATA表空间中与系统数据隔离。2. 基础SQL操作达梦兼容标准SQL同时也兼容Oracle的很多语法和特性。-- 在MYAPP_USER下创建表 CREATE TABLE t_user ( id INT PRIMARY KEY, name VARCHAR(50), created_time DATETIME DEFAULT CURRENT_TIMESTAMP() ); -- 插入数据 INSERT INTO t_user (id, name) VALUES (1, 测试用户); -- 查询 SELECT * FROM t_user; -- 创建索引 CREATE INDEX idx_user_name ON t_user(name);6.2 数据备份与恢复逻辑备份对于日常维护逻辑备份导出/导入非常实用。达梦提供了dexp和dimp工具。1. 全库导出cd /dm8/bin ./dexp SYSDBA/密码localhost:5236 FILEfull_backup.dmp LOGfull_backup.log FULLYFULLY表示全库导出。FILE指定导出的DMP文件。LOG指定导出过程的日志文件。2. 按用户导出./dexp MYAPP_USER/密码localhost:5236 OWNERMYAPP_USER FILEmyapp_backup.dmp LOGmyapp_backup.log3. 导入数据./dimp SYSDBA/密码localhost:5236 FILEfull_backup.dmp LOGimp_full.log FULLY或者导入到特定用户./dimp MYAPP_USER/密码localhost:5236 FILEmyapp_backup.dmp LOGimp_myapp.log FROMUSERMYAPP_USER TOUSERMYAPP_USER注意导入时如果目标用户不存在需要先创建。FROMUSER和TOUSER在按用户导入时用于指定源用户和目标用户。6.3 性能监控与日志查看1. 查看系统视图达梦提供了丰富的动态性能视图V$视图类似于Oracle。-- 查看当前会话 SELECT * FROM V$SESSIONS; -- 查看锁信息 SELECT * FROM V$LOCK; -- 查看SQL执行情况 SELECT * FROM V$SQL_HISTORY; -- 查看表空间使用情况 SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 AS USED_MB FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME;2. 查看数据库日志数据库的运行日志、错误日志对于排查问题至关重要。主要日志文件位于数据目录的DAMENG子目录下例如dm_实例名_日期.log数据库运行日志。dmsql_实例名_日期.logSQL跟踪日志如果开启了。dm_实例名_日期_异常.log异常日志。 你可以使用tail -f命令实时查看日志尾部例如tail -f /dm8/data/DAMENG/dm_DMSERVER_20241112.log。7. 常见问题排查与进阶技巧即使按照步骤操作也难免会遇到问题。这里汇总了一些典型问题的排查思路和解决方法。7.1 安装与启动类问题问题1执行安装脚本./DMInstall.bin时报错 “无法执行二进制文件” 或 “No such file or directory”。原因可能原因有1) 安装包架构与系统不匹配如x86包装在ARM机器上2) 安装包文件损坏3) 缺少执行权限。解决用uname -m确认系统架构下载对应架构的安装包。检查ISO文件MD5是否与官网一致。赋予执行权限chmod x DMInstall.bin。有时在极简系统上缺少32位兼容库尝试安装yum install -y glibc.i686仅限x86_64系统。问题2安装过程中提示 “安装路径 /dm8 权限不足”。原因当前用户dmdba对/dm8目录没有写权限。解决确保已执行chown -R dmdba:dinstall /dm8和chmod -R 755 /dm8并且是用dmdba用户启动的安装程序。问题3服务启动失败systemctl status显示failed。原因这是最复杂的情况需要查看具体日志。排查查看服务日志journalctl -u DmServiceDMSERVER -n 50。查看达梦日志立即去/dm8/data/DAMENG/下查看最新的.log文件特别是带有“异常”字样的。常见原因端口被占用5236端口已被其他程序占用。用netstat -tlnp | grep 5236查看。参数文件错误dm.ini或dmmal.ini等配置文件有语法错误。检查最近是否修改过。磁盘空间不足数据文件所在磁盘满了。用df -h检查。内存不足系统可用内存不足以启动数据库实例。检查free -h。7.2 连接与操作类问题问题4Navicat连接时报错 “Socket read timed out” 或长时间无响应后断开。原因网络连通性有问题或者服务器端响应慢。解决先用telnet 服务器IP 5236测试基础连通性。如果通可能是服务器负载高。在服务器上检查数据库状态和资源使用情况topdisql执行简单SQL是否慢。检查客户端和服务器之间的网络延迟和防火墙策略。问题5执行SQL或导入数据时出现中文乱码。原因这是字符集不一致的经典问题。涉及三个层面1) 数据库服务器字符集2) 客户端连接字符集3) 终端或文件本身的字符集。解决确认服务器字符集连接disql执行select unicode();。返回0表示GB180301表示UTF-8。确保客户端连接字符集与服务器一致。在Navicat、disql连接字符串或dimp/dexp命令中明确指定。例如在disql中连接./disql SYSDBA/密码localhost:5236?charsetGB18030。确保导入/导出的文件编码。如果是从文件导入用file命令或文本编辑器确认文件编码是GBK还是UTF-8并在导入时使用CHAR_CODE参数指定例如dimp ... CHAR_CODEGBK。问题6dimp导入数据时提示“违反唯一性约束”或“对象已存在”。原因目标数据库中已存在同名的表、数据等。解决如果是要覆盖可以在dimp命令中加入TABLE_EXISTS_ACTIONREPLACE或TABLE_EXISTS_ACTIONTRUNCATE参数。如果是增量数据确保没有重复的主键。更稳妥的做法是先清理目标环境或者导入到一个全新的用户/模式下。7.3 性能与优化小技巧内存调优达梦的性能极度依赖内存。主要调整dm.ini中的MEMORY_POOL、BUFFER等参数。BUFFER是数据缓冲区一般建议设置为系统可用物理内存的50%-70%。但修改这些参数需要重启数据库服务。日志文件管理定期检查重做日志REDO LOG和归档日志是否占满磁盘。可以配置归档和定时清理策略。统计信息更新对于数据量变化大的表定期更新统计信息有助于优化器选择最佳执行计划。可以执行DBMS_STATS.GATHER_TABLE_STATS(‘模式名’ ‘表名’);。使用连接池在应用端务必使用数据库连接池如HikariCP, Druid避免频繁创建和销毁连接带来的开销。从下载安装包到最终用Navicat顺畅地连接并操作达梦数据库整个过程就像搭积木每一步都要稳。其中最深的体会就是“规划”和“一致”的重要性。规划好用户、目录、资源保持客户端、服务器、操作环境三者的字符集一致。这两点能帮你避开大部分莫名其妙的错误。国产数据库的生态和工具链在快速完善但一些细节上还需要我们多动手、多记录。希望这份从实战中总结的指南能让你在Linux上部署达梦的旅程更顺畅一些。如果在操作中遇到了上面没覆盖的问题不妨多翻翻达梦安装目录下的doc手册或者查看数据目录下的日志文件真相往往就在那里。
返回列表