猿创征文 | 国产数据库之DM数据库详解安装和使用

1、DM数据库简介

新一代大型通用关系型数据库,全面支持 ANSI SQL 标准和主流编程语言接口/开发框架。行列融合存储技术,在兼顾 OLAP 和 OLTP 的同时,满足 HTAP 混合应用场景。
DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。

2、DM数据库基本概念介绍

这里主要简单介绍以下几个简单但重要的概念:数据库、实例、用户、表空间、模式、表、角色、数据文件。

  • 数据库
    数据存储的物理介质。广义上讲任何存储数据的物理介质都可叫着数据库,例如一个word文档。但实际上,我们说数据库一般是指像MySQL,ORACLE, HBASE等之类的软件系统。这些系统除了提供数据的存储外,还提供一整套相关的工具或接口对存储的数据进行管理。达梦数据库就是这样的一种系统。

  • 数据库实例
    已实例化可存储数据的仓库。达梦数据库与MySQL数据库有一个很大的差别就是:MySQL服务启动后通过create database语句创建N个数据库(数据库实例);而达梦数据库一个实例就只能挂一个数据库(即一个实例就是一个数据库),如果想建多个数据库,则需配置启动相应数量的实例。达梦的每个实例有一系列的后台进程和内存结构,这些是相互独立的。

  • 用户
    达梦数据库用户是建在实例下的,因为实例相互独立,所有达梦数据库不同的实例下可以有相同的用户名。另外,在达梦数据库中通过create user语句创建用户时,会同时创建一个同名的“模式”。也可以通过create schema语句单独创建模式(特别注意:在Oracle中,用户与schema是一一对应的,不能单独创建模式,要想创建模式得需通过创建一个同名用户来实现),并授权给某个已存在的用户,因此在达梦数据库中用户与模式是1:N的关系。(注:如果先通过create schema创建了模式,再通过create user创建同名用户,不能创建成功。)

  • 表空间
    是一个用来管理数据存储的概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。可以将表空间理解为对应一块物理存储区,专门用来存储数据文件。实例化达梦数据库时,默认会创建MAIN、ROLL、SYSTEM、TEAM及HMAIN五个表空间。ROLL、SYSTEM、TEAM表空间系统自行维护,用户所建表(如果未指定存放表空间的话)默认放在MAIN表空间。用户也可自定义表空间,然后在创建用户时指定为默认表空间;也可以在建表时通过加"tablespace SpaceName"语句动态指定该表的存储表空间。

  • 模式(schema)
    如果仅使用过MySQL,而没有ORACLE数据库使用经验,这个概念比较难理解。先摘录一段官方说明:

    A schema is a collection of database objects,such as table, view, sequence, etc (used by a user.).
    Schema objects are the “logical” structures that directly refer to the database’s data.
    A user is a name defined in the database that can connect to and access objects through schema.
    Schemas and users help database administrators manage database security.

    关于模式,需要记住一下几点:

    1、一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema;

    2、一个用户还可以使用其他的schema(Oracle数据库也可通过权限管理实现访问其他schema);

    3、创建模式不指定用户时,该模式默认为SYSDBA拥有;

    4、在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同;

    5、用户可以直接访问同名模式对象,但如果要要访问其他模式对象,则必须具有对象权限;

    6、当用户要访问其他模式对象时,必须附加模式名作后缀(schema.table);

    7、用户是用来连接数据库对象,而模式是用来创建及管理对象的。


  • 这个就不用说了吧,但要说明的一点是一个表只能属于一个表空间。

  • 角色
    在达梦数据库中,每个用户都有角色。它决定了该用户有什么权限,比如DBA,拥有最高权限。补充说明一点是,实例化的达梦数据库默认有3种角色:DBA, PUBLIC,RESOURCE。新建的用户只拥有PUBLIC角色,该角色几乎做不了撒,因此一般新建用户后,需要单独对他(她)进行授权。

  • 数据文件
    数据的物理载体。

3、DM数据库体系结构介绍

在这里插入图片描述

3.1、DM物理结构

DM 数据库使用了磁盘上大量的物理存储结构来保存和管理用户数据。主要包括:

1、配置文件
配置文件是 DM 数据库用来设置功能选项的一些文本文件的集合,配置文件以 ini 为扩展名,如dm.ini, dmarch.ini

2、控制文件
每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息。

3、数据文件
数据文件以 dbf 为扩展名,它是数据库中最重要的文件类型,一个 DM 数据文件对应磁 盘上的一个物理文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的 数据文件。在实际应用中,通常有多个数据文件。

4、重做日志文件
重做日志文件又叫redo日志。主要用于数据库的备份和恢复。

5、归档文件
利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,如果没有归档日志文件,则只能利用备份进行恢复。

6、逻辑日志文件
如果在DM数据库上配置了复制功能,复制源就会产生逻辑日志文件。

7、备份文件
备份文件以 bak 为扩展名

8、日志文件(跟踪日志,事件日志)
用户在 dm.ini 中配置 SVR_LOG 和 SVR_LOG_SWITCH_COUNT 参数后就会打开跟踪日志。
DM 数据库系统在运行过程中,会在 log 子目录下产生一个“dm_实例名_日期”命名的 事件日志文件。事件日志文件对 DM 数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误。

3.2、DM内存结构

DM 数据库管理系统的内存结构主要包括内存池、缓冲区、排序区、哈希区等。根据系统中子模块的不同功能,对内存进行了上述划分,并采用了不同的管理模式。
1、共享内存

查看共享内存大小:

SQL> select para_name,para_value from v$dm_ini where para_name='MEMORY_TARGET';

其中0 表示的是不限制,在oracle中:memoroy_target=sga+pga

Memory_pool 表示系统内存池大小,查看方法:

SQL> select para_name,para_value from v$dm_ini where para_name='MEMORY_POOL';

2、数据缓冲区buffer

1、存放的内容:LRU(最小使用算法)链表。

2、状态:free,dirty,clean,pending.

3、如何去设置buffer的大小?

SQL> select para_name,para_value from v$dm_ini where para_name='BUFFER'; # 大小
SQL> select para_name,para_value from v$dm_ini where para_name='MAX_BUFFER'; # 最大值

我们可以通过VPARAMETER和VPARAMETER 和VPARAMETER和VDM_INI视图去查看相关参数的值,例如:

SQL> select name ,type from v$parameter where name='BUFFER';
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湫一刀

希望大家多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值