多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

达梦DM8 DCP笔试解析:SQL语义、备份恢复与避坑冲刺

达梦DM8 DCP笔试解析:SQL语义、备份恢复与避坑冲刺 简介这是一份达梦 DM8 数据库认证笔试题解析文档专门面向备考达梦认证考试以及需要日常维护达梦数据库的 IT 从业者、数据库管理员。内容围绕认证考试常见的单选、多选与判断题型展开覆盖 SQL 语言基础、数据库对象创建与管理、事务处理、索引和视图、备份与恢复、权限设置、数据迁移工具使用、数据守护配置等核心考点同时穿插真实运维场景帮助读者将理论与实践结合。整个资源包仅含 1 个 docx 文档压缩后约 125KB下载后可在本地离线阅读。目前已有 509 人学习题目难度适中既有基础概念判断也有像对象大小写敏感、TO_CHAR、INITCAP、RPAD 等 SQL 函数细节、分页查询与 WHERE 和 HAVING 区别这类易错点的拆解。通过系统刷题与答案解析备考者能快速查漏补缺并增强达梦数据库的日常管理与排错能力。1. 达梦DM8数据库DCP认证笔试题解析会背概念与会选答案之间隔着一条实践鸿沟第一次考达梦DM8数据库DCP认证笔试的人普遍有个错觉既然考的是选择题和判断题那把文档背熟就够了。真上考场你会发现大多数题不是问“是什么”而是扔给你一个具体场景问“这么做行不行、结果是什么”。比如页大小能不能改、NULL参与运算返回什么、联机备份是不是必须开归档——这些知识点操作过一遍和只看过一遍答起来完全是两个状态。这篇解析不做教材复述按考试视角把高频考点重新排序题型怎么分布、体系架构怎么记、SQL和备份恢复的关键判断点在哪最后给一套考前冲刺清单帮你把“眼熟”变成“能答对”。2. 先拆方向DCP笔试的题型分布与四类高频考察方向备考DCP最怕的不是题难是方向散。DM8涉及的东西从SQL语法、存储结构一路铺到集群、导入导出如果平均用力三个月都不够。我习惯先把参加过的同学反馈汇总一下分清哪些是大头、哪些是偶尔出现再决定时间怎么分。考试范围再大落到笔试题上也有规律可循与其埋头背全部不如先按分值权重做取舍。2.1 题型与节奏选择、判断、SQL运行结果题各占多少精力按最近几个批次考完的同学反馈来看DCP笔试题型大致是单选、判断、多选和少量SQL结果分析题具体比重会随批次浮动但有两件事几乎不变一是概念判断题数量多、分值碎二是SQL结果题虽然条数少却是拉开分差的地方。建议不要在单选上抠太久一时拿不准就标记下来把时间留给最后的结果题。题型备考重心考场节奏单选概念准确区分易混术语每题控制在40秒内判断绝对化措辞找反例读题时先圈“任何”“一定”SQL结果执行顺序、NULL、聚合函数留足15分钟宁慢勿错判断和多选是“看着都会、一对答案就错”的重灾区后面第5章专门展开。SQL结果题考察的通常不是复杂语法而是NULL、隐式转换、聚合函数和分组顺序这些基础细节平时在DIsql里多跑几组小查询比背十页笔记都管用。我备考时每天固定跑五条类似的验证型SQL到后期看到题目基本能预判输出。2.2 体系架构考点页、簇、段与表空间之间的换算关系DM8的逻辑存储结构考试喜欢从大到小考表空间→段→簇→页。记住一个核心换算页是数据库中最小I/O单位多个页组成簇簇是空间分配的最小单位。DM8默认每簇16个页页大小在建库时可选4KB、8KB、16KB、32KB。这套关系在笔试题里往往不直接问定义而是让你算容量。-- 模拟题已知页大小8KB每簇16页。 -- 求1个簇的大小以及1个2GB数据文件能划分出多少个簇。 SELECT 8 * 16 AS 每簇大小_KB; -- 128KB SELECT 2 * 1024 * 1024 / 128 AS 簇数; -- 16384计算本身不难坑在单位换算题目给的2GB要先换算成KB再除很多人直接用MB除结果差1024倍。我习惯把公式固定成“簇数 文件大小(KB) ÷ (页大小(KB) × 16)”多练两道手感就出来了。换成分数也没关系关键是页和簇的倍数关系不能记反。还有一个高频判断点页大小、簇大小、字符集在建库时确定之后不能直接修改。遇到“可以通过参数动态修改页大小”这类表述直接判错。这不是操作够不够深的问题是DM8的设计约束笔试题反复在这里设卡。另外段是表空间内用于存放特定类型数据的空间集合考试很少让展开但你得知道表和索引的数据最终落在段里段又由簇构成。2.3 建库参数与字符集笔试里容易被“默认”两个字带偏的点建库相关考点集中在这几项页大小影响单行长度上限和表空间容量字符集影响字符串存储与排序大小写敏感参数影响对象名和字符串比较。DM8建库时字符集可选GBK、UTF-8、GB18030等一旦建库后要改只能重建或迁移它与页大小一样是“建库定终身”的参数。考试中常见的描述是“字符集可以在配置文件中随时切换”这句话的正确答案是错的。大小写敏感算是DCP考生翻车重灾区。开了大小写敏感不带引号的对象名会被转换成大写存储查询时字符串比较也区分大小写关掉敏感对象名和字符串统一按忽略大小写处理。笔试常拿“创建表T后用select * from t访问”这句话做判断——答案取决于建库参数不是固定错误。遇到这类题干第一反应不是背结论而是找题干里有没有“默认参数”四个字。到这儿方向基本清楚了架构和建库参数是地基占分不算最多但错了会影响后面SQL和备份题的判断值得先花两天过一遍。后面第三、四章进入真正拉分的知识点每一组都要能说清“为什么”。3. 对象与SQL考点数据类型、索引、存储过程哪几项最常出现刷客观题到第二轮你会发现SQL部分翻来覆去就那几个考点NULL、聚合、隐式转换、索引、对象权限。这一章把最容易出题的语义点按答题视角拆一遍。笔试里SQL题很少让你写完整语句更多是给你一段SQL片段让你判断结果、判断对错所以读题比写题更重要。3.1 NULL与三值逻辑DCP客观题里最经典的丢分点SQL里NULL不是0也不是空字符串它表示未知。与NULL做任何比较运算结果既不是TRUE也不是FALSE而是UNKNOWN。这句话是SQL结果题的根所有丢分几乎都从它来。很多考生记住“NULL是未知”这句话但一碰到实际查询就忘说明概念没有和查询结果绑定。-- 模拟题现有 t(a) 数据为 (1), (NULL), (2) -- 以下两种写法各返回几行 SELECT COUNT(*) FROM t; -- 返回 3统计行数 SELECT COUNT(a) FROM t; -- 返回 2统计非NULL值个数COUNT(*)数的是行COUNT(a)数的是a列非NULL的行数这题在模拟练习里正确率不到七成。题目改成WHERE a1很多人以为返回2实际NULL行不参与任何比较结果只有一行即a2那行。如果把条件改成WHERE a1 OR a1直觉上“所有行都满足”实则NULL行两个条件都为UNKNOWNOR的结果还是UNKNOWN最终仍然只返回一行。再举一个组合SELECT NULL 15 FROM DUAL结果还是NULL。字符串拼接NULL也返回NULL达梦部分兼容模式下有特殊处理但默认语义按NULL传播记。判断“NULL可以用NULL比较”是错的必须用IS NULL或IS NOT NULL。笔试里看到“ NULL”“ NULL”直接圈错不用犹豫。3.2 索引类型与代价判断B树、位图、全文索引的用途边界索引题考两类一是类型选型二是代价判断。DM8常见索引包括二级索引B树族、位图索引、全文索引、空间索引。判断题最爱说“位图索引适合高基数列”这是把方向记反了——位图索引适合低基数、取值少且分布稳定的列比如性别、状态B树索引才适合高基数和范围查询。索引类型适合场景常见错误表述B树二级索引高基数、范围查询、排序“索引能加速所有排序”位图索引低基数、OLAP过滤“位图索引适合频繁插入的表”全文索引大文本模糊检索“全文索引可以替代所有LIKE查询”每个错误表述都能在错题汇编里找到对应版本。比如“索引越多查询越快”听着合理但INSERT、UPDATE、DELETE要同步维护索引索引过多写性能必然下降正确答案是“索引不是无条件的”。DCP笔试不要求你调优只要求你判断“这个场景这样选行不行”所以记场景比记语法更实用。还有一个常见误区在列上建了索引查询就一定走索引。实际优化器还要看统计信息和选择率小表全表扫描可能更快。题干如果是“刚建完索引执行计划显示全表扫描说明索引没生效”答案大概率是错的先查统计信息才是正路。语句写法、参数设置、数据分布都会影响计划把“走索引”当必然结果是典型的外行判断。3.3 存储过程、触发器与事务控制PL/SQL题怎么读题干存储过程和触发器在DCP笔试里占比不高但每年都有。考点集中在CREATE OR REPLACE PROCEDURE的语法顺序、流程控制结构、异常处理以及触发器的事件类型。判断题常考“触发器可以取代完整性约束”这不是完全没有道理但答案是错——约束是声明式的、数据库保证的触发器是过程式的、有成本和时序问题两者定位不同不能互相替代。-- 模拟题片段判断下面这段过程体的结构是否完整 CREATE OR REPLACE PROCEDURE p_test(a INT) AS BEGIN IF a 10 THEN PRINT(large); END IF; END;达梦存储过程用AS分隔声明部分BEGIN...END包住过程体IF要配END IF这个配对是笔试改错题的高频对象。考前把“IF-END IF、LOOP-END LOOP、BEGIN-END”的配对过一遍看到缺END直接判错。还有一类题干故意把RETURN写在过程体中间问是否合理答案要看场景但多数情况下提前RETURN会让后面的清理逻辑失效不是好写法。事务控制要分清隐式提交与显式提交。DIsql里默认每条语句自动提交但存储过程内部不会随语句结束自动提交得靠COMMIT显式提交。判断题常拿“存储过程执行完即事务提交”来设卡答案是错的。保存点、回滚段这些概念也会出现记住SAVEPOINT配合ROLLBACK TO可以只回退到保存点而不是整个事务。4. 备份恢复与高可用把流程图换成选择题的判断力备份恢复是DCP笔试里分值最实的板块因为它和日常工作绑定最深题目出得也最细。这一章把最难记的几组关系——备份类型、归档模式、还原恢复顺序、集群角色一一说清楚。很多考生能背下工具名却答不对“这个场景该用哪个”问题在于没把概念串成流程。4.1 物理备份、逻辑备份、归档模式三组概念的对应关系物理备份拷贝的是数据文件、控制文件、日志这些实际字节用DMRMAN工具完成逻辑备份导出的是数据内容用dexp导出、dimp导入类似逻辑层面的转储。考题爱问区分物理备份能不能跨平台恢复答案是不能它与操作系统和架构强相关逻辑备份能不能按用户、表导出答案是可以它本来就是按对象导。备份方式常用工具备份对象常见判断点物理备份DMRMAN数据文件、日志、控制文件同版本同平台才能恢复逻辑备份dexp / dimp用户、模式、表数据可单独导出某张表联机备份数据库运行中全部或指定表空间需配置归档模式脱机备份数据库关闭状态全部数据文件不依赖归档这里有一个高频关联考点联机备份要求数据库处于归档模式下不是OPEN状态下想备就能备。判断题“数据库处于非归档模式也能执行联机完全备份”答案错。脱机备份在关闭状态下做不依赖归档但代价是业务窗口。归档的本质是保留重做日志的副本好让数据库能恢复到故障前它和备份是两件事考题最爱把这两者混在一起说。4.2 还原与恢复的边界先RESTORE再RECOVER的顺序逻辑RESTORE还原是把备份里的数据文件放回原位RECOVER恢复是用归档和联机日志把数据推进到故障发生前的时间点。笔试很喜欢考顺序还原必须在恢复之前反过来不行。因为不还原就没文件可应用日志这个顺序题几乎每年都出现。还有一版变体问“只做RESTORE不做RECOVER能不能打开数据库”答案是不能数据文件之间、文件与日志之间不一致数据库无法对外服务。增量备份的判断题是另一个失分点增量备份要基于某个基准备份不是单独存在。DMRMAN里执行增量备份前系统会检查基础备份是否存在题目若说“第一次做增量备份前不需要完整备份”直接判错。备份集保留策略也常考比如备份文件被手工删除后相关增量备份链失效恢复时可能找不到起点这不算系统故障是人为破坏了备份链。4.3 主备、MPP与DSC集群题最常出现的三个判断方向高可用方向DCP常考三种形态主备、MPP、DSC。主备DataWatch是主库业务读写、备库实时同步并可只读切换靠监视和管理工具MPP是分布式并行强调多节点协同算一份大查询DSC是共享存储集群多节点访问同一套存储。选择题给一个场景让选架构时抓关键词“读写分离”“实时备库”选主备“大查询并行”“多节点各自算一部分”选MPP“共享存储”“节点故障自动接管”选DSC。主备同步参数题主备之间可以配同步、异步等模式同步模式丢数据风险最低但延迟高异步模式性能好但主库故障时可能丢最近事务。判断题“同步模式下主备一定不丢数据”要判错同步只保证日志已传递到备库若备库也同时损坏仍然会丢。别小看这个“同时损坏”考试就是拿绝对词引诱你。集群题还有一个隐藏考点切换分自动和手动是否启用自动切换取决于集群配置不是所有主备都默认自动。看到“主备故障后无需任何人工干预即可自动接管”必须判断集群是否配置了自动切换机制不能默认成立。选项里出现绝对词先找反例这在第5章还会细讲。5. 避坑专题DCP笔试里反复出现的五类陷阱题前面几章按考点走这一章按坑走。以下五类陷阱题是备考复盘时出现频率最高的每一条都按“现象-原因-解决”写考前看一遍能少错两三道。笔试最大的特点就是时间紧、题干短、陷阱密很多时候不是不懂而是被措辞带偏。5.1 绝对化措辞的判断题看到“任何”“一定”“只能”先留个心眼现象“任何情况下都优先使用位图索引”“数据库只能通过DIsql访问”这类题通常会吸引人凭感觉选对实际全是错的。原因DCP判断题爱用绝对化副词制造陷阱而数据库场景几乎处处有条件边界。位图索引在小基数、低更新场景下才适用DIsql只是DM8众多访问方式中的一种写“只能”必然不成立。解决读题时把“任何”“一定”“只能”“必须”圈出来试着想一个反例想得出来就判错。想不出反例的再回到概念本身判断不要被语气带着走。5.2 默认值与级联操作建表语句里的隐藏坑现象题干写“两个表有外键约束删除主表记录后从表数据自动删除”很多人直接选对。原因外键约束的默认行为是受限即存在子表引用时不允许删除主表记录只有明确指定ON DELETE CASCADE才会级联删除。解决凡是涉及删除、更新连带效果的题先找题干里有没有ON DELETE、ON UPDATE字眼没有就按无级联处理。类似的还有“空值约束默认允许重复”这些都是建表默认行为题目不写就是没配置不要自行脑补。5.3 日志与备份的连带关系开归档是不是联机备份的前提现象“开启归档后数据库性能必然大幅下降”“脱机备份也必须开启归档”两个判断都错。原因归档模式影响的是写日志时的额外动作性能影响要看业务写入量和归档路径谈不上必然脱机备份在关闭状态进行不依赖在线日志。解决把“联机备份需归档”“脱机备份不需归档”这组对应关系背死。归档是日志保留机制不是备份本身题目把两者混写时就按“备份是拷贝数据文件、归档是保留日志”拆开看。5.4 统计信息与执行计划性能题的“玄学”其实有确定答案现象“刚收集完统计信息执行计划一定会变”看着像是对的实际优化器还要综合成本、参数、是否重新解析统计信息是输入不是开关计划不变是正常的。原因性能类判断题里的“一定”“必然”后面几乎都藏着没写出来的条件。统计信息影响成本估算成本估算参与计划选择但不是唯一因素所以没有必然结果。解决性能题理成一条线统计信息、执行计划、索引三者是“影响”关系不是“决定”关系。题干出现“一定变”“一定快”“一定走索引”答案都往“错”的方向靠这是DCP笔试里性价比最高的判断技巧。5.5 模拟题自测五秒判断你的坑点在哪下面五句话五秒内给判断再对照解析页大小在建库后可以动态调整。NULL 1 的结果是 FALSE。COUNT(*) 会忽略列值为 NULL 的行。联机备份必须开启归档模式。主备同步模式下主库崩溃必然不丢数据。答案分别是错、错、错、对、错。第2题NULL比较结果是UNKNOWN不是FALSE第3题COUNT(*)统计的是行数不因某列为NULL而跳过第5题同步能降低丢数据概率但备库同时故障时仍然会丢。五道题能一次过说明常用语义掌握得比较扎实错两道以上回看对应章节别急着刷题先把判断方式纠正过来。6. 考前两周把这份解析转换成冲刺清单时间紧张时别按教材章节顺序从头翻按下面这个节奏走效率会高很多前三天过体系结构、建库参数和存储换算重点是页、簇、表空间的倍数关系第四到第七天集中做SQL语义验证把NULL、COUNT、连接、隐式转换各写一组小查询在DIsql里跑一遍第八到第十天啃备份恢复与集群画一张“备份类型-归档-还原顺序”的流程图每天睡前默写一遍最后四天回到错题只整理判断句里的陷阱词。阶段天数核心动作架构与参数1-3天背换算公式区分动态/静态参数SQL语义4-7天每组SQL跑真实结果不靠猜备份与集群8-10天画流程图练顺序判断错题冲刺11-14天只过陷阱句不刷新题我的习惯是每天固定抽20分钟在DIsql里把容易混的SQL再跑一遍跑一次比看十遍笔记记得牢。剩下时间回到错题清单把错过的判断句归纳凡是绝对化表述优先找反例凡是涉及默认行为先问题干有没有指定。这套方法的来源是我第一次考DCP前的翻车经历。那时只背不练进了考场才发现很多题的坑不在知识量在判断方式比如明知道位图索引适合低基数列看到选项换个说法就动摇了。后来把判断方式单独训练通过率明显上去。你备考时如果时间紧先把第5章的坑过一遍再回头补知识点顺序反了反而容易在细节里出不来。希望帮到你。本文还有配套的精品资源点击获取
返回列表