本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考。

一、达梦数据库的体系架构
二、达梦数据库的安装
三、达梦数据库的数据类型
四、达梦数据库的DDL、DML、DCL语句
五、达梦数据库登录、创建用户、角色等非模式对象的基本操作,以及权限的管理
六、达梦数据库的客户端工具MNAGER和DTS
一、达梦数据库的体系架构
了解一个数据库的体系架构才能更好的使用它,所以先从达梦数据库的体系架构来进行介绍。
达梦数据库在架构上主要分为四部分:逻辑存储机构,物理存储结构,内存结构,和线程。
逻辑存储结构;
1. 数据库由一个或多个表空间组成;
2. 每个表空间由一个或多个数据文件组成;
3. 每个数据文件由一个或多个簇组成;
4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。
物理存储结构:
物理存储结构一般为保存在磁盘上的物理文件:
典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等
这里简单介绍以下dm.ini,以后会详细介绍,
每创建一个 DM 数据库,就会自动生成 dm.ini 文件。dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,里面有很多重要的参数,通过有经验的数据库管理人员设置不同的参数可以达到不同的效果。
内存结构:
DM 数据库管理系统的内存结构主要包括内存池、缓冲区、排序区、哈希区等。根据系统中子模块的不同功能,对内存进行了上述划分,并采用了不同的管理模式。
接下来简单介绍其中的几种:内存池则可一次向操作系统申请一片较大内存,当系统在运行过程中需要申请内存时,可在共享内存池内进行申请,当用完该内存时,再释放掉,即归还给共享内存池。
数据缓冲区是DM Server 在将数据页写入磁盘之前以及从磁盘上读取数据页之后,数据页所存储的地方,基于LRU算法,可以将经长访问的数据保留,提高I/O效率。
排序缓冲区提供数据排序所需要的内存空间。当用户执行 SQL 语句时,常常需要进行排序,所使用的内存就是排序缓冲区提供的。在每次排序过程中,都首先申请内存,排序结束后再释放内存。
DM线程:
DM 服务器使用“对称服务器构架”的单进程、多线程结构。这种对称服务器构架在有效 地利用了系统资源的同时又提供了较高的可伸缩性能
DM 进程中主要包括监听线程、IO 线程、工作线程、调度线程、日志线程等,下面简单介绍几个:
监听线程主要的任务是在服务器端口上进行循环监听,一旦有来自客户的连接请求,监 听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。 它在系统启动完成后才启动,并且在系统关闭时首先被关闭。为了保证在处理大量客户连接 时系统具有较短的响应时间,监听线程比普通线程优先级更高。
工作线程是 DM 服务器的核心线程,它从任务队列中取出任务,并根据任务的类型进
IO 线程的职责就是处理这些 IO 操作。通常情况下,DM Server 需要进行 IO 操作的时机主要有以下三种: 1. 需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区; 2. 缓冲区满或系统关闭时,此时需要将部分脏数据页写入磁盘; 3. 检查点到来时,需要将所有脏数据页写入磁盘。 IO 线程在启动后,通常都处于睡眠状态,当系统需要进行 IO 时,只需要发出一个 IO请求,此时 IO 线程被唤醒以处理该请求,在完成该 IO 操作后继续进入睡眠状态。
调度线程用于接管系统中所有需要定时调度的任务。调度线程每秒钟轮询一次,负责的 任务有以下一些: 1. 检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列 由工作线程执行; 2. 清理 SQL缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项; 3. 检查数据重演捕获持续时间是否到期,到期则自动停止捕获; 4. 执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池; 5. 自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据 INI 参数设置的自动检查点执行间隔定期执行检查点操作; 6. 会话超时检测。当客户连接设置了连接超时,定期检测是否超时,如果超时则自 动断开连接; 7. 必要时执行数据更新页刷盘; 8. 唤醒等待的工作线程。
二、达梦数据库的安装
达梦数据库在Windows上的安装很简单,下载安装包,根据提示就可以完成安装,我在Linux上安装遇到了几个问题,我还没有解决,下周我会把这个问题解决然后进行更新。
三、达梦数据库的数据类型
DM数据类型可以分为四大类:常规数据类型(字符和数值型),位串数据类型,日期时间数据类型,多媒体数据类型;
达梦数据库DM8我目前练习了48种数据类型,下面附上测试SQL;
建表包括目前的所有数据类型:
1 create table tmp_lj_1(a_1 char(32),a_2 character(32),a_3 varchar(32),a_4 varchar2(32),a_5 numeric (4,1),
2 a_6 decimal(4,1),a_7 dec(4,1),a_8 number(4,1),a_9 integer,a_10 int,a_11 bigint,a_12 tinyint,a_13 byte,
3 a_14 smallint,a_15 binary,a_16 varbinary,a_17 float,a_18 double,a_19 real,a_20 double precision,
4 a_21 bit,
5 a_22 date,a_23 time,a_24 timestamp,a_25 interval year to month,a_26 interval year,a_27 interval month,
6 a_28 interval day,a_29 interval day to hour,a_30 interval day to minute,a_31 interval day to second,
7 a_32 interval hour,a_33 interval hour to minute,a_34 interval hour to second,a_35 interval minute,a_36 interval minute to second,a_37 interval second,
8 a_38 time with time zone,a_39 timestamp with time zone,a_40 timestamp with local time zone,
9 a_41 text,a_42 long,a_43 longvarchar,a_44 image,a_45 longvarbinary,a_46 blob,a_47 clob,a_48 bfile);
插入数据并验证:
1 insert into tmp_lj_1 values('a1','a2','a3','a4',10.5,10.6,10.7,10.8,9,10,-11,-12,-13,-14,0xF,0x10,1.17,1.18,1.19,1.20,
2 0,
3 '2021.5.20','12:10:32','2021-5-20 12:10:32.000000','21-5','21','05',
4 '20','20 9','20 12:30','20 12:30:30.000000',
5 '18','18:20','18:20:30.000000','22','22:30.000000','22.000000',
6 '18:26:32 +8:00','2021-5-20 18:30:30 +8:00','2021-5-20 18:36:30 +8:00',
7 'AA','AA','AA','0X2F','0X2F','0X2F','AA',NULL)
8
9 SELECT * from tmp_lj_1 --查看数据
四、达梦数据库的DDL、DML、DCL语句
1. DDL语句,用户、模式、基表、视图、索引、序列、全文索引、存储过程、触发器等数据库对象的定义和删除语句
2. DML查询(含全文检索)、插入、删除、修改语句;
3. DCL:授权语句、回收权限语句
这些语句和目前主流的SQL语句基本类似,下面会对部分语句进行测试,大家也可以自行探索。
五、达梦数据库登录、创建用户、角色等非模式对象的基本操作,以及权限的管理
数据库登录输入主机名(本机一般为LOCALHOST或者输入本机IP地址)通信端口号和对应的用户密码即可
创建用户
1 CREATE USER LOGIN_001  IDENTIFIED BY LOGIN_001; --创建用户
授权DBA
1 grant DBA to LOGIN_001 --授权DBA
删除用户
1 drop user LOGIN_001 cascade; --删除用户
创建模式
这里解释以下模式:
在 DM 中,一个用户可以创建多个模式,一个模式中的对象(表、视图)可以被多个用户使用。 系统为每一个用户自动建立了一个与用户名同名的模式作为默认模式,相当于一个存储文件的文件夹。
1 CREATE SCHEMA SCHE_001 --创建模式
2
3 SET SCHEMA SCHE_001; --切换SCHE——001模式
4
5 CREATE TABLE SCHE_T(A INT); --创建SCHE_T表
将表SCHE_T的表级SELECT、INSERT权限授予用户USER_001
1 grant select,insert on sche_t to user_001 --对应授权
六、达梦数据库的客户端工具MNAGER和DTS
MANAGER: DM管理工具
   
   
新建连接
创建连接数据库的对象导航,不进行保存,下次开启后需重新连接。
注册连接
创建连接数据库的对象导航,进行保存,下次开启后对象导航存在,可直接进行连接。
连接时选择对应的主机名,端口,用户名和密码即可
工具栏可以新建SQL窗口,保存和打开SQL脚本到本地,还可以打开主页查看文档和工具导航,也可以打开SQL调试。
对象导航:可以查看当前连接信息,包括模式,表空间,用户等等,右键对应模块,可以进行创建或者删除操作。
SQL窗口:进行SQL脚本的编写包括查询,函数,存储过程等等。
脚本管理:保存常用或需要记忆的脚本,可以很方便打开
函数:系统函数以及使用说明
日志:查看执行日志
代理环境:配置作业自动执行,包括定时备份,每日建表以及更新等操作。
 
