注册
DCP考试技术博文
技术分享/ 文章详情 /

DCP考试技术博文

Arno 2026/04/30 248 0 0

DCP考试技术博文
在DCP认证培训课程中,主要从达梦数据库运维规范、体系结构、表的高级管理、索引的高级管理、安全管理、数据迁移、性能优化、备份还原和企业管理器应用,9个方面进行讲解和演示。今天我来分享一下数据审计、DMDIS工具和分区表的相关内容。

壹、数据审计
审计机制是达梦数据库管理系统安全管理的重要组成部分之一。只有数据库审计员才能进行进行审计操作,达梦预定义系统审计管理员(SYSAUDITOR)。数据库开启审计会消耗服务器资源,对性能会产生影响。

一、数据审计包括三个级别:
1.系统级:
系统的启动与关闭,此级别的审计记录在任何情况下都会强制产生,无法也无需由用户进行设置。没有开启审计会记录在数据库日志中,开启审计会同时存放在数据库日志和审计记录中。
2.语句级:
导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如AUDIT TABLE将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句。
3.对象级:
审计作用在特殊对象上的语句。如 EMPLOYEE 表上的 INSERT 语句。

二、开启审计:
在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计 开关由过程 SP_SET_ENABLE_AUDIT (param int);控制,过程执行完后会立即生效,param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计

1.查询数据库是否开启审计:
SQL> SELECT * FROM V$DM_INI WHERE PARA_NAME=‘ENABLE_AUDIT’;
2.开启审计:
SQL> SP_SET_ENABLE_AUDIT(1);
开启审计开关后,会在对应的路径下生成审计日志文件,审计信息会存储在审计日志文件中。

三.语句级审计
语句级审计的动作是全局的,不对应具体的数据库对象。
1.开启语句级审计格式:
SP_AUDIT_STMT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:语句级审计选项
USERNAME :用户名,NULL 表示不限制
WHENEVER :审计时机,可选的取值为:ALL 是所有的;SUCCESSFUL 是操作成功 时;FAIL:操作失败时

  1. 开启语句级审计案例:
    审计 DMEMP 用户对表的建表、修改表、清空表、删除表操作
    SQL> SP_AUDIT_STMT(‘TABLE’,‘DMEMP’,‘ALL’);
    查看审计记录:
    SQL> select * from V$AUDITRECORDS;

3.取消语句级审计格式:
SP_NOAUDIT_STMT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:语句级审计选项
USERNAME :用户名,NULL 表示不限制
WHENEVER :审计时机,可选的取值为:ALL 是所有的;SUCCESSFUL 是操作成功 时;FAIL:操作失败时

  1. 取消语句级审计案例:
    取消审计DMEMP用户对表的建表、修改表、清空表、删除表操作
    SQL> SP_NOAUDIT_STMT(‘TABLE’,‘DMEMP’,‘ALL’);

