
简介面向达梦DM8数据库DCP认证备考的笔试题解析文档适合具备一定数据库基础、计划参加认证考试的IT人员也可供企业DBA在运维达梦数据库时参考。题目覆盖单选、多选、判断等常见题型围绕SQL基础、DML/DDL/DQL语句、事务与回滚、约束与索引、视图、权限管理、备份恢复、数据迁移及数据守护等考点展开。内容预览中还涉及BETWEEN边界、COUNT函数与NULL、TO_CHAR/INITCAP/RPAD等字符函数、ORDER BY执行顺序、WHERE与HAVING区别、外键作用、对象名大小写敏感和分页查询等易考点兼具理论辨析与实操判断。资源为docx格式压缩包共1个文件约125KB内容包含题干、选项与答案解析便于按专题复习和模拟自测。已有509人学习下载适合考前集中刷题、查漏补缺也可帮助初学者理解达梦DM8常见操作的出题逻辑与易错点。1. 达梦DM8的DCP笔试考的不是达梦是「差异」很多人备考达梦DM8的DCP认证第一反应是找本官方文档从头背到尾。我的经验恰恰相反这套笔试真正卡的不是达梦有多少个新特性而是“达梦和Oracle、MySQL到底哪里不一样”。你会Oracle会MySQL但你不一定知道达梦DM8的DECODE在空值处理上和Oracle有细微差别你知道Oracle的redo log却不一定答得上来DM8的归档模式下日志切换的触发条件。DCP认证笔试的题目设计核心就是从这些“差异点”里出题专门拦截那些只背概念、没动过手的人。这篇文章不是把题库搬给你而是把我备考和辅导别人过程中总结出来的核心知识点分布、题型套路、答题技巧和踩坑记录拆开讲。适合三类人准备报考DCP的开发者、正在做信创项目选型的架构师以及想在简历上加一项国产数据库认证的运维工程师。读完你能做两件事知道每个模块该花多少精力以及拿到一道陌生题时用什么逻辑把它推理出来。2. 考点地图与核心知识点DCP笔试最爱考的四个模块2.1 存储与体系架构页、簇、段和缓冲区的出题套路达梦DM8的存储模型脱胎于传统关系型数据库但细节上做了自己的取舍。笔试里关于存储的题目十个里有七个在考“层级关系”和“默认值”。先说层级。DM8的逻辑存储结构是数据库 - 表空间 - 数据文件 - 段 - 簇 - 页。页是最小的I/O单位默认大小是8KB但建库时可以选4KB、8KB、16KB甚至32KB。簇由连续的页组成默认一个簇是16个页。段是一组簇的集合一张表或者一个索引就是一个段。这个层级关系看起来简单但题目会换着花样考比如问“一个簇包含多少个页”“页大小在建库后能不能改”。CREATE TABLESPACE tbsp_user DATAFILE /dm8/data/DAMENG/tbsp_user01.dbf SIZE 128 AUTOEXTEND ON NEXT 16 MAXSIZE 2048;这段SQL是建表空间的常见写法。SIZE 128表示初始128MBAUTOEXTEND ON开启自动扩展NEXT 16是每次扩展16MBMAXSIZE 2048是上限2GB。笔试不会让你手写建表空间但会考你NEXT参数的单位、MAXSIZE不写会怎样——不写的话默认是不限制大小这在生产环境里是个隐患。缓冲区这块DM8最核心的参数叫BUFFER_POOL_SIZE它决定了数据页缓存在内存里的总大小。笔试题喜欢这么出给你一个场景说某系统内存16GB业务是OLTP类型问你怎么设置初始缓冲区大小。这里有个经验值OLTP系统里缓冲区设置成物理内存的20%~30%是比较常见的起点但实际要结合MAX_OS_MEMORY这个总内存上限参数来看。MAX_OS_MEMORY限制了DM8能从操作系统拿多少内存笔试考的是这个概念——它不是一个“设越大越好”的参数设太大反而会和操作系统本身抢内存。2.2 SQL兼容细节DECODE、NVL、ROWNUM的笔试考法达梦DM8最主打的能力是“Oracle兼容”所以DCP笔试里SQL语法题的比重相当大而且专门挑那些“看似兼容、实际有坑”的写法来考。DECODE函数是高频考点。Oracle里写DECODE(col, 1, 是, 0, 否, 未知)达梦DM8是完全支持的包括里面的空值匹配逻辑。但笔试的陷阱通常出在NVL和NULLIF的组合使用上。NVL(a, b)在a为NULL时返回b这个两边一致但NVL的参数求值顺序在达梦里会有一次额外的空值判断这个在性能调优题里算是一个小知识点。SELECT emp_id, NVL(bonus, 0) AS bonus_amount FROM t_emp WHERE dept_id IN (SELECT dept_id FROM t_dept WHERE dept_name LIKE 研发%);ROWNUM是另一个重灾区。Oracle里ROWNUM在ORDER BY之前赋值所以WHERE ROWNUM 10 ORDER BY salary DESC取到的不是“工资最高的10条”而是“任意10条再排序”。达梦DM8为了兼容保留了这个行为。但DM8也有Oracle 12c之后的FETCH FIRST子句写法是SELECT ... ORDER BY salary DESC FETCH FIRST 10 ROWS ONLY这才是真正取“前10名”。笔试题会故意把这两者混在一起出。除了函数事务隔离级别也是选择题常客。DM8默认隔离级别是读已提交READ COMMITTED这跟Oracle一致但跟MySQL的默认可重复读REPEATABLE READ不同。题目如果问“达梦DM8默认隔离级别”答案是读已提交不是可重复读。这个点我见过太多人搞混因为他们是从MySQL转过来的。2.3 备份恢复与日志场景题的主战场备份恢复是DCP笔试里分值占比最高的模块之一因为它直接关系生产安全。题目很少直接问“备份有哪几种”而是给你一个故障场景让你选恢复方案。DM8的备份分物理备份和逻辑备份两类。物理备份用BACKUP DATABASE命令又分联机备份和脱机备份逻辑备份用dexp和dimp工具类似Oracle的exp/imp。笔试爱考的点是什么场景用物理备份什么场景用逻辑备份。物理备份适合全库恢复、灾难恢复速度快逻辑备份适合迁移部分表、跨版本导数据但恢复速度慢而且不支持增量。归档日志这个考点几乎每年都出现。DM8的归档模式默认是关闭的生产库必须打开否则物理备份只能做脱机全备做不了增量。判断一道题是不是在考归档看它问没问“能否做联机增量备份”。还有日志切换的触发条件日志文件写满、手动执行ALTER SYSTEM SWITCH LOGFILE、或者达到ARCHIVE_TIMEOUT设定的时间阈值。ALTER DATABASE ADD ARCHIVELOG DEST /dm8/arch, TYPE LOCAL, FILE_SIZE 256, SPACE_LIMIT 4096; ALTER DATABASE ARCHIVELOG;上面两条命令第一条是添加归档日志配置DEST指定归档目录TYPE LOCAL是本地归档FILE_SIZE 256表示每个归档文件256MBSPACE_LIMIT 4096是归档空间上限4GB。第二条是打开归档模式。笔试里会考的细节是SPACE_LIMIT不写的后果——默认是无限增长会把磁盘写满这是生产环境的一个经典事故点。表空间恢复和时间点恢复是进阶考点。DM8支持表空间级恢复RESTORE TABLESPACE配合备份集可以把单个表空间恢复到指定时间点而不影响其他表空间。笔试题会混淆“数据库级恢复”和“表空间级恢复”的适用场景特别是当题目说“只需要恢复某个表空间其他表空间数据不能丢”的时候答案一定是表空间级恢复。2.4 安全与审计权限模型的选择题陷阱达梦DM8的安全体系参考了主流数据库的权限模型但有几个细节和Oracle不同是选择题的天然陷阱。第一个是SYSDBA和SYSAUDITOR的职责划分。Oracle里DBA就是最高权限但DM8里权限拆得更细SYSDBA管数据本身SYSAUDITOR管审计两者是平级的不是包含关系。笔试题问“谁能查看审计日志”答案是SYSAUDITOR不是SYSDBA。第二个是密码策略。DM8有专门的PWD_POLICY参数控制密码复杂度默认值是2含义是“密码长度和字母数字组合”具体的策略位图如下值含义0不设策略1只检查密码长度2长度 字母数字组合4长度 大小写 字母数字8长度 大小写 字母数字 特殊字符注意这个不是叠加的而是按位判断的。常见陷阱题系统要求密码必须同时包含大小写和数字问PWD_POLICY设置多少——答案是642的组合效果但如果题目问“同时满足长度、数字、大小写、特殊字符”则是842115。这类题目考的是位运算逻辑很多人只记住了数字没记住是位或组合。审计功能本身也常考。DM8的审计分为系统级审计和对象级审计开启方式不同。系统级审计用SP_SET_AUDIT_LOB这类存储过程对象级审计用AUDIT语句。笔试更爱考的是审计记录的存储位置——DAMENG_AUDIT目录下的.log文件而不是数据库表里。这个和Oracle的SYS.AUD$表不一样是达梦自己的实现。3. 高频题型拆解DCP笔试选择题的四种考法与答题示范3.1 概念辨析型近义词选项怎么定位关键差异概念辨析题是试卷里数量最多的题型特征是四个选项看起来都对只是措辞不同考的是精确记忆。先看一道典型的模拟题以下关于达梦DM8簇CLUSTER的描述正确的是 A. 簇是数据库最小的I/O单位 B. 一个簇包含的页数在建表空间时可配置 C. 簇的大小固定为16个页 D. 一个段只能包含一个簇这道题的答案是B。A错在最小I/O单位是页不是簇C错在“固定”二字默认是16个页但建表空间时可以指定扩展参数D错在一个段包含多个簇。这类题目的答题逻辑不是背答案而是抓住每个选项里的绝对化词语。看到“固定”“只能”“必须”“所有”这类词先打个问号因为达梦的设计大量保留了可配置空间。C和D就是靠“固定”“只能”这两个词暴露问题的。真题的难度比这道高会把三个模块的知识点混在一个题干里。比如问“以下关于DM8物理备份的描述正确的是”选项里混入逻辑备份、归档日志、表空间恢复的概念。这时候你要做的不是判断每个选项对不对而是先判断这个选项描述的是不是“物理备份”这个对象。我自己的习惯是先看每个选项的主语主语不对的直接排除正确率能提升两成。3.2 语法结果型给一段SQL问输出或报错语法结果型题目会给一段完整的SQL问执行结果、返回行数或者会不会报错。这类题考的是对兼容细节的掌握是最能拉开分差的题型。SELECT NVL(NULL, 0) AS A, DECODE(NULL, NULL, 1, 0) AS B FROM DUAL;问上达梦DM8执行A和B分别是什么A的结果是0这个没有争议。关键是BDECODE(NULL, NULL, 1, 0)在Oracle里返回1因为DECODE做的是空值相等的判断达梦DM8为了保持兼容行为一致也是返回1。但如果你换成CASE WHEN NULL NULL THEN 1 ELSE 0 END返回的就是0因为SQL里NULL NULL的结果是UNKNOWN。这道题的考试意图很明显它考的不是你会不会用NVL而是你分不分得清DECODE和CASE在处理空值时的语义差异。答题技巧是只看最外层函数判断它是“等值匹配”语义还是“NULL判断”语义。DECODE是等值匹配NULL等于NULL在它的语境里成立CASE里的是SQL标准比较NULL不等于NULL。还有一类考法是给一个UPDATE语句问影响行数。这时候要看有没有WHERE条件以及条件里有没有NULL判断。比如UPDATE t SET col 1 WHERE col2 NULL这个语句永远更新不了任何行因为col2 NULL恒为UNKNOWN。但UPDATE t SET col 1 WHERE col2 IS NULL就能正常更新。这种题纯靠细心我看过很多人在这里丢分——不是因为不会而是因为扫得太快。3.3 场景决策型故障处理顺序的答题逻辑场景决策题通常描述一个生产事故让你选处理步骤。这类题把两个考点结合起来一是你知不知道相关命令二是你知不知道命令的执行顺序。某业务库的磁盘空间被归档日志写满数据库实例无法正常写入。以下处理顺序最合理的是 A. 直接删除归档目录下的日志文件 B. 用 RMAN 清理归档再扩充磁盘 C. 暂停业务清理归档日志并验证一致性再恢复业务 D. 重启数据库实例答案是C。A的坑在于直接删归档文件会导致备份链断裂后续做增量恢复时会找不到对应的归档B的问题是RMAN是Oracle的工具达梦用的是DM系列命令这一点本身就是陷阱D重启实例确实能暂时恢复写入但起不来多久因为磁盘空间没有释放而且直接重启有数据一致性风险。这道题暴露了场景题的三个答题原则。第一题目里如果出现别的数据库工具名大概率是干扰项第二任何涉及文件删除的操作必须考虑“删除之后对备份链的影响”第三生产故障的处理顺序永远是“先止损、再定位、最后恢复”。我在备考时总结了一个口诀看到“空间不足”先想归档看到“实例崩溃”先想日志看到“误删数据”先想备份恢复。每个故障场景对应一个第一操作这样读题时不用看完四个选项就知道正确方向在哪。3.4 参数记忆型默认值、单位与生效方式的记忆技巧参数记忆题是纯记忆题没有太多推理空间但可以通过归类来降低记忆量。DCP笔试最常考的参数集中在三个方向内存类、日志类、备份类。内存类核心是BUFFER_POOL_SIZE单位是MB日志类核心是LOG_SIZE单位也是MB备份类核心是SPACE_LIMIT单位同样是MB。DCP考试有个特点几乎所有参数的单位都统一用MB极少出现页数或块数。所以遇到不确定单位的题目选MB的胜率很高。生效方式也是考点。有的参数是静态参数改完要重启才生效有的是动态参数ALTER SYSTEM SET ...之后立即生效。笔试喜欢考的那几个参数里BUFFER_POOL_SIZE属于动态参数可以不用重启直接修改但MAX_OS_MEMORY属于静态参数修改后必须重启实例。给一个做题技巧凡是“限制操作系统的内存上限”这类影响进程级的参数基本都要重启凡是“修改缓存大小”这类实例内的资源参数基本都不需要重启。还有一个高频参数是COMPATIBLE_MODE它控制兼容模式可以在Oracle模式和MySQL模式之间切换。笔试题会问“达梦DM8默认的兼容模式是什么”或者“切换兼容模式后哪些行为会变化”。默认值记一个Oracle兼容模式。但要注意切换兼容模式是有限制的不是随便能切部分功能在切换后不可用这个细节也是题目爱挖的坑。4. 实战答题技巧四步读题法把正确率提到九成4.1 先读题干最后一句再回头补条件DCP笔试的题干通常很长一个场景题能写三四行描述。大脑在连续阅读时会对前面的条件产生惯性遗忘。我的做法是先看最后一句话确定“这题在问什么”。是问“哪个是正确的”还是问“哪个是错误的”是问“第一步怎么做”还是“最终选择什么工具”明确问题方向之后再回头读描述条件这时候你的大脑会带着目标去提取信息速度和准确率都会提升。特别是“以下错误的是”这种反向提问很多人因为惯性思维选了本来正确的选项这种丢分最冤。4.2 Oracle经验对照法已知推未知DCP备考人群里绝大多数有Oracle或者MySQL的使用经验。这两个经验都可以映射到达梦DM8上但映射规则不一样。从Oracle转过来的人优势在SQL和备份恢复概念上。达梦的dexp/dimp对应Oracle的exp/impDISQL对应SQL*Plus表空间、段、簇的概念也高度相似。答题时遇到不确定的达梦行为可以把题面里的达梦换成Oracle先选出Oracle答案再检查题目有没有“兼容”“默认”这类修饰词没有的话这个答案大概率就是达梦的答案。从MySQL转过来的人架构和备份的思考方式需要调整。MySQL的InnoDB有独立的表空间达梦的表空间更接近Oracle的集中管理方式。如果题目问表空间数据文件的扩展参数不要套MySQL“独立表空间”的思维。反向判断也是一个办法选项里凡是明显照搬MySQL行为特征的先排除掉。4.3 绝对化表述优先排除模糊表述更可能是答案出题人设计干扰项有一个规律正确选项通常表述严谨干扰项喜欢用绝对化词语。比如“DM8的页大小固定就是8KB不可修改”——这里的“固定”和“不可修改”就是标志词。事实上DM8建库时可选4KB到32KB。反过来带有“通常”“一般”“默认情况下”“多数场景”这类模糊修饰语的选项是正确答案的概率高得多。因为数据库行为几乎都存在配置变化的可能出题人不会把一个没有例外情况的表述作为正确答案。但有一种例外要注意题目特别问了“某参数在某个特定版本里的默认值”这时正确答案可能就是一个精确数字而不是模糊表述。识别方法是看题干有没有出现具体的限制条件比如“在DCP默认安装配置下”“使用DM8初始化参数模板”这类词。4.4 标记与时间分配两轮答题策略DCP笔试题量大平均每道题分配的时间不到一分钟。我习惯用两轮答题法。第一轮快速扫题凡是能一眼看出答案的立刻作答凡是需要推理或者拿不准的先在题号上画个圈。第一轮不纠结保证把会做的分全部拿到。第二轮集中处理标记的题目优先做那种“四个选项能排除两个”的题做完就能保证分数过半最后再做完全不会的题用排除法和常识蒙一个不要空着。还有一个细节注意试卷中各模块的题量分布。通常备份恢复和SQL语法占比最高如果做到后面发现时间不够了优先保证这两类题目的检查时间它们的分值单价最高。5. 备考避坑与常见问题排查5个让我返工的典型误区5.1 现象只背参数默认值不去理解单位换算答题时算错空间备考初期我在刷题时遇到一道归档空间计算的题题干给了SPACE_LIMIT 4096问归档上限是多少GB。我直接写了4096GB错了。原因是SPACE_LIMIT的单位是MB4096MB等于4GB。原因达梦DM8的参数单位大多是MB但题目常常不直接标单位需要你自己换算。解决备考刷题时每遇到一个带数值的参数就顺手在笔记里标注单位并换算成GB写一遍。考试时如果拿不准单位就看选项——如果选项之间差着1024倍关系基本就是在考单位换算。5.2 现象把Oracle的备份命令直接套到达梦上场景题失分模拟练习时有一道场景题问“对某个表空间做联机备份使用什么命令”。我选了Oracle的ALTER TABLESPACE ... BEGIN BACKUP结果答案是错的。达梦DM8的备份不用进入备份模式直接执行BACKUP TABLESPACE即可。原因达梦的联机备份机制和Oracle不同Oracle需要手动开启备份模式标记数据文件达梦会自动处理一致性。解决凡遇到备份恢复相关命令一律以达梦官方语法为准。我的记忆技巧是达梦把“备份谁”直接写在BACKUP后面语义更直白不需要额外的状态切换。5.3 现象刷模拟题只看正确答案不看干扰项换考法就懵A同学备考时刷了上千道模拟题正确率很高但正式考试时题目一换说法就翻车。后来复盘发现他刷题时只看正确选项从不分析错误选项为什么错。考试题的干扰项设计是有规律的比如把“段”和“簇”的父子关系对调、把“归档日志”写成“重做日志”、把“联机备份”换成“热备份”这种同一事物的不同叫法。原因知识点本身会但题面里的同义词替换和近义词混淆切断了知识点和题目之间的映射。解决刷题时正确的选项也要问一句“另外三个为什么不对”。特别是概念辨析题把每个错误选项的错误点用红笔标出来积累几套题之后你会发现错误选项的错法就那么几类。这个习惯能把同样一套题的收获放大三倍值得坚持。5.4 现象忽视建库时的页大小答恢复题时逻辑自相矛盾有一次给同事讲解一道恢复题题目说“用备份集恢复数据库但恢复后提示页大小不一致”。我想当然地认为备份集里包含了所有信息恢复时不会校验页大小结果错了。达梦DM8的备份集记录建库时的页大小恢复目标库的页大小必须和备份集一致否则恢复失败。原因这个知识点隐藏在“备份恢复的先决条件”里不是高频考点但出题人会拿它当拦路题。解决把备份恢复的先决条件整理成一个清单包括页大小一致、备份集有效、归档日志完整、目标库实例处于脱机状态。每次遇到恢复题先在脑海里过一遍清单看题目有没有在这些条件上做文章。5.5 现象实验环境不开归档导致增量备份和恢复操作全部失败我搭建本地实验环境时图省事建库后没开归档直接执行增量备份命令报了错一开始还以为是命令语法写错了。查日志发现是归档模式未开启。原因DM8的增量备份依赖归档日志没有归档就不知道上次备份到现在的数据变化无法生成增量备份集。解决建库之后的第一件事就是配置并开启归档模式。这个习惯会让后续所有备份恢复实验顺畅很多。如果你不想手动敲命令达梦也提供了初始化工具可以图形化配置但笔试考察的是命令行能力建议命令行走一遍。6. 进阶技巧用最小化环境把笔试答案「验」一遍DCP笔试里很多细节光靠背非常容易记混但如果你搭一个最小化的本地环境亲手把题目的结论跑一遍记忆深度完全不同。我备考时验证了几个最常考的知识点这套流程你也可以复现。环境只需要一个能跑Linux的虚拟机或容器分配2核4G内存即可。安装DM8开发版后按顺序做四件事初始化一个实例建库时选择8KB页大小开启归档模式建一张测试表插入数据做一个全量备份再做一个增量备份。整个过程用到的命令如下./dminit PATH/dm8/data DB_NAMEDAMENG PAGE_SIZE8 ./dmserver /dm8/data/DAMENG/dm.ini -- 另开终端 disql SYSDBA/SYSDBAlocalhost:5236 ALTER DATABASE ADD ARCHIVELOG DEST /dm8/arch, TYPE LOCAL; ALTER DATABASE ARCHIVELOG;dminit是初始化实例的工具PATH指定数据目录DB_NAME是数据库名PAGE_SIZE8就是笔试里反复出现的页大小参数。启动实例后开归档然后你就能验证那个经典结论未开启归档时执行BACKUP DATABASE INCREMENT WITH BACKUPDIR一定会报错。亲手看到那个报错信息比你背十遍“增量备份需要归档”都有用。然后做下一个实验验证DECODE的空值行为SELECT DECODE(NULL, NULL, 1, 0) FROM DUAL; SELECT CASE WHEN NULL NULL THEN 1 ELSE 0 END FROM DUAL;在DISQL里执行这两条语句结果分别是1和0。看完输出再回头做那道选择题你永远不会忘。这套“先建库、再开归档、然后验证两个SQL”的流程总共不到半小时但覆盖了DCP笔试里至少10分的考点。我自己备考时最后一个晚上什么都没背只做了一件事把笔记里所有含“默认值”的知识点整理成一张卡片逐条用SQL或者命令验证一遍。验证不了的就在卡片上打个问号第二天重点回顾。这个习惯帮我把最容易丢分的参数记忆题从“猜”变成了“确定”。现在每次遇到有人问我DCP怎么备考我都会建议他们先搭环境不要一头扎进题海里。希望帮到你。本文还有配套的精品资源点击获取