DTS:
DM 数据迁移工具 DM DTS 提供了主流大型数据库迁移到 DM、DM 到 DM、文件迁移到 DM 以及 DM 迁移到文件等功能。
以MySQL到达梦为例:

打开工具,新建工程,输入工程名字入MySQL_dm,会出现一个工程。
展开新建的工程,右键迁移选择新建迁移,输入迁移名称,进入下一步
会介绍达梦支持的迁移类型,下一步:
选择MySQL到DM:
输入源数据库和目的数据库的对应信息:
选择对应的模式和需要迁移的表,视图等
查看迁移任务:
完成迁移,并再DM中查看数据:

达梦数据库产品支持技术学习分享_Week1的更多相关文章

  1. 达梦数据库产品支持技术学习分享_Week2

    本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考. 一.文本命令行工具使用的方法(Disql和dmfldr) 二.数据库备份 三.定时作业功能 四.系统表和动 ...

  2. .NETCore 访问国产达梦数据库

    前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发.销售与服务,同时可为用户提供大数据平台架构咨询.数据技术方案规划.产品部署 ...

  3. [开源] .Net 使用 ORM 访问 达梦数据库

    前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发.销售与服务,同时可为用户提供大数据平台架构咨询.数据技术方案规划.产品部署 ...

  4. 达梦数据库学习(一、linux操作系统安装及数据库安装)

    达梦数据库学习(一.linux操作系统安装及数据库安装) 环境介绍: 使用VM12+中标麒麟V7.0操作系统+达梦8数据库 一.linux系统搭建 本部分没有需要着重介绍,注意安装时基本环境选择&qu ...

  5. 基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

    由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于 ...

  6. DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库

    DB 查询分析器 6.03 如何灵活.快捷地操作国产达梦数据库 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要       本文详细地介绍了"万能数据库查询分析器&qu ...

  7. Linux平台达梦数据库V7单实例安装方式之图形方式

    一 前言 我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库 ...

  8. [转帖]达梦数据库(DM6)和ORACLE 10g的异同点

    达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html   花花浪子 级别: 小白 发帖 0 云币 -41 加关注 ...

  9. 国产化之 .NET Core 操作达梦数据库DM8的两种方式

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等.考虑到这些基础产品对.NET的支持,最终选择了.NET Core ...

