注册
DM8 DCA 培训考试备考与实操心得
专栏/培训园地/ 文章详情 /

DM8 DCA 培训考试备考与实操心得

E S 2026/10/26 142 0 0
摘要

DM8 DCA 培训考试备考与实操心得

从环境搭建到对象管理、逻辑备份与 Python 连接的完整复习路线

DCA 是一项强调实际操作的认证考试。真正决定得分的,不是记住多少概念,而是能否在规定时间内完成安装、初始化、权限配置、对象创建、数据导入、备份恢复和程序连接,并在出现报错时快速定位原因。本文按实操顺序整理一套可重复练习的备考路径,重点记录命令、验证方法与高频失分点。

image.png

文章结构

• 一、环境搭建:虚拟机、图形会话、磁盘扩容

• 二、达梦安装与实例初始化:安装用户、命令行安装、dminit 和服务验证

• 三、表空间、用户、角色与资源限制:建立清晰的权限和存储关系

• 四、数据对象管理:约束、数据装载、视图、物化视图、索引与函数

• 五、逻辑备份与跨模式导入:dexp、dimp 和 REMAP_SCHEMA

• 六、dmPython 安装与连接:环境变量、用户级安装与最小验证脚本

• 七、高频报错速查:从现象快速定位权限、路径、依赖和对象问题

• 八、备考心得与冲刺清单:把每个考点练成可验证的操作闭环

一、环境搭建

1.1 虚拟机与操作系统

备考阶段应尽量使用接近考试机的环境。我采用 VMware Workstation 16 与银河麒麟高级服务器版 V10 SP2,既能练习图形管理工具,也能覆盖无图形界面时的命令行操作。建议给虚拟机预留足够的磁盘、内存和快照空间,安装完成后立即做一个基础快照,后续练习失败时可以快速恢复。

经验:图形界面中的复制粘贴依赖完整的桌面会话、VMware 客户机工具以及宿主机到虚拟机之间的剪贴板链路。若复制粘贴失效,先执行 echo $DISPLAY;如果没有输出,说明当前不是可用的 X 图形会话。进入桌面后,再检查 open-vm-tools 或 VMware Tools 的 vmusr 进程。

1.2 磁盘扩容

初始化实例需要创建系统表空间、用户表空间以及多组联机日志文件。虚拟机默认 20 GB 磁盘很容易不足,典型报错是 No space left on device。扩容前先确认根文件系统、分区和 LVM 的实际布局,以下命令仅适用于根分区位于 /dev/sda2、文件系统为 XFS 的常见麒麟 LVM 环境。

image.png

易错点:不要在没有确认设备名、分区号、卷组和文件系统类型时直接照抄命令。growpart 不可用时,可以使用 parted 调整分区末端;ext4 文件系统应使用 resize2fs,而不是 xfs_growfs。

二、达梦安装与实例初始化

2.1 创建安装用户并准备目录

image.png

安装用户负责软件目录和数据库运行文件。生产环境不要把安装目录或系统目录设置为 777;只需将目标目录的所有者设置为 dmdba,组设置为 dinstall,并授予满足安装和运行需要的权限。

2.2 命令行安装

image.png

经验:提示临时目录空间不足时,通常是安装程序需要在 /tmp 解压文件。将 DM_INSTALL_TMPDIR 指向容量充足且 dmdba 可写的目录即可。无图形环境出现 gtk_init_check failed 时,不要继续排查显示库,直接使用 -i 命令行安装。

2.3 使用 dminit 初始化实例

image.png

image.png

2.4 服务与连接验证

初始化成功并不等于数据库已经可用。注册或启动服务后,应同时验证进程、端口和数据库连接。考试中只看启动命令的返回结果,容易把实例名、端口或配置文件用错。

image.png

三、表空间、用户、角色与资源限制

3.1 先理解对象之间的关系

• 表空间是逻辑存储容器,一个表空间可以包含一个或多个 DBF 数据文件。

• DBF 是表空间的物理文件,一个 DBF 只属于一个表空间。

• 模式是对象的命名和归属空间,不直接对应某个 DBF。

• 一个模式中的不同表、索引或分区可以位于不同表空间;多个模式也可以共用同一表空间。

• 角色是权限集合,用户获得角色后继承其中的系统权限和对象权限。PROFILE 管口令、会话和资源限制,不负责业务表访问权限。

3.2 创建表空间

image.png

验证:创建完成后在管理工具中查看表空间状态、数据文件路径、当前大小和自动扩展上限。创建对象时通常指定表空间,不直接指定某个 DBF。

3.3 创建资源限制和角色

image.png

上例表示连续登录失败达到 5 次后锁定,锁定持续时间为 5 分钟;旧密码需要经过 3 次密码变更后才能再次使用;账户连续 90 天未登录时锁定。PASSWORD_LIFE_TIME 表示密码有效期,不等同于“90 天未登录锁定”。

