达梦数据库(一) -------- 初识达梦

为什么要学习国产数据库

信息       信息技术应用创新产业,不仅是数字经济的重要支撑,更是实现经济高质量发展的关键驱动力。在基础设施层的芯片操作系统、数据库等核心领域,由于我国相关产业发展相对较晚,技术壁垒相对较高,已成为国产化替代的重点。尤其是在数据库领域,数据库作为企业存储和管理数据的核心系统软件,对上层软件应用或数据驱动商业决策起着关键的支撑作用,长期使用国外厂商产品,安全隐患较大。可以说,数据库的全面国产化,是大多数企业国产化替代的“重中之重”。

一.   达梦数据库的发展现状


       国内自主研发关系型数据库的企业,单位基本上都是发源于上世纪90年代的,而且都是以大学,科研机构为主。到今天,形成四大数据库厂商:

1.  达梦:由华中理工冯玉才教授创办,完全自主研发。以Oracle为参照,追赶对象。

2.  人大金仓:由人民大学王珊教授创办,自主研发。普通的关系型数据库。

3.  神舟通用:神舟集团与南大通用合作研发的关系型数据库。更多地用于数据分析领域。

4.  南大通用:南开大学的背景,2010年左右自主研发的,基于列式储存的,面向数据分析,数据仓库的数据库系统。

二.   达梦数据库的基本概念介绍

        达梦书数据库也属于关系型数据库 主要有已下鸡哥概念:数据库、实实例、用户、表空间、模式、表、角色、数据文件。

        1.数据库:

        数据存储的物理介质。广义上讲仁和存储数据的物理介质都可以叫做数据库,例如一张excel,一份word文档。但是实际上,我们说的数据库一般指代MYSQL,MONGODB,ORACLE等之类的软件系统,这些系统出了提供数据的存储外,还提供一整套的相关工具或者接口进行对数据的管理,达梦数据库就是这样的一种系统。

        2.数据库实例:

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

       3.用户:

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

        4.表空间:

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

        5.模式(schema):

        如果仅使用过Mysql,而没有ORACLE数据库使用经验比较难理解。

关于模式有几点需要记住:

  • 一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema;
  • 一个用户还可以使用其他的schema(Oracle数据库也可通过权限管理实现访问其他schema);
  • 创建模式不指定用户时,该模式默认为SYSDBA拥有;
  • 在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同;
  • 用户可以直接访问同名模式对象,但如果要要访问其他模式对象,则必须具有对象权限;
  • 当用户要访问其他模式对象时,必须附加模式名作后缀(schema.table);
  • 用户是用来连接数据库对象,而模式是用来创建及管理对象的。
        6.表:

        就是一个表空间

        7.角色:

        在达梦数据库中,每个用户都有角色。你可以为他分配特殊的权限,他决定了该用户有什么权限,比如DBA,拥有最高权限。补充说明一点是:实例化的数据库默认有三种角色DBA ,PUBLIC,RESOURECE.新建的用户只拥有PUBLIC角色,该用户基本上没有什么用,需要单独对他设置权限授权:

        8.数据文件:

数据的物理载体, 说明一下:

         “我们可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了,然后床上可以放置很多物品,就好比 Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人,(所以Schema包含的是Object,而不是User),user和schema是一一对应的,每个user在没有特别指定下只能使用自己schema(房间)的东西,如果一个user想使用其他schema(房间)的东西,那就要看那个schema(房间)的user(主人)有没有给你这个权限了,或者看这个仓库的老大(DBA)有没有给你这个权限了。换句话说,如果你是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是你的(包括房间),你有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,你还可以给每个User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了。”—摘自网络

三.   达梦数据库的基本使用

        1.查询表空间
 select * from V$TABLESPACE;
        2.查询模式
//根据表空间查询表 
select * from dba_tables where tablespace_name=‘TEMP’; 

//object_name指模式名, UTAB用户表,STAB系统表
SELECT * FROM SYSOBJECTS WHERE schid = (SELECT object_id from all_objects where object_name = ‘CTISYS’ and object_type = ‘SCH’) and (SUBTYPE$ = ‘UTAB’ or SUBTYPE$ = ‘STAB’); 
        3.表空间脱机及上线
 alter tablespace “DMHR” offline;
//同一表空间可以存在同名对象
 alter tablespace “DMHR” online; 
        4.模式切换
//查询当前模式  
SELECT SYS_CONTEXT (‘userenv’, ‘current_schema’) FROM DUAL; 
//设置当前登录用户的默认模式
SET SCHEMA “SYSDBA”; 
       5.数据大小
 //数据库占用空间  