随机推荐

  1. 如何使用natapp来实现内网穿透及案例

    1. 业务场景 当我们的项目是部署在本地的时候,如何让其他用户(不在同一个局域网之下)来进行调用呢?这时我们就可以使用内网穿透将自己的IP通过映射成相应的地址,然后再通过映射后的地址来进行访问本地的项 ...

  2. python进阶(17)偏函数partial

    什么是偏函数partial python中提供一种对于函数固定属性的函数 偏函数的作用 把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数 偏函数的语法 使用偏函数必须先导入from ...

  3. 记一次 .NET 某教育系统API 异常崩溃分析

    一:背景 1. 讲故事 这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 ,写的非常好,不过美中不足的是通览全文之后,总觉得有那么一点不过瘾,就是没有 ...

  4. POJ1135比较有意思的对短路(多米骨牌)

    题意:      有一个骨牌游戏,就是推到一个后所有的牌都会被退到的那种游戏,起点是1,有两种骨牌,一种是关键牌,另一种是普通牌,普通牌是连接关键牌用的,给你一些边a b c的意思是关键牌a倒之后c时 ...

  5. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)

    SHADOW SSDT HOOK HOOK 和 UNHOOK SHADOW SSDT 跟之前的 HOOK/UNHOOK SSDT 类似,区别是查找SSSDT的特征码,以及根据索引计算函数地址的公式,还 ...

  6. Redis—简单动态字符串(SDS)

    目录 Redis-简单动态字符串(SDS) SDS的定义 SDS与C字符串的区别 1. 常数复杂度获取字符串长度: 2. 杜绝缓冲区溢出: 3. 减少修改字符串时带来的内存重分配次数 4. 二进制安全 ...

  7. ImageIo.read 返回null

    一.问题描述 今天收到一个bug就是imageio读取图片会返回null,具体如下 但是其他的图片就没有问题 二.问题分析 结合百度发现这张图片原本的后缀并非是jpg,使用notpard++打开就可以 ...

  8. 拦截器(Interceptor)与过滤器(Filter)

    目录 用户的普通Http请求执行顺序 过滤器.拦截器添加后的执行顺序 拦截器(Interceptor)的基本定义 拦截器(Interceptor)必须实现的三个方法 单个拦截器(Interceptor ...

  9. opencv实战——图像矫正算法深入探讨

    摘要 在机器视觉中,对于图像的处理有时候因为放置的原因导致ROI区域倾斜,这个时候我们会想办法把它纠正为正确的角度视角来,方便下一步的布局分析与文字识别,这个时候通过透视变换就可以取得比较好的裁剪效果 ...

  10. CAS的理解

    CAS(CompareAndSweep)工作方式 ​ CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被 ...