简介:这份达梦DCA考试题库文档面向备考达梦数据库管理员认证的考生及数据库初学者,系统梳理了认证考试的核心知识点。内容围绕达梦数据库的内存结构、线程结构、存储结构三大基础架构展开,涵盖数据缓冲区、日志缓冲区、共享内存池、用户线程与服务器线程、监听线程、数据库文件与文件组、段簇页关系、SYSTEM库特性及物理数据库结构等高频考点,并以选择题形式呈现,便于自测与查漏补缺。资源包内含1个doc文档,压缩包约318KB,体积轻巧,适合打印或移动端随时翻阅。目前已有443人学习下载,可作为考前冲刺的刷题清单,帮助读者快速定位薄弱环节、熟悉出题角度与常见易错选项,提升应试效率。
1. 达梦 DCA 题库到底覆盖哪些考点:从内存结构到并发处理的全链路拆解
很多人第一次接触达梦数据库,是在项目里被要求把 Oracle 或 MySQL 迁过去,结果打开管理工具一脸懵——实例、模式、表空间、文件组这些概念跟原来那套对不上号。这份《DCA考试题库.doc》解决的正是这个断层:它把达梦 DCA 认证要考的知识点按七个章节铺开,从数据库三大结构、安装卸载、日常管理,一路讲到存储结构、用户安全、模式对象和并发处理。适合两类人:一是准备考 DCA 认证、需要一份能对着刷的题库的从业者;二是刚接手达梦环境、想快速把核心概念和操作命令对齐的运维或开发。它不是官方教材,而是一份带答案和解析的考点浓缩,刷完能对达梦的整体骨架有个清晰认知。
2. 达梦数据库三大结构与线程模型:题库第一章的知识骨架
2.1 内存结构、线程结构、存储结构怎么区分
题库第一章开篇就抛出「DM 数据库由哪三大结构组成」,答案是内存结构、线程结构、存储结构。这三个词看着简单,但很多人做题时会把「物理结构」和「存储结构」搞混。达梦的存储结构侧重逻辑组织——文件组、段、簇、页这一套;物理结构则落到具体的数据文件、控制文件、日志文件上。理解这个区分,后面第四章讲文件组和第五章讲用户安全时才不会串。
内存结构里包含数据缓冲区、日志缓冲区、共享内存池等。日志缓冲区的作用是存放重做日志的内存区域,不是存数据块,也不是存回滚日志。共享内存池解决的是 DM Server 对小片内存频繁申请与释放的问题,同时降低 I/O 消耗。这几个点题库里反复出现,属于必背项。
线程结构是另一个高频考点。用户线程在用户请求连接到服务器时启动,不是启动实例时;服务器线程则在启动 DM 实例时启动,包括监听线程、工作线程等。监听线程的职责是监听用户连接请求并在客户端与服务器之间建立连接,不是监听故障或系统启动。这些细节在选择题里经常设陷阱,刷题时要把「启动时机」和「职责」分开记。
2.2 用一张对照表把线程和文件考点锁死
题库里关于线程和文件的题目分散在多处,我习惯把它们整理成一张表,刷题时直接对照记忆,比反复翻文档快得多。
| 考点 | 正确说法 | 常见错误选项 |
|---|---|---|
| 用户线程启动时机 | 用户请求连接到服务器时 | 启动 DM 实例时 |
| 服务器线程启动时机 | 启动 DM 实例时 | 用户建立会话时 |
| 监听线程职责 | 监听用户连接请求并建立连接 | 监听系统故障 |
| 数据库基本文件 | 控制文件、数据文件、回滚日志文件 | 备份文件 |
| 附加文件 | 配置文件、备份文件、预警日志、归档日志 | 控制文件 |
| SYSTEM 数据库 | 必须存在,不可脱机 | 可以脱机存在 |
| 段与簇关系 | 段由簇组成,簇是磁盘块的集合 | 簇是数据页的集合 |
这张表里的每一行都对应题库中的一道或几道题。比如「下列不属于 DM 数据库基本文件的是」答案是备份文件,因为备份文件属于附加文件。再比如「关于 SYSTEM 数据库说法错误的是」答案是「可以脱机存在」,因为 SYSTEM 库必须在线。把这些对照关系理清,第一章的题基本不会丢分。
2.3 安装卸载章节的操作类考点怎么记
第二章讲安装及卸载 DM 软件,考点分两类:环境要求和操作步骤。环境要求方面,题库明确说内存 256M 以下不满足运行要求,硬盘需要 5G 以上可用空间,系统盘至少 500M 剩余空间,网络协议为 TCP/IP。安装前的准备包括以管理员身份登录并检查磁盘空间、检查网络、卸载旧版本 DM、了解安装需求。
Linux 下安装步骤题库也给了:以管理员身份登录、挂载光盘、进入安装目录执行./DMInstall.bin、安装完毕后卸载光盘。注意这里没有「重启操作系统」这一步,题库里明确把它列为不需要的步骤。启动和停止服务的方式,Windows 下可以用菜单、Windows 服务、命令行;Linux 下可以用服务方式,进入/etc/rc.d/init.d执行./dmserverd start或./dmserverd stop。命令行方式则是进入 DM 服务器目录执行dmserver,启动后在同一个界面输入exit退出。
提示:题库中关于安装的题目容易把「重启操作系统」和「卸载光盘」混在一起考,记住重启不是必需步骤。
3. 管理达梦数据库与存储结构:从 iSQL 登录到文件组划分
3.1 管理工具与控制台的功能边界
第三章「管理达梦数据库」覆盖了 DM 管理框架的组件、服务启动停止、iSQL 使用、控制台工具功能、配置参数分类、警报和性能监视器。管理框架主要包括数据库实例、管理工具 Manager、控制台工具 Console、集群客户端工具 DMCC。iSQL 的作用是通过执行 SQL 命令对数据库进行增删改查,同时也能对数据库进行管理。
Windows 下登录 iSQL 的步骤:进入/dmdbms/bin运行isql.exe,输入login,然后输入服务器名localhost、用户名和密码SYSDBA、端口号12345,登录成功后用exit退出。Linux 下则是进入 DM 安装的 bin 目录执行./isql,后续配置相同;也可以直接在终端执行./isql SYSDBA/SYSDBA@localhost这种带连接串的形式。
控制台工具 Console 的功能包括配置服务器参数、启动和停止 DM 服务器、备份和还原数据库、查看系统信息。题库里有一道题问「不属于 DM 控制台工具的功能项」,答案是「管理用户登录信息」——这个功能不在 Console 里。性能监视器可以监视会话状态、性能指标变化、服务器事件(登录、退出、SQL 执行、提交、回滚、报错、死锁),但不负责监视「DM 服务器是否安装成功」。
3.2 配置参数分类与性能视图对应关系
DM Server 的配置参数分为内存相关、线程相关和其他相关三类。题库里有一道多选题问「分为哪三类」,答案是内存相关配置参数、线程相关配置参数、其他相关配置参数。数据缓冲区配置参数不属于这个分类维度。
性能视图方面,题库考了几组对应关系:v$SESSION描述服务器中会话的信息,v$LOCK描述锁的信息,v$BUFFER描述数据缓冲区的使用信息,v$FILESTAT描述服务器中的文件信息。这几组容易张冠李戴,建议按「视图名—描述对象」做成卡片反复过。
警报的定义是系统中发生的某种事件,比如特定数据库操作、出错信号、作业启动或执行完毕。警报用于通知操作员,可以定义产生条件和触发动作。题库里有一道题说「警报的内容是系统预定义的,不允许用户自定义新的警报」,这个说法是错误的——用户可以自定义警报。
3.3 文件组、段、簇、页的存储层级
第四章「管理数据库存储结构」是题库里概念最密集的一章。DM 数据库的基本结构中包含三类文件组:数据文件组、回滚文件组、重做文件组。数据文件组是显式设置的,用于组织数据文件、索引、分区等;回滚文件组是隐式设置的,可以新增回滚文件或增加容量;重做文件组也是隐式设置的,可以新增重做日志或增加容量。题库里有一道题把「重做文件组是显示设置的」列为错误说法,要注意。
存储层级从大到小是:文件组 → 数据文件 → 段 → 簇 → 页。段是簇的集合,可以跨越多个物理文件;簇是磁盘块的集合,是数据文件中一个连续的分配空间;页是 I/O 的基本单位和 B 树的一个节点。题库里有一道题说「簇是数据页的集合」,这是错误的,正确说法是「簇是磁盘块的集合」。
数据文件的物理结构:数据文件由多个簇组成,簇由多个数量固定的数据块组成。可以更改现有数据文件的大小,也可以添加新的数据文件。每个数据库至少有一个相关的数据文件,通常会有多个。
日志文件分为联机重做日志文件和归档重做日志文件。联机重做日志文件是系统当前正在使用的,用于存储用户对数据库所做的事务操作。归档日志文件可以将系统恢复至故障发生的前一刻。题库里有一道题说「当日志文件写满时,系统会立即将其清空再重新写入新的记录」,这是错误的——达梦不会立即清空,而是有相应的切换机制。
回滚日志文件作为单独的数据文件存储在磁盘上,可以为已有数据库添加新的回滚日志文件,可以增加原有回滚日志文件的大小,数据库创建时会自动生成一个回滚日志文件。
模式方面,用户的模式是用户账号拥有的对象集,可以看作包含表、视图、索引等对象的容器。系统为每个用户自动建立一个与用户名同名的模式作为默认模式,用户还可以用模式定义语句建立其他模式。各个模式之间可以执行数据的相互访问,只要授予相应权限。题库里有一道题说「各个模式之间无法执行数据的相互访问」,这是错误的。
注意:文件组和表空间在达梦里不是同一个概念,题库里没有出现「表空间」这个说法,答题时不要用 Oracle 的习惯去套。
4. 用户安全与模式对象:权限、角色、视图的考点拆解
4.1 登录、用户、模式的三层关系
第五章「管理用户安全性」的核心是登录、用户、模式三者的关系。一个登录只能对应一个数据库中的某个用户,单个数据库中最多只能有一个用户与某一登录对应。一个用户可以创建多个模式,一个模式中的对象可以被多个用户使用。一个用户可以访问所属数据库中任意模式的对象,只要授予他相应的权限。
新建登录时如果想对口令做限制,可以在口令策略页中定制该登录的口令策略,也可以在资源限制页中对口令做相应设置,比如使用期、宽限期等。题库里有一道多选题问「应该如何操作」,答案是「在口令策略页中定制该登录的口令策略」和「在资源限制页中对口令做相应设置」。
DM 的验证登录方式包括用户验证、操作系统验证、DM 服务器验证。管理员验证方面,DBA 必须具有创建或删除文件的操作系统权限,普通数据库用户不能具有这个权限。操作系统验证不会记录具体用户。对于 SYSDBA 和 SYSOPER,口令文件验证优先于操作系统验证。
登录失败提示「未经授权的用户」,有效的解决方法是使用 SYSDBA 登录解封此登录名。题库里有一道题问「应如何有效解决」,答案是「使用 SYSDBA 登录解封此登录名」。
4.2 系统权限与对象权限的撤销差异
权限分为系统权限和对象权限两种。系统权限不属于某个特定的方案对象,对象权限则是针对某个模式对象的。题库里有一道题问「哪些属于对象权限」,答案是 SELECT、UPDATE、INSERT、DELETE、REFERENCES、EXECUTE;「哪些属于系统权限」,答案是 CREATE、ALTER、DROP、BACKUP、AUDIT 等。
权限撤销方面,系统权限与对象权限的撤销有区别。撤销系统权限时不会产生级联效应,撤销对象权限时可能会产生级联效应。权限回收者必须是 DBA、DB_AUDIT_ADMIN 用户或 DB_POLICY_ADMIN 用户。题库里有一道题说「系统权限与对象权限的撤销没有区别」,这是错误的。
角色的作用是简化权限管理、动态地管理权限、有选择性地应用权限。角色分为系统级用户角色和数据库角色。系统角色是全局的,具有一定范围的系统权限;数据库角色只与数据库用户相关,与登录无关。非数据库管理员也可以创建新的角色,题库里有一道题说「非数据库管理员也可以创建新的角色」,这个说法是正确的。
视图权限方面,用户创建视图时需要检查其在所引用的视图或表上的 SELECT 权限。用户访问视图时都要检查该用户在视图所引用表或视图上的权限。如果视图的创建者也是其引用的视图或表的创建者,则不检查该用户在视图所引用的视图或表上的权限。
存储过程/函数的权限:创建时需要检查其在所引用的存储过程/函数、视图或表上的对应权限。访问系统存储过程/函数时不需要检查权限,但必要时在内部仍会检查用户是否具有相应的数据库权限或对象权限。用户自定义存储过程/函数时需要检查用户是否具有该过程/函数的调用权限,同时需要检查其是否具有该过程/函数中所引用的每一项存储过程/函数、视图或表的权限。
4.3 模式对象管理中的表、索引、视图、序列
第六章「管理模式对象」覆盖了模式、表、数据类型、数据完整性、索引、视图、序列、系统表。采用模式的原因包括:允许多个用户使用一个数据库而不会干扰其他用户;把数据库对象组织成逻辑组,便于管理;第三方的应用可以放在不同的模式中,避免名字冲突。模式类似于操作系统层次的目录,但模式不能嵌套。
模式与用户的关系:当系统建立一个用户时,会自动生成一个对应的模式;用户还可以建立其他模式;一个模式可以对应多个用户;一个用户可以拥有多个模式。题库里有一道题说「一个模式可以对应多个用户」,这个说法是正确的。
删除模式时选择级联删除,所有依赖此模式的对象都会被删除。查看数据库中某个特定模式,可以使用对象过滤功能。
表的创建方面,创建一个新表可以先不指定主键,可以选择将表中的数据进行压缩,可以将表中的某列进行分区设置,但表中不能存在两个同名列。数据类型中,CHAR、VARCHAR、NUMBER、NUMERIC、DATE、TIMESTAMP 属于常规数据类型,TEXT、IMAGE、BLOB、CLOB 属于大对象数据类型。
数据完整性包括实体完整性、参照完整性和用户自定义完整性三类。保证表中某列数据唯一性的方法包括将此列设为主键、为此列设置唯一性约束。条件约束类型包括唯一性约束、检查约束、主键约束、引用完整性约束。
索引方面,不应该建立索引的字段包括唯一值个数很少的字段。唯一索引可确保每个索引值是唯一的,索引可按升序或降序存储键值,可以使用重组索引对数据进行优化,在压缩的索引中重复的键值仍可能存在。
视图是从一个或几个基表(或视图)导出的表,但它是一个虚表。数据字典中只存放视图的定义,对应的数据仍存放在原来的基表中。通过视图可以有效控制不同用户的数据访问范围。当基表中的数据发生变化时,从视图中查询出的数据会随之改变。
序列方面,新建序列时可以使用默认最值,不是必须指定起始值或增量,也不是必须指定最值。系统表分为全局系统表和局部系统表,用于存储用户数据和数据库本身的数据,又称数据字典表。全局系统表记录整个系统的全局信息,只有 SYSTEM 库才有;局部系统表记录数据库自身信息,是每个数据库中都有的系统表。
5. 数据管理与并发处理:INSERT SELECT、MERGE、触发器考点
5.1 数据复制与更新的正确姿势
第七章「管理数据和并发处理」是题库的最后一章,也是操作类考点最集中的一章。有两张表 TEST1 和 TEST2,要将 TEST1 的部分内容复制到 TEST2 中,有效的方法是使用 INSERT SELECT 方式插入到 TEST2 中。逐条 INSERT 也可以,但题库里问的是「有效的复制方法」,INSERT SELECT 是更标准的答案。直接复制粘贴数据到表 TEST2 不是有效方法。
用户 A 希望更改 TEST 表中某行某列的数据,SQL 语句为UPDATE TEST SET NAME='YIMENG';,出错原因可能是没有指明 TEST 表所属模式,也可能是没有设置 WHERE 条件,还可能是为 NAME 设置的新值为非法数据。题库里有一道多选题问「出错原因可能是」,答案是「没有指明 TEST 表所属模式」「没有设置 WHERE 条件」「为 NAME 设置的新值为非法数据」。
使用 MERGE 命令插入一条记录时,如果该记录已经存在,则会更新原有记录中的相关列。用户对表中数据作出更改后又想恢复原值,最佳方法是使用 ROLLBACK 命令撤销更改操作。
5.2 PL/SQL、存储过程、函数、包、触发器的考点
PL/SQL 是达梦数据库的过程化语言,包括一整套的数据类型、条件结构、循环结构和异常处理结构。PL/SQL 可以执行 SQL 语句,SQL 语句中也可以使用 PL/SQL 函数。题库里有一道题说「PL/SQL 并不能支持所有的 SQL 数据类型和 SQL 函数」,这是错误的。
函数和存储过程的区别:PL/SQL 函数的代码中必须包含 RETURN 语句;存储过程可以没有返回值,而且使用 call 语句调用;存储过程的返回语句中可以带表达式;存储过程和存储函数都可以出现在表达式中。题库里有一道多选题问「说法正确的是」,答案是「PL/SQL 函数的代码中必须包含 RETURN 语句」「存储过程可以没有返回值,而且使用 call 语句调用」。
程序包是一个可以将相关对象存储在一起的 PL/SQL 结构,由包规范和包主体两部分组成。包规范必须先于包主体被定义。如果用户修改了包规范,相应的包主体并不会发生变化,题库里有一道题说「如果用户修改了包规范,相应的包主体并不会发生变化」,这个说法是正确的。
触发器的触发类型包括语句级触发器、行级触发器、事件级触发器、INSTEAD OF 触发器。题库里有一道题给出了一个触发器的定义,问它实现的功能,答案是「取消更新表 TEST2 中 ID 为 2 的记录的 NAME 值」。这类题需要读懂触发器里的条件判断和 RAISE 语句。
5.3 并发处理中的锁与事务考点
题库里关于并发处理的题目不多,但锁和事务是 DCA 考试里容易失分的地方。达梦的锁机制和 Oracle 类似,有共享锁和排他锁,行级锁和表级锁。事务的 ACID 特性在题库里没有直接考,但 ROLLBACK 的使用场景是明确出现的。
题库里有一道题问「用户对表中数据作出更改后又想将其恢复原值,选出下列最佳的实现方法」,答案是「使用 ROLLBACK 命令撤销更改操作」。这道题考的是事务回滚的概念,而不是手动改回原值或删除重插。
并发处理中还有一个考点是死锁。性能监视器可以监视服务器的事件,包括死锁。题库里有一道题问「下列哪项不属于 DM 性能监视器的功能」,答案是「监视 DM 服务器是否安装成功」。死锁的监视属于性能监视器的功能范围。
提示:题库里关于并发处理的题目偏少,如果时间充裕,建议结合达梦官方文档补充锁和事务的细节。
6. 刷题库的正确姿势:从错题定位到知识补全
刷这份题库,最忌讳的是只记答案不记原因。我自己的习惯是每做完一章,把错题按「概念混淆」「操作步骤记反」「权限关系搞错」三类归档。比如第一章错得最多的是线程启动时机,那就把用户线程和服务器线程的启动条件写在一张便签上,贴在显示器边上。第三章错得最多的是性能视图对应关系,那就把v$SESSION、v$LOCK、v$BUFFER、v$FILESTAT四个视图和它们的描述对象做成一张小卡片,每天过一遍。
题库里有些题是「选错误的说法」,这种题比「选正确的说法」更容易翻车,因为你要同时判断四个选项。我的做法是先不看选项,自己把正确说法默写出来,再逐个对照。比如「关于段、簇与页的说法错误的是」,我先默写「段由簇组成,簇是磁盘块的集合,页是 I/O 的基本单位」,然后看选项里哪个跟这个不符。这样比直接读选项判断要稳。
还有一类题是操作步骤排序或方法选择,比如「Linux 下使用服务方式启动和停止服务的方法」。这种题光看答案没用,得在虚拟机里实际敲一遍。我一般会装一个达梦的测试实例,把./dmserverd start、./dmserverd stop、./isql SYSDBA/SYSDBA@localhost这些命令都跑一遍,跑完再回来看题,印象会深很多。
最后一章题库里有一道关于触发器的题,给了一段触发器定义,问它实现的功能。这种题考的是读代码的能力,不是背概念。我的习惯是把触发器里的 WHEN 条件、RAISE 语句、UPDATE 操作逐行注释出来,然后用自己的话把逻辑复述一遍。如果复述不出来,说明还没读懂,得回去补 PL/SQL 的基础。
从那以后我每次刷题库,都会强制自己把错题的正确说法默写一遍,而不是只标记一个「已订正」。希望帮到你。
本文还有配套的精品资源,点击获取