注册
达梦数据库 DCA 实操手记:通关的关键,是吃透"模式"与"权限"
专栏/培训园地/ 文章详情 /

达梦数据库 DCA 实操手记:通关的关键,是吃透"模式"与"权限"

徐志明 2026/10/30 102 0 0
摘要

最近完成了达梦数据库 DCA 认证的上机实操。考完最大的体会是:DCA 表面考的是一串操作命令,内核考的却是两件事——对"SCHEMA(模式)归属"的敏感,以及对"权限边界"的掌控。把这两点想清楚,整套九个关卡(安装、建库、表空间、用户、建表、统计优化、导入导出、函数、Python 接口)就会从"背步骤"变成"顺逻辑"。下面把几个最易踩、也最见功底的实战片段记录下来,供正在备考或刚接触达梦的同学参考。
达梦 DCA 九关流程一览
屏幕截图 20261030 111733.png
一、建库:图形化与命令行的"同一套参数"
无论是用 dbca.sh 图形化向导,还是 dminit 命令行,本质都是填写同一组初始化参数。几个容易失分的细节值得记牢:字符集 CHARSET=1 才是 UTF-8(0 对应 GB18030);联机日志单文件不得小于 256MB 且只能增大不能缩小;数据文件最小 32MB。这些约束不是随机设定,而是达梦对数据一致性与性能的底层取舍——理解之后,参数就不再是死记的清单。
二、表空间与索引:STORAGE(ON 表空间),不是 TABLESPACE
在达梦为索引或物化视图指定表空间,语法是 STORAGE(ON HRIDX),而不是 Oracle 习惯的 TABLESPACE HRIDX。这个差异我在建索引 IX_ATDLOG_LOGTIME 时反复确认过:达梦把"存储属性"独立成 STORAGE 子句,逻辑更清晰,但也最容易按惯性写错。一旦写错,对象并不会落到你预期的表空间,后续运维时就会埋坑。
三、最隐蔽的坑:表建错了模式
考题要求"在 HR 用户下建表",于是三张表应落在 HR 模式。若误以 SYSDBA 连接建表,后续用 HR 会话执行 INSERT 脚本,就会报"无效的表或视图名 [2106]"——因为脚本里写的是 INSERT INTO T_ATDLOG,数据库按"当前模式"去解析,自然找不到 SYSDBA.T_ATDLOG 以外的对象。
解决办法很简单:用 HR 用户连接,或先执行 SET SCHEMA HR; 再导入。这条经验让我真正理解了达梦的模型:用户不等于模式,但每一个对象始终隶属于某个模式。理清"当前模式"是谁,绝大多数 2106、6602 之类的报错都能迎刃而解。
达梦模式与权限模型示意
屏幕截图 20261030 111722.png
四、逻辑迁移:REMAP 之前,目标用户必须先存在
dexp 导出 HR 模式后,用 dimp REMAP_SCHEMA=HR:HREXP 导入新用户时,我曾遇到"成功终止导入,0 个对象"的诡异日志,警告"无效的对象 HREXP"。根源是 HREXP 尚未创建,映射目标无效导致整批跳过。先 CREATE USER HREXP 并授予 RESOURCE / PUBLIC / SOI / VTI,再重新导入即正常。SOI、VTI 两个角色分别解决系统表与动态视图的查询权限,是达梦权限体系里很实用的"快捷包"。
五、过程化与接口:细节里的工程素养
刷新物化视图要用 SYS.DBMS_MVIEW.REFRESH,且 HR 需被授予该包的执行权限,否则报"没有执行对象权限 [-5505]"。安装 dmPython 驱动时,除 python3 setup.py install,还必须 export DM_HOME 与 LD_LIBRARY_PATH=/dm/dmdbms/bin,否则运行时找不到动态库。这些"差一点就成功"的细节,恰恰是工程能力的试金石,也最能体现达梦"兼容中自有章法"的设计哲学。
结语
国产数据库这几年发展很快,达梦作为其中的代表,既兼容 Oracle 生态,又保留了自己的设计哲学。DCA 只是起点,真正的价值在于把每一次实操都当成理解数据库内核的机会。希望这篇手记能帮你少走几步弯路——也欢迎在达梦社区里交流更多实战经验。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服