四、设置对象级审计
1.开启对象级审计格式:
SP_AUDIT_OBJECT ( TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
COLNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:对象级审计选项,即上表中的第一列
USERNAME :用户名
SCHNAME:模式名,为空时置‘null’
TVNAME:表、视图、存储过程名不能为空
COLNAME:列名
WHENEVER :审计时机,可选的取值为:ALL 是所有的 ;SUCCESSFUL 是操作成功 时 ;FAIL 是操作失败时

  1. 开启对象级审计案例:
    审计 DMEMP 用户删除 DMHR.EMPLOYEE 表记录的操作
    SQL> SP_AUDIT_OBJECT(‘DELETE’,‘DMEMP’,‘DMHR’,‘EMPLOYEE’,‘ALL’);
    查看审计记录:
    SQL> select * from V$AUDITRECORDS;

  2. 取消对象级审计格式:
    SP_NOAUDIT_OBJECT (
    TYPE VARCHAR(30),
    USERNAME VARCHAR (128),
    SCHNAME VARCHAR (128),
    TVNAME VARCHAR (128),
    COLNAME VARCHAR (128),
    WHENEVER VARCHAR (20)
    )
    参数说明:
    TYPE:对象级审计选项,即上表中的第一列
    USERNAME :用户名
    SCHNAME:模式名,为空时置‘null’
    TVNAME:表、视图、存储过程名不能为空
    COLNAME:列名
    WHENEVER :审计时机,可选的取值为:ALL 是所有的 ;SUCCESSFUL 是操作成功 时 ;FAIL 是操作失败时

  3. 取消对象级审计按理
    取消审计DMEMP用户删除 DMHR.EMPLOYEE 表记录的操作
    SQL> SP_NOAUDIT_OBJECT(‘DELETE’,‘DMEMP’,‘DMHR’,‘EMPLOYEE’,‘ALL’);

贰、DMDIS 工具的安装和使用
达梦数据集成软件 ( 简称 DMDIS) 是在总结了众多大数据项目经验和需求并结合最新的大数据发展趋势的基础上研发的具有自主版权的数据处理与集成平台。达梦数据集成软件创新地将传统的数据同步工具 ( 抽取 (Extract) 、转换 (Transform) 、装载(Loading)) 与分布式大数据处理平台相结合,实现了对数据同步、数据处理以及数据交换共享的一站式支持,大幅度降低了用户使用各种平台进行大数据整合处理的技术门槛,是构建数据中心、数据仓库、数据交换和数据同步等数据集成类应用的理想平台。

一、安装DMDIS软件
1.安装前准备
创建 dinstall 组:
[root@loacalhost~]# groupadd dinstall
创建 dmdis 用户:
[root@loacalhost~]# useradd -g dinstall -m -d /home/dmdis -s /bin/bash dmdis
设置密码:
[root@loacalhost~]# passwd dmdis
配置临时目录
[dmdis@loacalhost~]$ mkdir -p /home/dmdis/tmp
[dmdis@loacalhost~]$ export DMDIS_INSTALL_TMPDIR=/home/dmdis/tmp

  1. 软件安装
    [dmdis@localhost ~]$ cd /opt
    [dmdis@localhost opt]$ ./dmdis_rev202314_x86_linux_64_20251022.bin -i
    Extract install files…
    请选择安装语言(C/c:中文 E/e:英文)[C/c]:
    -----------欢迎使用达梦数据集成软件安装工具-----------
    输入[exit]可退出安装。
    -----------许可证文件-----------
    1.免费试用达梦数据集成软件(必须在试用期范围内使用,反复安装无效,使用时间为3个月)
    2.使用许可证文件
    指定许可证文件(1,2)[1]:
    免费试用许可证文件限制信息如下:
    有效日期:2026-07-27
    授权顾客名称:DEVELOP USER
    项目名称:
    许可证编号:
    版本类型:试用版
    -----------安装类型-----------
    选择安装类型(1:单机模式 2:集群模式)[1]:
    -----------基本配置-----------
    配置JDK(1:默认JDK 2:使用本机JDK 3:指定其他JDK)[1]:
    是否使用外置库(0:不使用 1:使用)[0]:
    -----------安装目录-----------
    指定安装目录[/home/dmdis/dmdis5]:
    install log path:/home/dmdis/dmdis5/20260427100928884000/log/install.log
    -----------服务配置-----------
    服务名[Dmdis5StandaloneService]:
    管理平台端口[8080]:
    启动方式(1.自动 2.手动)[2]:1
    管理员密码
    新密码:
    确认密码:
    -----------安装小结-----------
    JDK配置:默认JDK
    安装目录:[/home/dmdis/dmdis5/20260427100928884000]
    内置库信息:
    数据库类型:Derby
    数据库IP:localhost
    端口:1527
    数据库名称:默认
    用户名:SYSDBA
    密码:******
    单机版服务:
    服务名:Dmdis5StandaloneService
    管理平台端口:8080
    管理员密码:******
    所需磁盘空间/可用磁盘空间:[1,423 MB/13,305 MB]
    确认安装?[Y/y or N/n]:y
    -----------安装中-----------
    正在安装…
    -----------安装总结-----------
    达梦数据集成软件V5安装完成
    服务安装失败,请以root用户执行/home/dmdis/dmdis5/20260427100928884000/standalone/install_standalone_service.sh 安装单机版服务

3.使用root用户:
[root@localhost ~]# /home/dmdis/dmdis5/20260427100928884000/standalone/install_standalone_service.sh
Detected Ubuntu or Debian:
Installing the Dmdis5StandaloneService daemon using init.d…
Press enter to continue

4.启动DMDIS服务
[dmdis@localhost opt]$ cd /home/dmdis/dmdis5/20260427100928884000/standalone/
[dmdis@localhost standalone]$ ls -lh
[dmdis@localhost standalone]$ ./standalone_service_start.sh
Starting Dmdis5StandaloneService…
Waiting for Dmdis5StandaloneService…
running: PID:10945
Press enter to continue

查看端口号8080是否启动
[dmdis@localhost standalone]$ ss -ntulp

二、使用DMDIS软件
1.连接 DMDIS 网页
http://192.168.88.103:8080/
admin/密码
image.png

  1. 配置数据源
    DMDIS 支持关系数据库数据源,读取和写入数据。支持主流的商用或者开源的关系数 据库管理系统。
    配置 DM 数据库数据源。
    第1步:依次点击“设计”——“数据源”
    image.png
    第2步:右击“数据库”,点击“新建数据库数据源”,
    image.png
    第3步:输入数据源名称,选择数据库类型,数据数据库连接信息
    image.png
    第4步:添加 DMHR.EMPLOYEE 表。点击“数据库”,右击“DM”,点击“添加表”
    image.png
    第5步:选择模式、表,点击“确定”
    image.png

  2. 数据质量
    数据在清洗、交换以及装载的过程中,有些数据可能与我们期望格式不相符,需要采用一系列的数据质量规则过滤不符合期望格式的数据,保证最终装载数据的质量。
    格式化:EMAIL 检查
    案例:创建格式化规则,检查邮箱地址是否合理。
    第1步:依次点击“设计”——“数据质量”,
    image.png
    第1步:右击“数据质量”,点击“新建数据质量”
    image.png
    第3步:点击“格式化”,双击“EMail 检查”,依次输入名称,点击“确定”
    image.png

  3. 流程管理
    DMDIS 流程分为转换流程与作业流程,所有流程的执行都由调度器调度给执行器来执 行。
    转换流程调度方式:转换流程调度器不予分解,流程整体提交给相应的执行器。 作业流程调度方式:调度器分解出作业流程每个作业节点,按节点执行的先后顺序调度 每个作业节点。
    DMDIS 中的转换代表一个与数据处理相关的流程,是由数据读取节点、数据装载节点、 数据转换节点以及正确线、错误线组成。一个可以执行的转换必须包含一个或一个以上 的节点。
    案例:对 DMHR.EMPLOYEE.EMAIL 进行数据质量检测,将结果输出到文本文件 /home/dmdis/emp_check.txt。
    第1步:右击“工程”,点击“新建工程”,输入工程名,点击“确定”
    image.png
    第2步:依次点击“工程”——“TEST”,右击“转换”,点击“新建转换”,输入转换名,点
    击“确定”
    image.png
    第3步:依次点击“工程”——“TEST”——“转换”——“CHECK”——“设计”
    image.png
    第4步:配置数据读取。点击“数据读取”,将“数据读取”下的“表/视图”拖拽至工作区域
    image.png
    第5步:配置数据源数据集,右击“表/视图”,点击“属性”——“浏览”选择数据源数据集, 依次点击数据库——“DM”——“默认”——“DMHR”——“tables”——“EMPLOYEE”,点 击“确定”
    image.png
    第6步:配置数据质量检测。点击“数据转换”,将“数据转换”下的“数据质量检测”拖拽 至工作区域,将数据源的信息输出给“数据质量检测”流程
    image.png
    第7步:右击“数据质量检测”,点击“属性”,找到列 EMAIL,点击“增加规则”,增加数 据质量管理规则,点击“确定”
    image.png
    右击“数据质量检测”,点击属性,查看规则内容
    image.png
    第8步:配置数据写入。点击“数据写入”,将“数据写入”下的“文本文件”拖拽至工作区 域,将“数据质量检测”信息输出至“文本文件”流程
    image.png
    第9步:配置“文本文件”的属性。右击“文本文件”,点击“属性”,输入文件路径和工作 表名称,点击“确定”
    image.png
    第10步:最后依次点击“保存”——“运行”
    image.png

叁、分区表管理
一、分区的概念
分区是指将表、索引等数据库对象划分为较小的可管理片段的技术,每一个片段称为分区子表或分区索引。一个表被分区后,对表的查询操作可以局限于某个分区进行,而不是整个表,这样可以大大提高查询速度。

二、分区方式
达梦数据库 DM 支持对表进行水平分区。对于水平分区,提供以下分区方式:
1.范围(range)水平分区:对表中的某些列上值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上;
2.哈希(hash)水平分区:通过指定分区编号来均匀分布数据的一种分区类型,通过在 I/O 设备上进行散列分区,使得这些分区大小基本一致;
3.列表(list)水平分区:通过指定表中的某个列的离散值集,来确定应当存储在一起的数据。例如,可以对表上的 status 列的值在(‘A’,‘H’,‘O’)放在一个分区,值在(‘B’,‘I’,‘P’)放在另一个分区,以此类推;
4.多级分区表:按上述三种分区方法进行任意组合,将表进行多次分区,称为多级分区表。

三、创建范围分区表
范围分区是按照某个列或几个列的值的范围来创建分区,当用户向表中写入数据时,数据库服务器将按照这些列上的值进行判断,将数据写入相应的分区中。

案例:创建一个范围分区表 callinfo,用来记录用户的电话通’讯信息,包括主叫号码、被叫号码、通话时间和时长,并且根据季度进行分区。
CREATE TABLE callinfo(
caller CHAR(15),
callee CHAR(15),
time DATETIME,
duration INT
)
PARTITION BY RANGE(time)(
PARTITION p1 VALUES LESS THAN (‘2026-01-01’),
PARTITION p2 VALUES LESS THAN (‘2025-01-01’),
PARTITION p3 VALUES LESS THAN (‘2024-01-01’),
PARTITION p4 VALUES EQU OR LESS THAN (‘2023-12-31’) //'2026-12-31’也可替换为MAXVALUE
);

以下语句查询 callinfo 表中分区 p1 的数据
SELECT * FROM callinfo PARTITION (p1);

四、创建哈希分区表
在很多情况下,用户无法预测某个列上的数据变化范围,因而无法实现创建固定数量的范围分区或 LIST 分区。
在这种情况下,DM 哈希分区提供了一种在指定数量的分区中均等地划分数据的方法,基于分区键的散列值将行映射到分区中。当用户向表中写入数据时,数据库服务器将根据一个哈希函数对数据进行计算,把数据均匀地分布在各个分区中。在哈希分区中,用户无法预测数据将被写入哪个分区中。

案例:如果销售城市不是相对固定的,而是遍布全国各地,这时很难对表进行 LIST 分区。如果为该表进行哈希分区,可以很好地解决这个问题
CREATE TABLE sales01(
sales_id INT,
saleman CHAR(20),
saledate DATETIME,
city CHAR(10)
)
PARTITION BY HASH(city)(
PARTITION p1,
PARTITION p2,
PARTITION p3,
PARTITION p4
);
需要查询 sales 第一个分区的数据,可执行以下语句:
Copy SELECT * FROM sales02 PARTITION (dmhashpart0);

五、创建 LIST 分区表
如果某个列上的数据无法通过划分范围的方法进行分区,并且该列上的数据是相对固定的一些值,可以考虑使用 LIST 分区。一般来说,对于字符型数据,取值比较固定的,则适合于采用 LIST 分区的方法。
案例:创建一个产品销售记录表 sales,记录产品的销量情况。由于产品只在几个固定的城市销售,所以可以按照销售城市对该表进行分区。
CREATE TABLE sales(
sales_id INT,
saleman CHAR(20),
saledate DATETIME,
city CHAR(10)
)
PARTITION BY LIST(city)(
PARTITION p1 VALUES (‘北京’, ‘天津’),
PARTITION p2 VALUES (‘上海’, ‘南京’, ‘杭州’),
PARTITION p3 VALUES (‘武汉’, ‘长沙’),
PARTITION p4 VALUES (‘广州’, ‘深圳’)
);
注意:LIST 分区的分区键必须唯一。

六、创建多级分区表
在很多情况下,经过一次分区并不能精确地对数据进分类,这时需要多级分区表。
案例:创建一个产品销售记录表 sales,记录产品的销量情况。由于产品需要按地点和销售时间进行统计,则可以对该表进行 LIST-RANGE 分区。
DROP TABLE SALES;
CREATE TABLE SALES(
SALES_ID INT,
SALEMAN CHAR(20),
SALEDATE DATETIME,
CITY CHAR(10)
)
PARTITION BY LIST(CITY)
SUBPARTITION BY RANGE(SALEDATE) SUBPARTITION TEMPLATE(
SUBPARTITION P11 VALUES LESS THAN (‘2025-01-01’),
SUBPARTITION P12 VALUES LESS THAN (‘2026-01-01’),
SUBPARTITION P13 VALUES LESS THAN (‘2027-01-01’),
SUBPARTITION P14 VALUES EQU OR LESS THAN (MAXVALUE))
(
PARTITION P1 VALUES (‘北京’, ‘天津’)
(
SUBPARTITION P11_1 VALUES LESS THAN (‘2027-01-01’),
SUBPARTITION P11_2 VALUES EQU OR LESS THAN (MAXVALUE)
),
PARTITION P2 VALUES (‘上海’, ‘南京’, ‘杭州’),
PARTITION P3 VALUES (DEFAULT)
);

七、维护水平分区表
1.增加分区:
建立水平分区表后,可根据实际需要新增一个分区。
SQL语句:
ALTER TABLE callinfo ADD PARTITION p5 VALUES LESS THAN (‘2029-01-01’) STORAGE (ON ts5);

2.删除分区:
建立水平分区表后,可根据实际需要删除一个分区。
SQL语句:
ALTER TABLE callinfo DROP PARTITION p1;

3.合并分区:
将相邻的两个范围分区合并为一个分区。合并分区通过指定两个分区名进行,将相邻的两个分区的数据进行合并,构建新的大分区。只能在范围和 LIST 分区上进行合并分区。
SQL语句:
ALTER TABLE callinfo MERGE PARTITIONS p3, p4 into partition p3_4;

4.拆分分区:
将某一个范围分区拆分为相邻的两个分区。拆分分区时指定的常量表达式值必须是原范围分区的有效范围值。只能在范围分区和 LIST 上进行拆分分区;
SQL语句:
ALTER TABLE callinfo SPLIT PARTITION p3_4 AT (‘2024-01-01’) INTO (PARTITION p3,PARTITION p4);

  1. 行移动
    更新数据后,数据需要跨分区移动
    SQL语句:
    ALTER TABLE table_name ENABLE ROW MOVEMENT;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服