3.4 创建用户并授予角色

image.png

易错点:DM8 的 CREATE USER 子句顺序不能随意调整。PROFILE 应写在 DEFAULT TABLESPACE 和 DEFAULT INDEX TABLESPACE 之前。考试按题目授予权限,不要为了省事给普通业务用户 DBA 或 SELECT ANY TABLE。

四、数据对象管理

4.1 建表 约束与装载顺序

建表时应一次性核对数据类型、主键、外键、唯一、检查、默认值和非空约束。存在外键关系时,应先创建并装载父表,再处理子表。例如部门表是员工表的父表,员工表又是考勤日志表的父表,正确顺序是部门、员工、考勤。

CREATE TABLE "U_DMSALM"."DEPT" (
DEPTNO INT PRIMARY KEY,
DNAME VARCHAR(30) NOT NULL
) TABLESPACE "TSAL";

CREATE TABLE "U_DMSALM"."EMP" (
EMPNO INT PRIMARY KEY,
ENAME VARCHAR(30) NOT NULL,
DEPTNO INT,
SALARY DEC(10,2) CHECK (SALARY >= 1800),
CONSTRAINT FK_EMP_DEPT FOREIGN KEY (DEPTNO)
REFERENCES "U_DMSALM"."DEPT"(DEPTNO)
) TABLESPACE "TSAL";

易错点:IDENTITY 自增列通常不需要在 INSERT 中显式赋值。若题目明确要求保留原序号,才在确认语法和作用范围后开启 IDENTITY_INSERT,并在完成后关闭。

4.2 普通视图

普通视图只保存查询定义,不保存结果数据。它适合封装常用连接、隐藏不需要暴露的字段并统一查询口径。创建视图时,连接关系写在 JOIN ON 中,业务过滤写在 WHERE 中,聚合过滤写在 HAVING 中。

CREATE OR REPLACE VIEW "U_DMSALM"."V_EMP_SAL" AS
SELECT E.EMPNO,
E.ENAME,
D.DNAME,
E.SALARY
FROM "U_DMSALM"."EMP" E
JOIN "U_DMSALM"."DEPT" D
ON E.DEPTNO = D.DEPTNO
ORDER BY E.SALARY DESC;

4.3 物化视图

物化视图会保存查询结果,因此读取速度通常比复杂的实时聚合更快,但基表变化后结果可能变旧。COMPLETE 是全量刷新;FAST 依赖满足条件的物化视图日志;ON DEMAND 表示按需手工刷新。

CREATE MATERIALIZED VIEW "U_DMSALM"."MV_DEPT_SAL"
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS
SELECT D.DNAME,
MAX(E.SALARY) AS MAX_SALARY,
AVG(E.SALARY) AS AVG_SALARY
FROM "U_DMSALM"."EMP" E
JOIN "U_DMSALM"."DEPT" D
ON E.DEPTNO = D.DEPTNO
GROUP BY D.DNAME;

REFRESH MATERIALIZED VIEW "U_DMSALM"."MV_DEPT_SAL" COMPLETE;

4.4 索引

索引通常建在经常出现在 WHERE、JOIN 和 ORDER BY 条件中的列上。索引创建后无需在 SELECT 中显式调用,优化器会根据数据量、统计信息和查询条件决定是否使用。索引会占用空间,也会增加 INSERT、UPDATE 和 DELETE 的维护成本。

CREATE INDEX "U_DMSALM"."IX_EMP_DEPTNO"
ON "U_DMSALM"."EMP"(DEPTNO)
TABLESPACE "TINDEX";

EXPLAIN SELECT *
FROM "U_DMSALM"."EMP"
WHERE DEPTNO = 10;

4.5 存储函数返回多个值

函数可以通过 RETURN 返回主结果,再通过 OUT 参数带回附加信息。异常分支不应只返回错误码而忽略 OUT 参数,最好同步返回可识别的说明。

CREATE OR REPLACE FUNCTION "U_DMSALM"."F_GETGZ"(
P_EMPNO INT,
P_DEPTNO INT,
O_BZ OUT VARCHAR
) RETURN DEC(10,2)
AS
V_SALARY DEC(10,2);
BEGIN
SELECT S.BASICSAL + NVL(S.BONUS, 0), S.COMM
INTO V_SALARY, O_BZ
FROM "U_DMSALM"."SALARY" S
JOIN "U_DMSALM"."EMP" E ON S.EMPNO = E.EMPNO
WHERE E.EMPNO = P_EMPNO
AND E.DEPTNO = P_DEPTNO;
RETURN V_SALARY;
EXCEPTION
WHEN OTHERS THEN
O_BZ := SQLERRM;
RETURN -1000;
END;
/

五、逻辑备份与跨模式导入

