DCA考试是达梦数据库官方认证的考试,主要考察对数据库的操作熟练程度,考试题目均为实际操作,比如创建一张表的操作,其中会描述表字段有哪些、表名称是什么等信息,判断考试是否得分也是看你操作结果是否符合他的描述要求。
本文会将考试涉及到的操作做了一次梳理,并用图形化、命令行等多种方式来操作,只要达到的结果是一样的,都能算操作成功。
这里的操作比较常规,创建安装目录、安装用户等
groupadd dinstall
useradd -g dinstall dmdba
mkdir /dm
chown -R dmdba.dinstall /dm
对于图形化工具的使用,需要去执行两条命令
在root用户权限下记录DISPLAY的值
切换到dmdba用户下之后,执行
export DISPLAY=前面查到的值
如果前面查看的值为空,这里就用:0.0来代替:
export DISPLAY=:0.0
再执行:
xhost +
也可以将以上两条命令放到dmdba的~/.bashrc文件中,这样每次打开终端就不用手工执行了。
在后面需要从终端命令行界面上执行打开图形化工具命令的时候,如果发生报错,就回头检查下当前DISPLAY的环境变量设置得对不对,以及后续有没有执行xhost +的命令。
考试时需要注意对应的DISPLAY值也会在考卷上,每个人的环境可能不太一样。
示例:数据库安装到/dm
先在命令行下执行:
# 假设安装bin文件在/soft目录下
su - dmdba
cd /soft
./DMInstall.bin
然后按照指示一步步操作:
按照提示新打开一个终端窗口执行提示的命令:
直到完成页面即可
安装完成后,我们就可以在后续的操作中使用图形化方式进行了,下面列举了各个图形化工具的打开方式
# 必须在dmdba用户下操作
su - dmdba
# 如果图形化工具打开相关的两条命令没有配置到.bashrc中就需要提前手工执行下
export DISPLAY=:0
xhost +
# 达梦数据库配置助手打开方式
cd /dm/tool
./dbca.sh
# DM管理工具打开方式
cd /dm/tool
./manager
# DM控制台工具打开方式
cd /dm/tool
./console
如果是使用命令行方式,可以执行如下命令:
su - dmdba
cd /soft
./DMInstall.bin -i
# 接下来的交互输入大部分可以直接回车按照默认值,以下除外:
是否有Key文件选择N
选择安装目录输入/dm
最后安装完成后会提示要切换到root命令执行一条命令,按照提示操作即可
示例:实例创建,数据库名称DMMENG2,实例名称DMSERVER2,指定页大小8K、字符集UTF8、数据库密码Dameng123
在前一个步骤中安装完成数据库后,可以点击选择继续初始化数据库,如果关掉了也没关系,在命令行下打开达梦数据库配置助手也是一样的。
按照提示将这些命令在命令行下用root权限去执行,后续有这种提示窗口都是一样的方式操作:
cd /dm/bin
# 初始化库
./dminit DB_NAME=DAMENG2 INSTNACE_NAME=DMSERVER2 PAGE_SIZE=8 CHARSET=1 SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
# 执行完成后再进行服务注册
su - root
/dm/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/data/DAMENG2/dm.ini -p DMSERVER2
# 启动数据库
su - dmdba
cd /dm/bin
./DmServiceDMSERVER2 start
示例:创建表空间TESTSB,数据文件/dm/data/DAMENG2/TESTSB01.DBF,数据文件初始大小为32M.
打开DM管理工具,新建连接,填入密码测试连接成功后,点击保存
create tablespace TESTSB datafile '/dm/data/DAMENG2/TESTSB01.DBF' size 32 CACHE = NORMAL;
示例:创建角色ROLEDM2,有创建表的权限
create role ROLEDM2;
grant CREATE TABLE to ROLEDM2;
示例:创建用户TEST,密码Dameng123,默认表空间为TESTSB。该用户在登录失败 5次后,账号锁定3分钟,用户在180天后自动过期,拥有创建表、创建视图的权限,有ROLEM2的角色。
create user TEST identified by "Dameng123"
limit FAILED_LOGIN_ATTEMPS 5 PASSWORD_LIFE_TIME 180 PASSWORD_LOCK_TIME 3
default tablespace "TESTSB";
grant "PUBLIC","ROLEDM2","SOI" to TEST;
grant CREATE TABLE,CREATE VIEW to TEST;
示例:在用户TEST下创建三张表,分别为T1, T2, T3
其中T1有以下字段:
T1_ID字段,类型为INT,非空,主键
T1_NAME字段,类型为VARCHAR(50),非空
其中T2有以下字段:
T2_ID字段,类型为INT,非空,主键
T2_NAME字段,类型为VARCHAR(50),非空
T2_T1_ID字段,INT类型,非空,外键关联到T1表的T1_ID字段
其中T3有以下字段:
T3_ID字段,类型为INT,非空,主键
T3_NAME字段,类型为VARCHAR(50),非空
T3_T1_ID字段,INT类型,非空,外键关联到T1表的T1_ID字段
创建T1表,需要在DM管理工具的TEST模式展开的表节点上右击,选择新建表:
同样的方式创建T2表,不同的是还要添加外键:
创建T3表:
create table TEST.T1
(
T1_ID INT,
T1_NAME VARCHAR(50)
)
storage(initial 1, next 1, minextents 1, fillfactor 0)
;
create table TEST.T2
(
T2_ID INT not null ,
T2_NAME VARCHAR(50) not null ,
T2_T1_ID INT not null
)
storage(initial 1, next 1, minextents 1, fillfactor 0)
;
alter table TEST.T2 add constraint foreign key("T2_T1_ID") references TEST.T1("T1_ID");
create table TEST.T3
(
T3_ID INT not null ,
T3_NAME VARCHAR(50) not null ,
T3_T1_ID INT not null
)
storage(initial 1, next 1, minextents 1, fillfactor 0)
;
alter table TEST.T3 add constraint foreign key("T2_T1_ID") references TEST.T1("T1_ID");
示例:将/opt/test.sql批量导入到库中
使用disql连接到数据库后执行
`/opt/test.sql
实例:开始归档,归档保存到/dm/data/arch目录下,文件大小128M
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dm/data/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=0, ARCH_FLUSH_BUF_SIZE=0, HANG_FLAG=1';
alter database open;
示例:执行联机完全物理备份,备份名称FULL_BAK_1,备份目录为/dm/backup/FULL_BAK_1
backup database full to "FULL_BAK_1" backupset '/dm/backup/FULL_BAK_1';
SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
select * from SYS.V$BACKUPSET;
示例:执行全库逻辑备份,备份的dmp文件名称指定为test_exp.dmp,log文件名称为test_exp.log,均放到/dm/backup/目录下
/dm/bin/dexp "SYSDBA"/"******"@LOCALHOST:5236 DIRECTORY=/dm/backup FILE=test_exp.dmp FULL=Y TABLESPACE=N DROP=N LOG=test_exp.log LOG_WRITE=N
示例:每周三晚上22点执行全量物理备份,每周一、周二、周四、周五、周六、周日晚上22点执行增量物理备份。
配置全量备份
配置增量备份
配置完成后可以在对作业做一次执行验证是否正常
call SP_CREATE_JOB('FULL_BAK',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('FULL_BAK');
call SP_ADD_JOB_STEP_EX('FULL_BAK', 'FULL_BAK_STEP', 6, '00000000/dm/backup', 0, 0, 0, 0, NULL, 0, '');
call SP_ADD_JOB_SCHEDULE('FULL_BAK', 'FULL_BAK_SCHEDULE', 1, 2, 1, 8, 0, '22:00:00', NULL, '2025-10-16 10:09:29', NULL, '');
call SP_JOB_CONFIG_COMMIT('FULL_BAK');
call SP_CREATE_JOB('INCR_BAK',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('INCR_BAK');
call SP_ADD_JOB_STEP_EX('INCR_BAK', 'INCR_BAK_STEP', 6, '10000000/dm/backup|/dm/backup', 0, 0, 0, 0, NULL, 0, '');
call SP_ADD_JOB_SCHEDULE('INCR_BAK', 'INCR_BAK_SCHEDULE', 1, 2, 1, 119, 0, '22:00:00', NULL, '2025-10-16 10:15:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('INCR_BAK');
示例:将TMP表空间大小修改为1024M
alter tablespace "TEMP" resize datafile 'TEMP.DBF' to 1024;
示例:创建视图TEST.TEST_VIEW,用来查询TEST.T1表中T1_NAME是bruce的记录,显示字段为T1_ID和T1_NAME
直接在DM管理工具的查询界面上执行创建视图语句
create view test.TEST_VIEW AS
select T1_ID, T1_NAME FROM TEST.T1 where T1_NAME='bruce';
示例:安装ODBC到/usr/local下,并配置访问数据源为dm8
编译安装:
tar xf unixODBC-xxx.tar.gz
cd unixODBC-xxx
./configure && make -j 4 && make install
配置odbcinst.ini和odbc.ini, 执行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、端口、用户名、密码等信息,需要按照实际配置来填写:
[dm8]
Description = dm8 odbc dsn
Driver = DM8 ODBC DRIVER
SERVER = localhost
TCP_PORT = 5236
UID = SYSDBA
PWD = Dameng123
文章
阅读量
获赞