SELECT SUM(bytes) from dba_data_files;
//表大小
SELECT TABLE_USED_SPACE(‘DMHR’, ‘REGION’) * 1024; 
       6.归档模式
 //归档是否打开  
select arch_mode from v$database;
//归档信息
select * from V$DM_ARCH_INI; 
       7.系统数据查询
//系统所有表查询  
select * from dba_tables; 
//登录用户所有表查询
select * from user_tables; 
//表空间查询
select * from user_tablespaces;
//系统所有用户查询
select * from dba_users; 

四.   表空间

        1.DM7表空间概述

        在DM7数据库中,表空间是一种逻辑存储结构,数据库的对象如表、索引等在逻辑上都是存储在指定的表空间。数据库在初始化的时候,系统自动创建五个默认表空间SYSTEM,MAIN,ROLL,TEMP和HMAIN表空间。其中SYSTEM表空间是系统表空间,存储有数据字典信息,用户数据不能放在该表空间上。TOLL,TEMP和HAMIN表空间,有系统自动维护,不需要用户干预。初始的MAIN表空间为用户默认表空间。表空间只是一种逻辑结构,对应的物理储存结构为数据文件。也即是,用户的数据储存在表空间的对应数据文件上面。DM7数据库中,物理存储结构的数据文件后缀为DBF。系统提供v$tabalespace和v$datafile视图查询表空间和数据文件。

--查询表空间
SQL>select * from v$tablespace;

--查询数据文件
SQL>select * from v$datafile;

--查询表空间对应的数据文件
SELECT
     ts.NAME,
     df.PATH
FROM
     V$TABLESPACE AS ts,
     V$DATAFILE   AS df
WHERE
     ts.ID = df.GROUP_ID;
        2.DM7表空间的穿件与删除
--创建表空间,最简洁形式
--仅指定数据文件路径,以及数据文件初始大小,单位为(MB)
--注意大小仅为数字,不能带M符号
CREATE TABLESPACE bookshop DATAFILE '/opt/bookshop.dbf' SIZE 128;

--创建表空间会自动创建如下属性
autoextend on   
maxsize 33554431
CAHE = NORMAL
属性分别指:数据文件自动扩展,扩展最大大小,数据也的缓冲池名称

--创建表空间,指定非自动扩展
CREATE TABLESPACE bookshop DATAFILE '/opt/bookshop.dbf' SIZE 128 autoextend off;

--删除表空间
drop tablespace bookshop;

删除表空间时,改表空间上必须没有数据库对象,否则会删除失败


       3.DM7表空间扩展

        当未指定表空间自动扩展,或者是某一操作系统目录空间不足,数据库需要新的空间是,可以对表空间进行扩展操作。扩展有两种操作,一是新增数据文件;另外一种是增大已有的数据文件。

--表空间脱机处理
ALTER TABLESPACE bookshop OFFLINE;

--更改数据文件路径
ALTER TABLESPACE bookshop RENAME DATAFILE '/opt/book.dbf' TO '/data/book.dbf';

当该表空间有事务操作时,脱机处理会失败。更改数据文件路径,系统会自动修改控制文件,并将操作系统文件移动到新的路径。

--在使用脱机处理失效时,可以将数据库系统进行关闭处理,然后手动修改控制文件,并移动数据文件至新的目录后,重新启动数据库系统。
      4.DM7表空间监控

        监控表空间使用空间情况

--DM7 查询表空间使用
select
        t.name tablespace_name,
        d.free_size*SF_GET_PAGE_SIZE()/1024/1024
        ||'M' free_space,
        d.total_size*SF_GET_PAGE_SIZE()/1024/1024
        ||'M' total_space,
        d.free_size*100/d.total_size "% FREE"
from
        v$tablespace t,
        v$datafile d
where
        t.id=d.group_id;
    5.DM7表空间备份

        DM7数据库支持用户表空间的备份还原操作。表空间备份需要在联机状态下执行,并且需要开启数据库归档模式。这是因为,表空间的数据库对象的字典信息是存储在数据库的系统SYSTEM表空间中。表空间的还原恢复,只能在备份源库上联机执行。

--表空间全量备份
BACKUP TABLESPACE t1 FULL TO TS_BAK BAKFILE '/opt/tablespace_bak.bak' ;

--表空间还原
ALTER TABLESPACE t1 OFFLINE;
RESTORE TABLESPACE t1 FROM '/opt/tablespace_bak.bak' IDENTIFIED BY ABCDEF;
ALTER TABLESPACE t1 ONLINE;

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值