达梦DCA

  • 安装前准备
  • 安装达梦数据库
  • 创建数据库实例
  • 使用DM管理工具
  • SQL
  • 开启归档
  • 数据库备份与还原
  • 作业管理
  • ODBC
  • DCA考试

达梦数据库是一款全自主的国产数据库,近年来在信息创新项目中起着至关重要的作用,作为信息项目从业人员,日常接触达梦数据库也较多,有幸参加了DCA考试,以此博文记录培训及考试心得。

安装前准备

本次演示过程均使用麒麟10操作系统,首先检查系统信息,是否符合安装要求
1、检查系统内存、磁盘空间等信息

2、查看tmp目录空间大小(要求tmp空闲空间至少为1.2G)

3、规划安装用户和用户组:
[root@Kylin10 opt]# groupadd dinstall
[root@Kylin10 opt]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@Kylin10 opt]# passwd dmdba
更改用户 dmdba 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
4、规划数据库安装目录
root@Kylin10:/# mkdir /dm8
root@Kylin10:/# chown -R dmdba:dinstall /dm8

安装达梦数据库

使用dmdba用户执行安装程序
dmdba@Kylin10:/mount$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序…
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:

等待数据库安装完成提示以下信息:

请以root系统用户执行命令:
/dm8/script/root/root_installer.sh

安装结束

提示启动数据库服务成功。
图形化界面设置
root@Kylin10:~/桌面$ echo $DISPLAY
:0

root@Kylin10:~/桌面$ xhost +
access control disabled, clients can connect from any host
root@Kylin10:~$ su - dmdba
dmdba@Kylin10:~$

创建数据库实例

dmdba@Kylin10:~$ export DISPLAY=:0
dmdba@Kylin10:~$ /dm8/tool/dbca.sh


创建实例完成后,按要求使用root用户执行如下命令
1、mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
2、systemctl enable DmServiceDMSERVER.service
3、systemctl start DmServiceDMSERVER.service

使用DM管理工具

连接数据库:

可以修改管理工具配置:窗口->选项->查询分析器->编辑器

SQL