dexp 和 dimp 用于逻辑导出与导入。用户级导出适合备份某个用户拥有的全部模式对象;跨用户恢复时,目标用户必须先创建,并通过 REMAP_SCHEMA 指定源模式与目标模式的映射关系。导出和导入命令应在 Linux 终端执行,而不是在管理工具的 SQL 查询窗口中执行。

image.png

导入前在管理工具中以具备管理权限的账户创建目标用户,并按题目要求配置默认表空间、索引表空间、PROFILE 与角色。下面只展示最小示例。

image.png
易错点:出现 Permission denied 通常是操作系统目录权限不正确;出现“无效的对象”常见原因是把目标模式填进了源模式列表。导入时源模式仍是 U_DMSALM,映射参数才写 U_DMSALM:SAL_BAK。

导入完成后,不要只看“成功终止导入”。应查看日志中的导入对象数量,并用带模式名的 SQL 验证表、视图和数据行数。

SELECT OWNER, TABLE_NAME
FROM DBA_TABLES
WHERE OWNER = 'SAL_BAK';

SELECT COUNT(*)
FROM "SAL_BAK"."EMP";

六、dmPython 安装与连接

dmPython 安装失败通常集中在两个方面:找不到达梦安装目录,或当前用户无权写入系统级 site packages。先设置 DM_HOME、PATH 和动态库路径,再优先使用用户级安装,避免对系统目录执行 chmod 777。

image.png

image.png

排错:import dmPython 报 libdmdpi.so cannot open shared object file 时,重点检查 LD_LIBRARY_PATH;连接报 -70028 时,依次确认实例是否启动、端口是否监听、主机地址与端口是否正确,以及防火墙和认证信息。本机测试可使用 127.0.0.1,远程连接必须填写数据库服务器的实际地址。

七、高频报错速查

现象

常见原因

处理方向

No space left on device

虚拟磁盘、分区、LVM 或文件系统未真正扩容

依次检查 lsblk、pvs、lvs、df -hT,定位哪一层未扩展

gtk_init_check failed

当前环境没有可用的 X 图形会话

改用命令行安装或初始化;需要 GUI 时先启动桌面会话

违反引用约束 6607

子表数据引用了不存在的父表键

先导入父表,再导入子表;核对外键列值和数据类型

CREATE USER 在 PROFILE 附近报错

子句顺序错误

将 PROFILE 放在 DEFAULT TABLESPACE 和 DEFAULT INDEX TABLESPACE 之前

dimp 提示无效的对象

把目标模式当成源模式,或映射关系写反

源模式取自 dmp,使用 REMAP_SCHEMA=源模式:目标模式

dmPython Permission denied

普通用户尝试写系统级 site packages

使用 python3 setup.py install --user,或由管理员规范安装

未知表或视图

当前模式不是对象所属模式

SQL 中写完整模式名,例如 HR.T_EMP,并核对授权

八、备考心得与冲刺清单

DCA 备考强调实际操作。具体考试形式应以当期官方通知为准。有效复习不是重复阅读命令,而是将每个考点练成一条完整链路:明确使用哪个账户和目录,执行操作,查询验证结果,再演练一次失败后的恢复方法。

8.1 建议的练习顺序

  1. 独立完成一次命令行安装、实例初始化、服务启动和 disql 连接。

  2. 创建表空间并添加第二个 DBF,查看状态、容量和自动扩展属性。

  3. 创建 PROFILE、角色和用户,用新用户验证权限,再撤销权限复测。

  4. 从零创建带主键、外键、唯一、检查和默认值约束的表,并按依赖顺序装载数据。

  5. 创建普通视图、物化视图和索引,刷新物化视图并查看执行计划。

  6. 完成一次用户级逻辑导出,再映射导入到另一个用户,核对对象和行数。

  7. 创建并调用存储过程或函数,安装 dmPython 并完成连接、查询和关闭。

  8. 至少进行两次 120 分钟全流程模拟,记录每个任务的耗时和故障回退步骤。

8.2 考前最后检查

• 能说清用户、模式、角色、PROFILE、表空间和 DBF 的区别与关系。

• 所有跨模式 SQL 都能主动写出完整模式名,避免未知表或误操作当前模式。

• 熟悉 disql、Manager、dexp、dimp 和 dmPython 的使用边界。

• 记住父表先于子表、源模式先于目标映射、物化视图刷新后再验证。

• 遇到报错先看完整错误信息、当前账户、当前路径、端口、对象所属模式和操作系统权限。

• 每道题完成后立即执行验证 SQL,不把“命令已运行”当成“任务已完成”。

结语

DCA 的知识点并不孤立:安装目录决定工具位置,实例参数决定连接方式,表空间承载对象,用户和角色控制操作范围,逻辑导入导出又依赖模式和权限。把这些关系串起来之后,许多看似不同的报错都会归结为路径、权限、对象归属或执行顺序四类问题。备考阶段最值得保留的材料,不是零散命令,而是一份经过验证的操作清单和错误处理记录。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服