DCA培训可以选择视频培训或者视频直播授课,我选择了在线直播线上培训,直播授课是3天,讲师讲的讲义内容和考试范围基本差不多,我是培训完成后就报名参加7天后的考试了。
安装数据库管理系统--初始化实例(注意相关参数的设置)--管理实例(启停实例)--连接数据库(manager/disql)--表空间管理--用户、角色、资源限制项的创建、权限管理--表管理(创建表、表的五大约束)--导入数据--视图创建(复杂视图、物化视图)---索引创建---逻辑备份---逻辑还原---建存储过程、函数--ODBC/python接口的配置。
我把整个备考分成了三个阶段,最后那个阶段我觉得是真有救的:
阶段 1:看讲义(0.5 天)。纯看,不敲,标记"我好像懂"和"我完全懵"两类。后者用红笔,前者用铅笔。
阶段 2:红笔部分集中练(1.5 天)。每个懵的点单独开一个 VM 快照,反复练到不报错为止。
阶段 3:全真模拟(2 天)。严格按照考试时间,所有题目一气做完。中间不停、不查手机、不上小蓝鸟(划掉)。
我个人最有效的不是看了多少讲义,而是第二阶段。
当时我列了一个"红笔清单",考前两天基本只练这些:
这 8 个点练不熟,考场大概率翻车。 别的顺一遍就行。
讲义说:"以 dmdba 用户运行安装程序"。我心想,这不有手就行?然后以 root 跑完,服务起不来,日志里 permission denied 一片红。当时的我:chown -R dmdba:dinstall /data 一下不就行了?
行,但是 chown 之后,redo log 文件权限可能还是不对(因为我之前用 root touch 过)。最干净的做法:从建目录开始就 dmdba 干,root 只负责建 /data 这一个空目录,后面全交给 dmdba。 别偷这个懒。
图形化安装又是另一个段子。VM 里 ./DMInstall.bin 报 Cannot connect to X server?你大概率是没配 DISPLAY。这事讲义是写了的,但讲义写的像操作手册,没人会当回事——直到你真的卡住。
宿主机执行 xhost +、VM 里 export DISPLAY=:0.0、xdpyinfo 验证下,这三个动作缺一不可。我当时就是因为少 xdpyinfo 验证,搞了半小时才意识到 DISPLAY 没生效。
不过考试过程不需要太担心,考试默认提供dmdba用户操作,已经默认配置好了环境变量DISPLAY,不过生产中没有与配置了,需要自己踩坑排错。
页大小、簇大小、字符集、大小写敏感、数据库名。
这几个参数一旦点"下一步",改的代价等于推倒重来。考场上不要相信自己的眼睛,题目里写了啥就填啥,别自作主张"反正题目没说,我就用默认"。题目里没说 = 用默认,但你得先确认默认是啥。
有一个考点,讲义会轻飘飘带过:表空间创建时到底要不要自动扩展。 也就是 AUTOEXTEND ON/OFF 这个开关。
题目如果明说"创建表空间 XXX,初始 128M,允许自动扩展,每次扩展 64M,最大 2G",你就老老实实写:
CREATE TABLESPACE TBS_TEST DATAFILE '/dm8/data/xxx/TBS_TEST.DBF' SIZE 128 AUTOEXTEND ON NEXT 64 MAXSIZE 2048;
坑:题目如果没提自动扩展,默认就是 OFF,但达梦这边有版本差异——有的版本默认是 ON,所以我的建议:题目没提就显式写 OFF,别赌默认。
普通视图没难度,CREATE VIEW + 子查询,10 秒钟的事。
物化视图才是真考点,而且年年都考。 两个最容易栽的地方:
① 刷新方式:ON DEMAND vs ON COMMIT vs ON STATEMENT。考试 90% 让你写 ON COMMIT,但这种视图必须基于有主键的表,而且会拖慢提交。
② 手动刷新:DBMS_MVIEW.REFRESH('MV_NAME', 'C'); —— C=complete(全量),F=fast(增量),?=force(系统自己挑)。
注意题目要求"每分钟刷新一次",结果直接用 ON COMMIT,主表数据改了视图不动,被扣了分。物化视图刷新策略,题面没明说就写 ON COMMIT + 手动 refresh 兜底,千万别赌。
索引这块,值得记的反而是函数索引:
CREATE INDEX idx_upper_name ON TEST(UPPER(NAME));
SELECT * FROM TEST WHERE UPPER(NAME) = 'A'; -- 走索引
SELECT * FROM TEST WHERE NAME = 'a'; -- 不走!
不写 UPPER() 就走不到,函数索引就是这么死板。
讲义列了一堆参数,我背了三遍都记混,后来想了个办法——把它理解成"圈"。
考试过程,如果不记得命令,可以尽量使用图形化操作
特别注意:
考试时候可能会让你指定使用对应的dmp文件存放路径以及dmp文件名;
如果们没有对应的路径,需要使用用户mkdir创建
跨用户/跨表空间导入是另一个高频翻车点:
字符集不一致这个坑真的是"装X 失败现场"——你一通操作猛如虎,最后发现 dmp 文件里的 GB18030 字符塞不进 UTF-8 库。
考试内容是dmPython的接口配置,dmPython 简单,会装会用就行;
默认的路径在数据库安装路径下的drivers/python/dmPython下有setup.py文件
$ python3 setup.py install
接口配置经常因为环境变量出现执行失败,尽量实验时候多做几次,把报错以及解决办法都过几遍;
比如我考试时候就出现一样报错了。
错误原因:
这是 DPI 环境问题,因为 dmPython 的运行需要使用 dpi 动态库,需要将 dpi 所在目录(通常是数据库安装目录的 bin 目录)加入系统的环境变量。
解决方法:设置 PATH 包含 dpi 驱动。如下:
[root@localhost ~]# export PATH=$PATH:/dm/dmdbms/bin
调用的模板脚本,在考试时候会说明具体路径,你可cd 到对应路径修改好需要的参数,即可测试链接数据库;
不管你练得多熟,考场上一定会有"题目环境和你练的不一样"的情况。我的几个习惯救过我:
1.第一题花 5 分钟通读所有题,会做的先做,不会的标"回头做"。简单题拿稳了,难的才有底气慢慢想。
2.每步操作后立刻 SELECT 验证。建表后 DESC,赋权后用新用户连一下。别等全做完才发现第一步是错的。
3.端口号、用户名、密码,题目给啥用啥。别想当然用 5236 和 SYSDBA/SYSDBA,考题里这些参数经常被换。
4.dexp/dimp 出错先看字符集,再看表空间,最后看用户权限。按这个顺序排,80% 的报错你能找到根因。
5.不要和某道题死磕 10 分钟。跳过,回头再做,可能前面做完的某个操作解锁了一个你没想到的依赖。
最后一条是真的——我那次考场上第二题卡了 15 分钟,跳过去做完第三题再回来,5 分钟就解决了。有时候前面建的用户/表空间,就是后面题目的前置条件,你自己都没意识到。
DCA 这个考试,说难不难,但它真的不是"看完讲义就能过"的那种。它考的是手速 + 熟练度 + 出错时能快速定位的综合能力。
考场上别慌,别贪,别在某个报错上原地爆炸。慌了做的决定,八成是错的;贪了想全做完,八成是漏的。
加油,考完请自己吃顿好的!
附:考前参考SQL
# 切换到 dmdba 用户
su - dmdba
# 创建备份目录
mkdir -p /dm/backup/dexp
# 执行导出
dexp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/dmhr.dmp LOG=/dm/backup/dexp/dmhr.log SCHEMAS=DMHR
-- 创建用户
CREATE USER DMHREXP IDENTIFIED BY Dameng123;
-- 授予角色权限
GRANT RESOURCE, PUBLIC, SOI, VTI TO DMHREXP;
dimp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/dmhr.dmp LOG=/dm/backup/dexp/dmhr_imp.log FROMUSER=DMHR TOUSER=DMHREXP
文章
阅读量
获赞
