拿到达梦数据库的安装包那一刻,我心里其实有点打鼓。毕竟在国产数据库里,达梦的生态和文档虽然越来越完善,但真要上手部署,那些藏在细节里的坑,不亲自踩一遍根本发现不了。今天这篇东西不念说明书,就聊点实在的——从拿到安装介质到跑通第一个业务查询,哪些步骤容易卡壳,哪些参数必须较真,咱们一条条捋清楚。

先说安装前的准备工作,这步省了,后面全是眼泪。达梦8要求操作系统的glibc版本不能太低,CentOS 7.6以上基本没问题,但如果你还在用6.x的老系统,趁早换。最容易被忽略的是创建专用用户,很多人图省事直接用root装,结果初始化实例的时候权限错乱,日志里报一堆奇怪的“Permission denied”。我的习惯是专门建一个dmdba用户,用户组也建好,然后给安装目录和数据目录单独授权。还有一点,/tmp空间至少留2G,达梦的安装程序会往临时目录写不少东西,空间不够直接中途退出,你连报错都看不到。
安装包解压后,里面的ISO文件或者bin文件,不同版本装法略有差异。达梦8的安装其实很友好,图形界面下一步下一步就行,但命令行模式更适合生产环境批量部署。我推荐用命令行静默安装,关键是那个response文件,里面有个KEYPATH参数,必须指向你的license文件路径,不填的话装完就是个试用版,三个月后数据库直接罢工。还有安装路径别带中文和空格,这问题在Windows上更容易犯,Linux下倒是少见,但保险起见,/dm8这种简洁路径最省心。
装完之后的重头戏是初始化实例,dminit命令的参数足够写篇长文,但核心就几个:PAGESIZE选32,字符集选UTF-8,大小写敏感选否。尤其这个,很多从Oracle迁移过来的老手习惯性选“是”,结果业务SQL里大小写混写的地方全部报错,排查半天才发现是初始化时埋的雷。CASESENSITIVE这个参数建议明确设为N,除非你有特殊需求。另外EXTENTSIZE默认16就够了,不用刻意调大,反而浪费空间。初始化完事,先别急着启动,检查一下dm.ini里的BUFFERPOOLS和MAXBUFFER,这两个值直接影响并发性能,生产环境建议按物理内存的60%来配。
启动服务这块,最容易出幺蛾子的是环境变量。很多人用systemctl管理达梦服务,结果启动脚本里找不到DMHOME,报“dmserver: command not found”。解决办法是在/etc/profile里把DMHOME和PATH都配上,然后source一下。还有个坑,达梦的systemd服务文件默认在安装包的script目录里,你得手动拷到/usr/lib/systemd/system/下,还得改里面的User和Group为dmdba,否则服务起不来。启动成功后,用disql连一下试试,如果报“connection refused”,八成是端口没开或者监听IP配错了。
连接工具这块,达梦自带的disql是命令行利器,但日常管理我更推荐用DM管理工具,图形界面直观不少。不过有个细节,Windows上的管理工具连Linux服务器上的达梦,记得在服务器端把防火墙放行5236端口,否则客户端永远超时。第一次连上后,别急着建业务表,先创建一个表空间和用户,达梦的权限模型跟Oracle很像,但默认的SYSDBA权限太大,业务账号最好单独建,只给需要的表权限。建表空间时,数据文件路径一定要写绝对路径,相对路径有时候能建成功,但重启后文件找不到,数据直接丢,这坑我亲眼见过。
日常运维里,备份恢复是达梦的弱项,也是强项。弱在文档少,强在功能其实不输Oracle。用dmrman做物理备份,命令简洁,但要注意备份文件别和数据库文件放同一个磁盘,否则磁盘满了连备份都做不了。逻辑备份用dexp,导出前先确认字符集和大小写敏感设置,否则导出的数据导入到另一台机器会乱码。恢复的时候,如果目标库的页大小和源库不一致,直接报错,所以初始化参数一定要记录好,最好写进运维手册。
聊聊性能调优的几个常见场景。达梦的SQL优化器比Oracle还是嫩点,复杂关联查询经常走错执行计划,我的经验是先在业务侧改写SQL,实在不行再上hint。内存参数里,SORTBUFSIZE和HASHBUFSIZE对排序和哈希连接影响巨大,默认值偏保守,跑大批量数据时建议调大。还有归档日志,生产环境一定要开,否则备份恢复时没有归档,数据只能恢复到上次全备的时间点。开启归档的SQL很简单,但归档目录要提前建好,权限给对,不然数据库直接hang住。
说到这,其实达梦的安装和运维,跟Oracle、MySQL比,没那么玄乎,但细节决定成败。那些初始化参数、环境变量、权限设置,每个都是前辈们踩坑踩出来的经验。你按着这篇文章的思路走一遍,基本能避开80%的常见问题。剩下的20%,就得靠你实际环境里慢慢摸,毕竟每个业务的负载特征不一样,调优参数也得跟着变。有问题多翻官方手册,达梦的文档虽然排版朴素,但内容是真的全,比网上那些二手教程靠谱多了。


