前言:
达梦数据库作为已商业化的国产数据库代表,在*及事业单位应用还是比较广泛。最近工作中有使用到达梦数据库,这里对已学习的相关内容作个简单记录,方便以后查阅。另外,网络上有关达梦数据库的资料甚少,且不够准确和系统,也希望这篇博文能帮助有需求的人员快速了解该数据库。
达梦数据库也属于关系型数据库大类,因此有相关经验将非常有利于理解该数据库,尤其是ORACLE数据库的使用经验。
优点
1、通用性
达梦数据库管理系统兼容多种硬件体系,可运行于X86、X64、SPARC、POWER等硬件体系之上。DM各种平台上的数据存储结构和消息通信结构完全一致,使得DM各种组件在不同的硬件平台上具有一致的使用特性。
达梦数据库管理系统产品实现了平台无关性,支持Windows系列、各版本Linux(2.4及2.4以上内核)、Unix、Kylin、AIX、Solaris等各种主流操作系统。达梦数据库的服务器、接口程序和管理工具均可在32位/64 位版本操作系统上使用。
2、高性能
支持列存储、数据压缩、物化视图等面向联机事务分析场景的优化选项;
通过表级行存储、列存储选项技术,在同一产品中提供对联机事务处理和联机分析处理业务场景的支持;
3、高可用
可配置数据守护系统(主备),自动快速故障恢复,具有强大的容灾处理能力。
4、跨平台
跨平台,支持主流软硬件体系(支持windows、Linux、中标麒麟、银河麒麟等操作系统),支持主流标准接口。
5、高可扩展
支持拓展软件包和多种工具,实现海量数据分析处理、数据共享集群(DSC)和无共享数据库集群(MPP)等扩展功能
基本概念介绍
这里主要简单介绍以下几个简单但重要的概念:数据库、实例、用户、表空间、模式、表、角色、数据文件。
数据库:数据存储的物理介质。广义上讲任何存储数据的物理介质都可叫着数据库,例如一个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.
**表:**这个就不用说了吧,但要说明的一点是一个表只能属于一个表空间。
**角色:**在达梦数据库中,每个用户都有角色。它决定了该用户有什么权限,比如DBA,拥有最高权限。补充说明一点是,实例化的达梦数据库默认有3种角色:DBA, PUBLIC,RESOURCE。新建的用户只拥有PUBLIC角色,该角色几乎做不了撒,因此一般新建用户后,需要单独对他(她)进行授权
安装及配置
安装环境 :中标麒麟OS
需要安装 gcc+
mount -o loop /dev/cdrom /mnt 挂载到/mnt
需要在root下执行配置脚本。
创建数据库实例
需要在root下执行配置脚本。
创建实例安装完成
通过后台进程的形式启动关闭数据库
[[email protected] bin]$ ./DmServiceDMSERVER start
[[email protected] bin]$ ./DmServiceDMSERVER stop
[[email protected] bin]$ ./DmServiceDMSERVER status
总结
达梦数据库和 oracle 数据库比较像,但未来达梦更加有发展空间,目前国内的芯片、网络、操作系统、软件、数据库以及周边配套基本已经实现了从可用走向好用,支持信创国产化数据库