DCA考试心得
本次参加了DCA相关的培训和考试,在参与考试之前,我对LINUX和达梦数据库的认识仅停留在使用XSELL执行oracle脚本以及处理卡住的进度,以及使用达梦图形化工具进行一些数据运维的程度。
培训老师非常详尽地讲述了数据库相关的知识,并辅以实操演示,听课后就觉得受益匪浅。不过课程和实操毕竟是两件事,在线下具体按照操作手册执行时出现了各种问题,且在参加考试的时候,因为操作不够熟练浪费了一点时间解决安装问题,导致最后没有时间去做中间一道大题。
本文将会列举DCA相关的知识要点,并记录我在实操中遇到的问题及相应的解决办法。
建议平时练习就新建 dmdba 用户,使用 dmdba 用户登录操作,和考试环境保持一致。
考试时仔细确认数据库安装目录,需要提前手动创建并赋权限。
平时练习可能需要挂载磁盘和设置临时目录,考试时无需设置,直接在 /opt/xxx 目录下安装。
图形化安装方式:./DMInstall.bin
常见问题
tmp文件夹空间不足
原因:执行安装操作时,默认的安装地址指向主文件夹的TMP,一般的TMP空间大小仅几百M,不满足安装要求,因此需重新创建临时安装目录,并将安装地址赋给这个目录。
#创建临时目录,并进入.bash_profile 的编辑状态
[dmdba@localhost ~]$ mkdir -p /home/dmdba/tmp
[dmdba@localhost ~]$ vi /home/dmdba/.bash_profile
export DM_INSTALL_TMPDIR=/home/dmdba/tmp #使修改后配置文件生效
[dmdba@localhost ~]$ source /home/dmdba/.bash_profile
严格按照考试要求设置数据库目录、数据库标识和初始化参数等,需要设置内容较多,不要遗漏。
图形化创建实例工具位于 tool 目录。
初始化实例不太容易出现问题,需要保持细心,每一步按照考题相关要求走,安装地址和安装文件夹的命令等都要正确,不然会影响后续考试内容的进行。
这个知识点不会考,但是在练习当中遇到了部分设置需要重启实例才能完成的情况,需要在对应服务的文件夹内容对指定服务进行控制。
另外,卸载数据库需要提前停止相关服务,不然卸载会出现问题。
systemctl start DmServiceDBSERVER.service
./DmServiceDBSERVER stop
./DmServiceDBSERVER restart
tool文件夹下用./manager,打开图形化界面
需要先用xhost指令确定图形化界面指定在哪个桌面
Echo $DISPLAY
Export DISPLAY=:0.0 --指定当前界面(考试时就修改为ECHO指令读取的桌面信息)
常见问题
XHOST相关指令本质就是要求把显示窗口呈现到指定桌面,并启动图形化相关的文件,考试时不需要专门调整,但是本机操作需要专门指定,不然就会报启动错误缺少相关配置文件,务必注意。
安装时报错:“No more handles [1]”:
解决方法:切换到root用户,在命令行中执行xhost +命令,允许安装用户(如dmdba)调用图形界面进行安装。
关键点:完全按题目要求
是否开启自动扩展
最大扩展大小
注意点:
最大扩展单位是 M
如果题目要求 1G,实际填写1024M
创建用户登录时disql,命令的密码如果带有@符号需要将密码采用引号框住
配置角色的时候需要注意相关权限的赋予不要出问题,不然后续会导致相关操作失败。
字段名、字段类型不要写错
字段一旦错,后续导数据会全部失败
图形化界面中:NUMBER 和 NUMERIC 极易选错
约束在建表时一次性完成:主键、外键、其他约束
我一般会直接以SQL语句进行表创建和外键还有约束的配置,并且确认无误后再提交任务,这样不容易出问题,语句中写错了也可以直接检查出来
代码参考:
CREATE TABLE EMP(
EMPNO INT NOT NULL PRIMARY KEY, ---员工编号 (主键)
ENAME VARCHAR(50), ---员工姓名
HIREDATE DATE, ---入职日期
COMM TEXT, ---备注
DEPTNO INT REFERENCES DEPT(DEPTNO)); ---部门编号 (外键)
关键点:完全按题目要求
命令行执行:
./disql DMTEST/Dameng123:5238
start /opt/script1.sql
达梦图形化管理界面:
如果在窗口下执行,则是`/...sql 示例:将/opt/test.sql批量导入到库中
常见问题
考试会将相关的sql脚本和python脚本放在固定的文件夹下,直接执行即可,也可以提前查看脚本内容,判断是否自己表创建出现了问题。
会考复杂视图!!!
会考察聚合函数,连接函数,分组函数等相关知识,题目本身不太难,但是得花时间去写,平时如果没有大量练习,考试时一旦思路错误,就需要浪费大量时间改代码。
老师建议适当放弃这题,但是如果想要拿90分,在无法保证自己实操时一步不错的情况下,最好争取这里所有分数!!!
代码参考:
CREATE VIEW DMSALM.DM AS
SELECT
E.ENAME AS 员工姓名,
S.BASICSAL + S.BONUS AS 工资总额
FROM DMSALM.EMP E
LEFT JOIN DMSALM.SALARY S ON E.EMPNO = S.EMPNO
GROUP BY E.EMPNO, E.ENAME;
关键点:完全按题目要求,推荐图形化操作,比代码快很多
代码参考:
CREATE INDEX "IND_EMP_NAME" on "DMTEST"."EMP"("EMP_NAME");
关键点:完全按题目要求
开启归档
实例:开始归档,归档保存到/dm/data/arch目录下,文件大小128M
系统配置-转换归档-配置地址-重新打开
常见问题
在进行备份时出现错误
原因是dmap服务未启动,dmdba用户在dm8的bin目录下运行dmap即可。
关键点:完全按题目要求
用户和模式还原通过映射执行实现
常见问题
考试中逻辑备份和逻辑还原是难点,因为备份过程极其容易出现报错,而图形化操作的时候不会显示报错日志,建议在命令行执行备份,检查中间是否存在报错,然后再图形化执行还原,这样可以手动点选数据库映射对象,操作更快。
关键点:完全按题目要求,一开始准备了很多存储过程,结果考的不难,这里也是要求熟悉代码
代码参考:
CREATE OR REPLACE FUNCTION DMTEST.DMTEST_SELECT_NAME(IN_DEPTNO IN INT)
RETURN VARCHAR
IS
V_DNAME VARCHAR;
BEGIN
SELECT DNAME INTO V_DNAME FROM DMTEST.DEPT D WHERE D.DEPTNO=IN_DEPTNO;
RETURN V_DNAME;
END;
ODBC本质上是一种开放式数据库连接接口协议,借助ODBC配置数据相关连接信息,可以方便地在代码中直接对数据库进行调用和控制。
解压安装包(以 unixODBC-2.3.0 版本为例):
[root@localhost opt]# tar -zxvf unixODBC-2.3.0.tar.gz
源码安装三部曲(配置、编译、安装):
[root@localhost opt]# cd unixODBC-2.3.0/
[root@localhost unixODBC-2.3.0]# ./configure
[root@localhost unixODBC-2.3.0]# make
[root@localhost unixODBC-2.3.0]# make install
[root@localhost unixODBC-2.3.0]# odbcinst -j
vim /usr/local/etc/odbcinst.ini
填写配置如下:
[DM8 ODBC DRIVER]
Description = odbc driver for dm8
Driver = /dm/bin/libdodbc.so
#此文件是DM的ODBC驱动文件,需要按照实际DM安装目录找到对应文件后填上去
vim /usr/local/etc/odbc.ini
进入配置表并且填写驱动和数据库连接信息,主要是驱动名、连接IP、端口、用户名、密码等信息,需要按照实际配置来填写。
常见问题
一定要注意ODBC相关配置表是在usr文件夹下!!!不然安装完成后指向地址会出现错误
进入数据库安装目录,找到 drivers/python/dmPython 驱动
执行安装:
python3 setup.py install
然后手动对py脚本里数据库配置进行修改,进入python执行环境并执行相关脚本
安装常见报错与解决方案需要掌握,提前练习
常见问题1
/usr/local/lib64/python3.7/site-packages/ 没权限
解决方法:
mkdir -p /usr/local/lib64/python3.7/site-packages
chmod 777 /usr/local/lib64/python3.7/site-packages
常见问题2
cannot locate an Dameng software installation
解决方法:
export PATH=$PATH:/dm/dmdbms/bin
常见问题3
导包报错,找不到 xxx.so
使用 find 在数据库安装目录中查找
通常位于:
/dm/dmdbms/bin
配置动态库环境变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/dmdbms/bin
1、一定要仔细审题,严格按题目要求操作,答其所问即可,不要多做无关内容。
2、考试开始时的配置、安装等操作是基础,必须多次确认。一旦出错,可能全部推倒重来,代价非常非常大。
实操过程中无法预测会出现什么问题,一旦出现练习之外的错误,可能就要浪费时间去处理,所以操作一定要精准。
3、考试使用的VNC远程机器,会因为连接防火墙或者网络波动,导致在远程机器外往里面粘贴代码会卡住几十秒,对考试节奏和考试时间把控影响很大,建议尽可能在远程机器内进行代码编写。
gtk_init_check() failed ↩︎
文章
阅读量
获赞