--查询参数类型
select distinct para_type from v$dm_ini;
--句柄相关的查询
select * FROM SYS."V$SESSIONS" WHERE n_used_stmt>=1 ;
select * FROM SYS."V$SESSIONS" ORDER by "V$SESSIONS".N_USED_STMT DESC;
select * FROM v$parameter WHERE name like 'MAX_SESSION_STATEMENT';--查询实例状态
select status$ from v$instance;
--内连接 where子句
select a.department_id,b.department_name,count(*) as empnumfrom dmhr.employee a, dmhr.department bwhere a.department_id = b.department_idgroup by a.department_id, b.department_namehaving count (*) >=30order by empnum desc;
--内连接 join..on..子句
select a.department_id,b.department_name,count(*) as empnumfrom dmhr.employee a join dmhr.department bon a.department_id = b.department_idgroup by a.department_id, b.department_namehaving count (*) >=30order by empnum desc;
--左外连接
select a.department_id, b.department_name
, count(a.employee_id) as empnumfrom dmhr.employee a, dmhr.department b where a.department_id = b.department_id(+)group by a.department_id, b.department_namehaving count(*) >=30order by empnum desc;select a.department_id, b.department_name
,COUNT(a.employee_id) as empnumfrom dmhr.employee a left join dmhr.department bon a.department_id = b.department_id GROUP BY a.department_id, b.department_namehaving count(*) >=30order by empnum desc;--右外关联
insert into dmhr.DEPARTMENT(DEPARTMENT.DEPARTMENT_ID,
DEPARTMENT.DEPARTMENT_NAME)
values(888888,'Test');
commit;
select a.DEPARTMENT_ID, b.DEPARTMENT_id, b.DEPARTMENT_NAME,
count(a.employee_id) as empnumfrom dmhr.employee a, dmhr.DEPARTMENT b
where a.DEPARTMENT_ID(+) = b.DEPARTMENT_IDgroup by a.DEPARTMENT_ID, b.DEPARTMENT_id, b.DEPARTMENT_NAME;--查询dm.ini配置文件中中参数的类型
--READ ONLY:只读参数 仅能通过dm.ini文本文件修改该参数(重启数据库生效)
--SYS:动态(系统级)参数。可在运行数据库时修改
--SESSION:动态(会话级)参数。可在运行数据库时修改,且可只针对当前会话生效
--IN FILE:静态参数,可以在数据库运行时修改,重启数据库生效
select DISTINCT para_type from v$dm_ini;
--系统函数用于设置参数
select name FROM SYS."V$IFUN" t WHERE name LIKE 'SP_SET_%PARA%';
--修改静态参数(需重启数据库)
SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',0);
select PARA_NAME,PARA_VALUE,PARA_TYPE,T.FILE_VALUE from v$dm_ini t where t.para_name like 'COMPATIBLE_MODE';
select name,type,value,sys_value,file_value from v$parameter t where name LIKE 'COMPATIBLE_MODE';
alter system set 'COMPATIBLE_MODE'=2 spfile;
--修改系统及参数
alter system set 'LIST_TABLE'=1 memory;
--修改会话级参数
alter session set 'LIST_TABLE'=0;
select name,type,value,sys_value,file_value from v$parameter t where name LIKE 'LIST_TABLE';
--查找系统函数
select * FROM v$ifun t WHERE name LIKE 'SP_SET_PARA%';
sp_set_para_value(2,'COMPATIBLE_MODE',0);
sp_set_para_value(1,'LIST_TABLE',0);--DM存储结构:
--数据缓冲区: BUFFER
select name,type,value,sys_value,file_value from v$parameter t where name in ('BUFFER','KEEP','FAST_POOL_PAGES','RECYCLE');
alter SYSTEM SET 'BUFFER'=1500 SPFILE;
--重做日志缓冲区 :对应INI参数RLOG_BUF_SIZE
select name,type,value,sys_value,file_value from v$parameter t where name like 'RLOG_BUF_SIZE';
--SQL缓冲区 :INI参数 CACHE_POOL_SIZE,相关数据字典
select * from v$cacheitem;
select * from v$cachesql;
select * from v$cachepln;
select * from v$cachers;
--字典缓冲区:DICT_BUF_SIZE
select * FROM v$dynamic_tables t where name like '%DICT%';
select * from v$dict_cache_item;
select * from v$dict_cache;
--共享内存池:MEMORY_EXTENT_SIZE
select name,type,value,sys_value,file_value from v$parameter t where name like 'MEM%';
select * from V$mem_pool;
--数据库层面进程和线程查询
select * from v$process;
select * from v$threads;
--不能以结束线程的方式结束会话,可能导致dm数据库挂掉--第七部分:表空间管理
--临时表空间管理
select * FROM v$parameter where name like 'TEMP%';
--修改临时表空间初始大小:
alter system set 'TEMP_SIZE'=100 spfile;
--收缩TEMP表空间的方法
--1.重启数据库
--2.在线收缩临时表空间:SP_TRUNC_TS_FILE
select name,id from v$ifun t where name like 'SP_TRUNC%';
select * from v$ifun_arg where id=1298;
--相关数据字典
select * from dba_tablespaces;
select * FROM DBA_DATA_FILES;
select * FROM v$tablespace;
select * from v$datafile;
select * from DBA_FREE_SPACE; --数据文件剩余空间--创建表空间等不能指定单位,否则报错
select 4096*page/1024/1024; --表空间最小大小为页大小的4096倍
create tablespace tbs DATAFILE 'TBS01.DBF' SIZE 32;
alter tablespace tbs add DATAFILE 'TBS02.DBF' SIZE 128 AUTOEXTEND on NEXT 2 MAXSIZE 20480;
alter tablespace tbs DATAFILE 'TBS01.DBF' AUTOEXTEND on NEXT 2 MAXSIZE 20480;
alter TABLESPACE tbs DATAFILE 'TBS01.DBF' AUTOEXTEND OFF;--初始表空间大小的更改
alter tablespace tbs RESIZE DATAFILE 'TBS01.DBF' to 128;--迁移表空间数据文件,修改数据文件路径,要求dmdba用户要对该目录有操作权限
alter TABLESPACE tbs OFFLINE;
alter tablespace tbs RENAME DATAFILE 'TBS01.DBF' TO 'F:\dmdbms\data\DAMENG\TBS\TBS01.DBF';
alter tablespace tbs RENAME DATAFILE 'TBS02.DBF' TO 'F:\dmdbms\data\DAMENG\TBS\TBS02.DBF';
alter TABLESPACE tbs online;create table t_test(id int,name VARCHAR(20)) TABLESPACE tbs;
insert into T_TEST(id,name) VALUES (1,'aaa');
insert into T_TEST(id,name) VALUES (2,'bbb');
insert into T_TEST(id,name) VALUES (3,'ccc');
insert into T_TEST(id,name) VALUES (4,'ddd');
commit;
--表空间处于脱机状态下时,表空间的数据无法读写,即无法查询
select * from t_test;create tablespace "DMTEST" datafile 'F:\dmdbms\data\DAMENG\TBSTEST\TBSTEST01'size 64 autoextend on next 2 maxsize 10240, 'F:\dmdbms\data\DAMENG\TBSTEST\DMTEST02'size 64 autoextend on next 2 maxsize 10240 CACHE = NORMAL;--调整undo_retention
select * from v$parameter t where name like 'UNDO_RET%';
alter SYSTEM set 'UNDO_RETENTION'=300 both;--重做联机日志
select * from v$rlogfile;
select * from v$rlog; --cur_file表示正在使用的联机日志
--修改联机日志大小,联机日志只能由系统自动切换,不能手动切换
alter DATABASE RESIZE LOGFILE 'F:\dmdbms\data\DAMENG\DAMENG01.log' TO 300;
alter DATABASE RESIZE LOGFILE 'F:\dmdbms\data\DAMENG\DAMENG02.log' TO 300;
alter database ADD LOGFILE 'F:\dmdbms\data\DAMENG\DAMENG03.log' SIZE 300;
--修改日志文件路径(日志迁移)
alter DATABASE MOUNT;
alter DATABASE RENAME LOGFILE 'DAMENG01.log' TO 'F:\dmdbms\data\DAMENG\REDO\DAMENG01.log';
alter DATABASE RENAME LOGFILE 'DAMENG02.log' TO 'F:\dmdbms\data\DAMENG\REDO\DAMENG02.log';
alter DATABASE RENAME LOGFILE 'DAMENG03.log' TO 'F:\dmdbms\data\DAMENG\REDO\DAMENG03.log';
alter DATABASE OPEN;--开启归档
select arch_mode from v$database;--查询是否开启了数据库归档
--开归档
alter database mount;
alter DATABASE ARCHIVELOG;
--配置归档日志属性,归档大小不要设置太大
--alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';
alter database add archivelog 'type=local,dest=F:\dmdbms\arch,file_size=64,space_limit=10240';
select * from v$dm_arch_ini;
alter database open;
--关闭归档
alter database mount;
alter database noarchivelog;
alter database delete ARCHIVELOG 'type=local,dest=F:\dmdbms\arch';
alter database open;--查询所有的归档日志文件
select * from v$arch_file;
select * from v$archived_log;
--默认是数据库自动切换日志归档,DM支持手动切换日志归档,如下三个命令均可
alter SYSTEM ARCHIVE log CURRENT;
alter system switch logfile;
alter database ARCHIVELOG CURRENT;--查询密码策略
--系统支持的口令策略有:
--⚫ 0 无策略
--⚫ 1 禁止与用户名相同
--⚫ 2 口令长度不小于 9
--⚫ 4 至少包含一个大写字母(A-Z)
--⚫ 8 至少包含一个数字(0-9)
--⚫ 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
--口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口
--令策略为 2+4=6 即可
select * FROM v$parameter t where name like 'PWD_POLICY';
--设置密码策略
alter SYSTEM set 'PWD_POLICY' = 15 BOTH;
--访问非默认模式下的对象时需要带上模式名,SYSDBA用户默认模式为SYSDBA
select * from dmhr.employee t where t.employee_id=1001;
--设置模式,设置模式后查询模式下对象时不需要带模式名
set SCHEMA DMHR;
select * from employee limit 3;
--模式管理,表管理
--创建模式
CREATE SCHEMA HRTEST AUTHORIZATION SYSDBA;
--创建表
create TABLE HRTEST.testid(id int,name varchar(20),sex bit);
--增加列
alter table HRTEST.testid add column(age int);
--删除列
alter table HRTEST.testid drop sex;--约束
alter table "HRTEST"."TESTID" add constraint "uk_test"  unique("ID") using index tablespace "DMTEST";
alter table "HRTEST"."TESTID" add constraint "ck_test"  check(age>18);alter table HRTEST.TESTID DISABLE CONSTRAINT "ck_test";
alter table hrtest.testid enABLE CONSTRAINT "ck_test";
alter table "HRTEST"."TESTID" drop constraint "ck_test";--创建视图(作用:简化查询)
create view hrtest.v_empasselect a.employee_id,a.employee_name,a.email,a.phone_num from dmhr.employee a where a.department_id=1001;
select * from hrtest.v_emp;
--创建视图 :
create view dmhr.a_empas
select a.department_id,b.department_name,avg(salary) as empavgsryfrom DMHR.EMPLOYEE a,DMHR.DEPARTMENT bwhere a.department_id=b.department_idgroup by a.department_id,b.department_nameHAVING avg(salary)>=9000;select a.DEPARTMENT_ID, count(*) as empnumfrom dmhr.employee a group by a.DEPARTMENT_IDhaving count(*) >=30;--索引提高查询速度,索引是基于某张表的某个字段创建的
--索引不是越多越好,索引会降低DML的效率(DML操作要维护索引)
select * from DMHR.EMPLOYEE;
explain select * from dmhr.employee t where t.employee_name='马学铭';
create index ix_employee_employee_name on dmhr.employee(employee_name);
explain select * from dmhr.employee t where t.employee_name='马学铭';
--删除索引
drop index dmhr.IX_EMPLOYEE_EMPLOYEE_NAME;--收集统计信息
dbms_stats.gather_table_stats('DMHR','EMPLOYEE');
--统计信息的查看
dbms_stats.table_stats_show('DMHR','EMPLOYEE');
dbms_stats.index_stats_show('DMHR','IX_EMPLOYEE_EMPLOYEE_NAME');--索引的监控
alter INDEX DMHR.IX_EMPLOYEE_EMPLOYEE_NAME MONITORING USAGE; --开启索引监控
alter INDEX DMHR.IX_EMPLOYEE_EMPLOYEE_NAME  NOMONITORING USAGE;--关闭索引监控
alter index DMHR.IX_EMPLOYEE_EMPLOYEE_NAME rebuild online; --索引的 重建
select * from v$object_usage;
--查询模式下的索引
select * from dba_indexes t where t.owner='DMHR';
select * from DBA_IND_COLUMNS t where t.index_owner='DMHR';--备份与还原
select * from v$parameter where name in ('BAK_USE_AP','BAK_PATH');
SELECT * from v$backupset;
select * from v$ifun where name like 'SF_BAKSET%';
--联机备份
--全量备份
backup database full to "ONLINEBAKFULL_01" backupset 'ONLINEBAKFULL_01';
--增量备份
backup database increment to "ONLINEBAKINCR_01" backupset 'F:\dmdbms\data\DAMENG\bak\ONLINEBAKINCR_01' device type disk;
--报错检查点LSN小于备份的LSN,需执行检查点
checkpoint(100);select SF_BAKSET_CHECK('DISK','ONLINEBAKFULL_01');--创建作业
call SP_CREATE_JOB('JOB01',1,0,'',0,0,'',0,'');call SP_JOB_CONFIG_START('JOB01');call SP_ADD_JOB_STEP('JOB01', 'FULLBAK', 6, '00000000F:\dmdbms\backup\fullbak', 0, 0, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE('JOB01', 'FULLBAK', 1, 2, 1, 1, 0, '22:00:00', NULL, '2022-01-25 19:54:42', NULL, '');call SP_JOB_CONFIG_COMMIT('JOB01');select * from sysjob.sysjobs;
dbms_job.run(1643111736);
--查看运行JOB日志
select * from sysjob.SYSJOBHISTORIES2;--开启归档后需要执行检查点
checkpoint(100);

开启归档

开启归档需将数据库设置为配置状态

设置归档目标路径,文件大小等

注意:开启归档后需将数据库再次置于打开状态

数据库备份与还原

备份的前置条件是数据库须开启归档。
新建联机备份:

可选择完全备份或增量备份

分别可以进行库、表、表空间、归档备份。

数据库还原与恢复
数据库恢复使用console(脱机工具)
还原:

恢复

更新数据库模数,还原后要更新数据库模数,否则数据库会无法启动

作业管理

创建代理环境

代理->作业:右键创建作业

填写作业步骤作业调度

ODBC

考试中拿到的是一个源码包,需要编译安装
(1)解压
[root@Kylin10 opt]# tar -zxvf unixODBC-2.3.0.tar.gz
(2)源码安装三部曲(配置、编译、安装)
[root@Kylin10 opt]# cd unixODBC-2.3.0/
[root@Kylin10 unixODBC-2.3.0]# ./configure
[root@Kylin10 unixODBC-2.3.0]# make && make install
(3) 配置 odbc.ini 数据源信息和 odbcinst.ini 驱动信息,内容参考如下
[root@Kylin10 unixODBC-2.3.0]# cd /usr/local/etc/
[root@Kylin10 etc]# vi odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5236
[root@Kylin10 etc]# vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
(4)验证
使用dmdba用户执行命令
isql dm8 -v
执行时报错
[dmdba@Kylin10 etc]# isql dm8 -v
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect

确认配置没有问题,后来在知乎上看到这篇文章,
https://zhuanlan.zhihu.com/p/73173576
尝试执行命令后可以解决
解决办法:

安装共享库后要注意共享库路径设置问题, 如下:

A、如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig(root用户执行 )命令
执行该命令后可正常连接

DCA考试

DCA考试共2个小时,使用VNC远程连接,考试要注意找个网络好的环境,避免因中途断网浪费考试时间。

【DM】达梦DCA培训及考试认证相关推荐

  1. 我的达梦DCA培训小记

    @达梦 我的达梦DCA培训笔记 感谢达梦大学给予我三天时间的培训.新冠疫情期间,不能到现场开展面对面的学习,单依然无法阻挡我们学习达梦数据库基础运维的热情. 感谢我们的王文欢老师.李梦等老师的辛勤付出 ...

  2. 圆你国产数据库DBA之梦,达梦DCA培训考试券免费拿

    2020首届达梦数据库精英挑战赛是在工信部等各级单位指导下,达梦公司联合国内信创产业知名企业共同打造信创人才"万人培养计划". 活动报名 报名时间:2020年7月22日-8月5日 ...

  3. 达梦DCA培训及认证总结

    有幸参加了达梦DCA培训课程及认证考试,培训为期3天,培训老师对国产数据库的现状及未来做了精彩的介绍,然后对整个达梦数据库的产品线做了详细的讲解,后面开始对DM8数据库安装及各类基本操作进行实操培训, ...

  4. 达梦DCA培训 考试培训总结(部分内容)

    经过达梦公司组织的达梦数据库DCA培训,我获益良多,现分享我的个人学习心得笔记. 上课环境 操作系统:银河麒麟V10 数据库: DM8企业版(去达梦官网上下载支持低版本操作系统的安装包) 虚拟机:VM ...

  5. 达梦DCA培训考试笔记

    软件安装 Libc版本 Dm安装包要求得版本高于系统版本可能会报错 [root@localhost root]# ldd  --version ldd (GNU libc) 2.28 Copyrigh ...

  6. 达梦DCA培训笔记20220810-20220812

    注意事项 数据库创建完成后,如果没有初始化,可以通过使用达梦数据库配置助手创建一个数据库实例. 创建数据库时,默认情况下勾选字符串比较大小写敏感. 可以通过达梦服务查看器查看当前系统中存在的服务,包含 ...

  7. 达梦DCA认证培训考试心得体会

    一.概述 达梦数据库DCA认证是属达梦数据库入门级认证,主要针对在实际工作中系统维护实操不多的学员.线上培训三天即可预约报名参加认证考试,考试全部为机考.主要考试的知识点如下: 机试(95 分):安装 ...

  8. 达梦数据库培训学习学习心得

    达梦数据库培训学习心得内容 表空间管理 总结 学习了数据库行业的发展状态.国产数据库现状,介绍了达梦公司和达梦产品的历程,让我们明白了公司从无到有的一个过程. DM7的安装前的配置流程 1.收集软件信 ...

  9. 浅谈DM达梦数据库安全管理之用户身份验证与权限管理

            数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护.DM达梦数据库提供了包括用户标识与鉴别.自主与强制访问控制.通信与存储 加密.审计等丰富的安全功能.达梦数据库 的 ...

最新文章

  1. python写入文件-Python写入文件(write和writelines)详解
  2. JavaScript URL编码 代码片段记忆
  3. koa-static使用时报Unexpected token function
  4. 【struts2】struts2工作流程
  5. 操作技巧——查看端口是否被占用
  6. 阿里P8亲自教你!Activity的6大难点,你会几个?年薪50W
  7. sklearn、theano、TensorFlow 以及 theras 的理解
  8. 电脑常见故障排除_附近上门维修洗衣机不脱水|洗衣机常见故障维修
  9. centos6配置mysql远程访问_一次成功的MySQL升级失败教训
  10. sqlite3 加密版本 下载_制作Sqlcipher+SM4加密的framework包(OC)
  11. java date.set_解决Java Calendar类set()方法的陷阱
  12. java定时执行 web_定时执行任务-Java WEB程序【绝对好用】
  13. 小Q系列故事——世界上最遥远的距离
  14. 使用quartz 定时任务
  15. java实现变声器--变声萝莉
  16. 戏精,程序员的桌面画风竟然是酱紫的!
  17. bootstrap table表头列名转行
  18. eclips无法查看源码
  19. 基本运算符(逻辑运算)
  20. 微信小程序获取用户位置信息

热门文章

  1. 台式电脑怎么找不到计算机在哪,台式电脑没有声音了怎么恢复(在家用这两个方法轻松解决)...
  2. Pulsar 社区周报|2021-01-04~2021-01-10
  3. 一名开发人员的奋斗历程
  4. 优信拍集团php面试题_【优信拍PHP高级工程师面试】不错,主管眼光很犀利,而且不扯皮。-看准网...
  5. iOS 马甲版上架流程
  6. 查看文件时去除注释说明内容(原创贴-转载请注明出处)
  7. 图像处理——孔洞填充算法
  8. 光伏发电站远程监测无线解决方案,时刻保持电力十足
  9. SpringBoot仿牛客论坛项目实战
  10. 220216HTML学习日记