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

一、达梦数据库的体系架构
二、达梦数据库的安装
三、达梦数据库的数据类型
四、达梦数据库的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. JavaScript课程——Day07(对象简介、Math对象、时间对象、字符串对象)

    1.对象简介 在javaScipt中,一切皆为对象或者皆可以被用作对象 宿主对象:window,document 内置对象:Number  String  Boolean  Array数组  Obje ...

  2. Mybatis一级缓存和结合Spring Framework后失效的源码探究

    1.在下面的案例中,执行两次查询控制台只会输出一次 SQL 查询: mybatis-config.xml <?xml version="1.0" encoding=" ...

  3. fullpage.js用法总结

    兼容性: 支持 IE8+ 及其他现代浏览器. 主要功能: 1.支持鼠标滚动: 2.支持前进后退键盘控制; 3.多个回调函数; 4.支持手机.移动设备; 5.支持窗口缩放自动调整; 6.可设置滚动宽度. ...

  4. 四次挥手中你还不知道的ACK机制

    为面试做准备中. 后面有对ACK机制的详细讲解. 四次挥手比较好解释. 看一下我的草图. ACK表示发来的数据已确认接收无误. 图中一个箭头代表一次挥手. 第一次挥手: 主动关闭方:发送一个FIN,表 ...

  5. big data-1

  6. cetnos中nmap端口扫描工具的使用

    1:安装: yum -y install nmap 2:使用方法: nmap -p 1-65535 1.1.1.1 #扫描1.1.1.1此IP地址的所有端口 nmap -p 80,443 1.1.1. ...

  7. nginx 配置后页面访问是报500错

    该问题是html文件权限问题. 用jenkins 并远程服务器上传到另一台服务器的html ,在配置好nginx 的location  root 绝对位置后还是报错500 手工用root上传时访问正常 ...

  8. 使用TK框架中 insert与insertSelective区别

    insertSelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想插入某些字段,可以用这个方法. insert对你注入的字段全部插入

  9. 什么是 Mock 测试?

    什么是 Mock? 作为动词,Mock 是模拟.模仿的意思. 作为名词,Mock 是能够模仿真实对象行为的模拟对象. 那么,在软件测试中,Mock 所模拟的对象是什么呢? 模拟的是 SUT(Syste ...

  10. 进程Queue和线程Queue区别

    进程Queue from multiprocessing import Queue q=Queue() 线程Queue import queue q=queue.Queue()