DM8数据库使用

前言

最近开发的项目由于一些原因需要从mysql迁移到dm数据库上面开发,简单记录一下使用dm数据库的过程

安装和说明

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。

关于Windows和Linux的安装这里就不在赘述,根据链接自行安装即可
DM数据库安装及启动教程(Windows超详细版).
DM数据库安装及启动教程(Linux超详细版).
(注意!创建实例过程中一定要把忽略大小写给关掉)

在开始之前首先要了解达梦数据库的体系结构
达梦数据库使用表空间,所有数据文件组合都放在表空间里,并将表空间进一步划分为段、簇、页(块),这种细分方式可以提高磁盘空间利用率。数据库由1个或多个表空间组成。

表空间是DM非常重要的一个概念,表空间其实就是存放用户、表、存储过程等东西。因此,表空间由1个或多个数据文件组成。
达梦数据库有5个系统表空间,SYSTEM、ROLL、MAIN、TEMP、HMAIN

表空间说明
SYSTEM保存数据字典
ROLL达梦自己维护,用户不用干涉
MAIN如果在创建用户的时候没有选择对应的表空间,系统默认使用此表空间
TEMP达梦自己维护,内存不够用时会使用这个完成计算
HMAIN达梦自己维护,用户不用干涉

表空间在磁盘上都有对应的文件,用户自己新建表空间也会有一个与之对应的.DBF文件在数据库目录中。

概念说明
对象是表空间在磁盘上的文件,叫对象,即物理存储空间。
模式是对象的集合,模式还包含一系列逻辑数据结构,模式的名字与用户名相同。
用户拥有表,且拥有一个单独的模式,用户创建的对象放在自己的模式中,那么此对象叫模式对象,用户访问自己的模式对象,不用加模式名。

由此可以看出他们之间是有对应关系的。
当想创建用户时,先创建一个与之对应的表空间,然后创建用户,并将该用户指定给对应的表空间,在使用创建的用户用来创建模式。因为模式是对象的集合,所以我们的创建的表结构和数据都在模式里面存储。下面会详细说一下模式的概念

相关操作

在这里插入图片描述
达梦数据库安装和创建数据库完成后,点击DM管理工具连接成功,如上图所示

在DM中,一个用户可以创建多个模式,一个模式中的对象(表、视图等)可以被多个用户使用。模式不是严格分离的,一个用户可以访问他所连接的数据库中有权限访问的任意模式中的对象。系统为每一个用户自动建立了一个与用户名同名的模式作为其默认模式,用户还可以用模式定义语句建立其它模式。

采用模式的原因有几点:

  1. 允许多个用户使用一个数据库而不会干扰其它用户;
  2. 把数据库对象组织成逻辑组,让它们更便于管理;
  3. 第三方的应用可以放在不同的模式中,这样可以避免和其它对象的名字冲突。模式类似于操作系统层次的目录,只不过模式不能嵌套。

模式操作

注:Windowns可以使用DM管理根据来创建,也可以用SQL,这里只演示使用SQL来创建。

查看当前系统下有哪些模式
select distinct object_name table_schema from all_objects where object_type='SCH';
当前用户切换模式

注:切换模式后,你所执行的所有对表和其他操作都在这个模式下进行

// set schema 模式名
set schema system;
查看指定模式下所有的对象信息
select OBJECT_NAME,OBJECT_ID,OBJECT_TYPE,status from all_objects where owner = 'DMHR';
创建一个表空间用于测试

注:上面说到过,如果不创建表空间的话,创建用户时默认使用MAIN表空间。不利于后期维护。

// create tablespace 表空间名称 datafile 数据文件路径 size 802 autoextend on maxsize 67108863 CACHE = NORMAL;
create tablespace "agent" datafile 'agent01.dbf' size 802 autoextend on maxsize 67108863 CACHE = NORMAL;

create tablespace “agent”:创建一个名为TEST的表空间
datafile ‘agent01.dbf’:表示数据文件名为agent01.dbf,存放的路径为默认路径(数据库实例的路径)
maxsize 300:即扩充的上限为67108863M
size 32:表示数据文件的大小为32M
CACHE = NORMAL:表空间的缓冲池为NORMAL
autoextend on:开启自动扩充
// -----------------------------------------------下面是其他参数,供参考-----------------------------------------------------------------
MIRROR ‘TESTMirro.DBF’:表示Mirror文件名为TESTMirro.DBF,存放的路径为默认路径(数据库实例的路径)
autoextend off:关闭自动扩充
next 30:即每次扩充的大小为30M
maxsize 300:即扩充的上限为300M
encrypt with DES_ECB_NOPAD:表示采用的加密算法为DES_ECB_NOPAD
by “123456”:表示加密密码为123456

创建用户test
// create user 用户名称 identified by Dameng666 default tablespace 表空间名称;
create user agent identified by Dameng666 default tablespace agent;

注:如果不加default tablespace agent,则默认使用MAIN表空间,不利于后期维护。另外,创建的用户会有一些默认资源限制。

用户授权

grant resource,public,soi,svi,vti to test;
注:如果不授权的话,默认新建的用户只有登陆权限,没有其他权限,如建表,查看信息等。
RESOURCE:创建对象等权限;
SOI:具有系统表的查询权限;
SVI:具有基础V视图的查询权限;
VTI:具有系统动态视图的查询权限,VTI默认授权给DBA且可转授;
PUBLIC:不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵。

创建一个模式,模式的拥有者是agent

在模式下创建表需要有create table权限,在其他用户的模式中创建新表需要有create any table数据库权限。

// CREATE SCHEMA 模式名称 AUTHORIZATION 用户名称;
CREATE SCHEMA agent AUTHORIZATION agent;

关于授权和其他命令查找
【DM】达梦数据库中的用户管理与角色管理.

数据库迁移

因为之前是用的mysql开发的项目,中间是要换达梦数据库 要做数据库迁移,迁移也比较简单 使用
达梦的可视化工具
在这里插入图片描述

新建任务

在这里插入图片描述

新建迁移

在这里插入图片描述

双击迁移开始

在这里插入图片描述
在这里插入图片描述

连接mysql数据库

在这里插入图片描述
注:mysql8以上需要手动指定驱动,自行从网下下载jar包(mysql-connector-java-8.0.15.jar)

连接DM数据库并迁移

在这里插入图片描述
注:目的模式选择我们刚才创建的模式即可

选择迁移对象

在这里插入图片描述
注:选择要迁移的表

审阅迁移任务

在这里插入图片描述
注:确定无误后点击完成开始迁移数据

MySQL和DM部分语法替换
请添加图片描述

结尾

如果有其他未解决的问题清留下评论大家一起来讨论,或者去看官方文档.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值