达梦数据库DM8个人学习记录

前言

本文仅用于记录本人学习DM8的过程,希望对看到这篇文章的你有所帮助。

数据库安装与实例管理

创建安装用户和组
在这里插入图片描述
规划软件安装路径
在这里插入图片描述
挂载安装文件、设置图形化界面
在这里插入图片描述
图形化安装数据库
在这里插入图片描述
安装时路径选择之前创建的对应路径
root用户运行以下脚本
在这里插入图片描述
安装完成后可通过/dm8/tool目录下的dbca进行实例初始化,也可在安装后直接根据提示接着进行初始化操作
在这里插入图片描述
在这里插入图片描述
配置完成后,root用户继续执行下面的3个脚本
[root@localhost ~]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@localhost ~]# systemctl enable DmServiceDMSERVER.service
[root@localhost ~]# systemctl start DmServiceDMSERVER.service

执行完成后通过/dm8/tool下的manager工具进入数据库管理界面
在这里插入图片描述
执行数据库实例状态的转换
在这里插入图片描述

DMSQL

本节使用的表均为创建数据库时生成的示例库DMHR中的表

简单查询

多列查询
在这里插入图片描述
对列起别名
在这里插入图片描述
去重
在这里插入图片描述

过滤查询

查找工资区间在 18000-30000 的员工的信息
在这里插入图片描述

逻辑运算符

查找部门编号为 101 并且员工工资大于 30000 的员工
在这里插入图片描述

排序

升序
在这里插入图片描述
降序
在这里插入图片描述

分组汇总

统计每个部门有多少人
在这里插入图片描述
统计员工数量超过20的部门有哪些
在这里插入图片描述
统计平均工资超过6000元的部门有哪些
在这里插入图片描述

连接查询

连接查询分为内连接和外连接。
内连接:查询只返回满足条件的记录。
外连接:查询除了返回满足条件的记录外,不满足条件的也返回,用 null 代替。

自然连接
两个表的连接列,列名和数据类型要一致,不需要手动指定连接列
如下,两表的连接列为department_id和manager_id,列名和数据类型均一致,可直接使用自然连接
在这里插入图片描述
交叉连接
即得到两个表的迪卡集,在记录数量上反映为两表的乘积
在这里插入图片描述
USING
当出现多个连接列时,可以去指定一个连接列,连接列不能加前缀或者别名
这里我们选择使用manager_id作为连接列,使用department_id当然也可以
在这里插入图片描述
ON
可以使用ON关键字去指明具体的连接条件
同上,使用department_id作为连接条件也可以
在这里插入图片描述
JOIN…ON…与下面的WHERE语句是等价的
在这里插入图片描述
左外连接
左边表的记录全部显示,右边表的记录不满足的就用 null 代替
在这里插入图片描述
右外连接
右边表的记录全部显示,左边表的记录不满足的就用 null 代替
在这里插入图片描述
全外连接
全外连接=左外连接+右外连接
在这里插入图片描述

子查询

当一个查询的结果是另外一个查询的条件时,这就叫子查询。子查询先运行。
子查询分为:单行子查询和多行子查询
单行子查询:子查询的结果只返回 1 条记录。
多行子查询:子查询的结果返回不止 1 条记录。

单行子查询
查找和张晓中在同一个部门的员工。
在这里插入图片描述
多行子查询
相关关键字有IN,ANY,ALL
查找比402号部门工资都高的员工。
在这里插入图片描述

DM8体系结构

本节主要体现为数据库各种参数的修改

在修改参数前,一个需要获取的重要信息是要修改参数的参数类型

下面是获取对应参数的参数类型的通用SQL语句

select para_name,para_value,para_type from v$dm_ini where para_name = ‘<填入对应的参数名>’;

根据查询到的para_type的不同,参数可分为以下类型:

Session:会话级,针对当前会话有效
Sys:动态,系统级的参数,即改即生效
Infile:静态参数,修改参数后,重启数据库实例生效
Read only:只读参数,只能通过 vi 去修改

主要的修改方式有以下三种:

一、
sp_set_para_value(参数类型,参数名,参数值);
参数类型为 1:动态参数
参数类型为 2:静态参数

二、
alter system set ‘<参数名>’=参数值 参数类型;
参数类型为both:动态参数
参数类型为spfile:静态参数

三、
Vi /console 工具,或者在tool目录下运行./console
注意:通过这种方法修改参数,无论是静态参数还是动态参数都需要重启数据库生效
Read only 类型参数只能通过这种方法修改

下面给出一些例子

例一:修改数据库兼容模式为兼容 Oracle 数据库

数据库兼容模式:COMPATIBLE_MODE
是否兼容其他数据库模式。0:不兼容,
1:兼容 SQL92 标准,
2:部分兼容 ORACLE,
3:部分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA

查看得知该参数为静态参数
在这里插入图片描述
修改该参数值为2
在这里插入图片描述
由于该参数为静态参数,还需要重启数据库实例才能生效

例二:修改数据库密码策略为禁止与用户名相同并且口令长度不小于 9

数据库密码策略:PWD_POLICY
0: 无策略;
1: 禁止与用户名相同;
2: 口令长度不小于 9;
4: 至少包含一个大写字母(A-Z);
8 :至少包含一个数字(0-9);
16:至少包含一个标点符号(英文输入法状态下,除―和空格外的所有符号;
若为其他数字,则表示配置值的和,如 3 =1+2,表示同时启用第 1 项和第 2 项策略。当 COMPATIBLE_MODE=1 时,PWD_POLICY 的实际值均为 0

查看得知该参数为动态参数
在这里插入图片描述
修改该参数值为3(即1+2)
在这里插入图片描述
动态参数不需要重启数据库实例,即改即生效

表空间管理

查看表空间

在这里插入图片描述

创建表空间

创建表空间TBS,数据文件存放路径/dm8/data/DAMENG,包含两个数据文件,分别为TBS01.DBF 和 TBS02.DBF,每个数据文件的初始大小为 100M,开启自动扩展,每次扩展 2M,最大可扩充到 10G.
在这里插入图片描述
SQL语句为:
create tablespace “TBS” datafile ‘/dm8/data/DAMENG/TBS01.DBF’ size 100 autoextend on next 2 maxsize 10240, ‘/dm8/data/DAMENG/TBS02.DBF’ size 100 autoextend on next 2 maxsize 10240 CACHE = NORMAL;

维护表空间

表空间不足时,添加数据文件
在这里插入图片描述
SQL语句为:
alter tablespace “TBS” add datafile ‘/dm8/data/DAMENG/TBS03.DBF’ size 32 autoextend on next 1 maxsize 1024;

RESIZE数据文件大小
在这里插入图片描述
SQL语句为:
alter tablespace “TBS” resize datafile ‘TBS01.DBF’ to 200;

迁移表空间数据文件

查看表空间状态
0 代表:在线,联机
1 代表:离线,脱机
在这里插入图片描述

修改数据文件的路径
在这里插入图片描述
SQL语句为:
alter tablespace “TBS” offline;
alter tablespace “TBS” rename datafile ‘TBS01.DBF’ to ‘/dm8/TBS01.DBF’;
alter tablespace “TBS” online;

修改TEMP表空间大小

将 TEMP 表空间的大小修改为 100M
需要修改参数’TEMP_SIZE’
在这里插入图片描述
该参数为静态参数
在这里插入图片描述
静态参数在重启数据库实例后修改生效

表空间删除

删除表空间TBS
在这里插入图片描述
SQL语句为:
drop tablespace “TBS”;

用户管理

创建TEST用户,密码为 Dameng123,默认表空间为 TEST。用户拥有创建表、创建视图的权
限。
先创建表空间TEST
在这里插入图片描述
然后创建用户TEST
在这里插入图片描述
给表TEST相应的系统权限
在这里插入图片描述
SQL语句如下:
create user “TEST” identified by “Dameng123” password_policy 0
default tablespace “TEST”;
grant “PUBLIC”,“SOI”,“VTI” to “TEST”;
grant CREATE TABLE,CREATE VIEW to “TEST”;

创建角色
在这里插入图片描述
和用户一样赋予系统权限和对象权限后,SQL语句如下:
create role “R1”;
grant “RESOURCE” to “R1”;
grant CREATE TABLE,CREATE INDEX to “R1”;
grant UPDATE(“PHONE_NUM”) on “DMHR”.“EMPLOYEE” to “R1”;
grant SELECT on “DMHR”.“DEPARTMENT” to “R1”;
grant UPDATE(“EMAIL”) on “DMHR”.“EMPLOYEE” to “R1”;
grant SELECT on “DMHR”.“EMPLOYEE” to “R1”;

回收R1角色创建索引的权限
在“系统权限”中将CREATE INDEX的勾取消即可
在这里插入图片描述
回收 R1 角色查看 DMHR.DEPARTMENT 表的权限;回收 R1 角色更新 DMHR.EMPLOYEE.EMAIL
表的权限。
在这里插入图片描述
会提示修改失败,因为达梦权限授予可以到列级别,而权限回收必须按表级回收。
在这里插入图片描述
修改用户密码,默认表空间
在这里插入图片描述
修改用户权限
在这里插入图片描述
删除用户
在这里插入图片描述

模式对象管理

模式对象:表、视图、索引、存储过程、触发器、包、序列、同义词、函数等。

表管理

新建模式
在这里插入图片描述
在TEST模式下创建表并使用非空约束
在这里插入图片描述
在这里插入图片描述
唯一约束
创建唯一约束,会自动创建唯一索引,唯一约束会忽视 null,null 什么都不是。
在这里插入图片描述

通过脚本文件将数据批量导入到数据库的表中
Start /home/dmdba/test2.sql

主键约束
主键约束=非空+唯一约束,一个表只能有 1 个主键。
在这里插入图片描述
外键约束
在这里插入图片描述
在这里插入图片描述
有主外键约束的表,在插入数据时,要先插入主键所在表的记录,再插入外键所在表的记录;在删除数据时,要先删除外键所在表的记录,再删除主键所在表的记录。

更新语句
update test.test3 set id=777 where name=‘bbb’;

检查约束
在这里插入图片描述
ID>8,NUMBER(10,3)的可插入数据范围为9-9999999.999

修改表
修改表的一系列操作都可通过图形化界面完成,如增加列、删除列、表重命名、列重命名、修改列的数据类型,且操作逻辑大同小异,不再展示

删除表
在这里插入图片描述

视图管理

视图就是查询语句,一个虚拟表,没有真实数据。
在这里插入图片描述
删除视图
在这里插入图片描述

索引管理

创建索引
在这里插入图片描述
重建索引
在这里插入图片描述
删除索引
在这里插入图片描述

备份还原

本节的物理备份还原部分均采用联机备份+脱机还原来完成

物理备份还原

联机备份需要数据库打开,需要数据库开启归档模式,DmAP 服务需要开启
manager中开启归档
在这里插入图片描述
在这里插入图片描述
设置完成后重新打开管理服务器界面,重新转换为打开状态

查看数据库的归档模式
在这里插入图片描述
整库备份:
在这里插入图片描述
如果提示“收集到的归档日志不连续”,则执行checkpoint(100);

表空间备份、表备份操作逻辑与整库备份基本一致,不再展示

联机备份过程也可以使用disql来完成

下面执行脱机还原恢复操作,同样地只展示整库还原恢复

先停止数据库实例
[dmdba@localhost tool]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]

使用dmrman校验备份集
在这里插入图片描述
tool目录下进入Console工具
指定搜索目录后获取备份
在这里插入图片描述
执行库还原
在这里插入图片描述
执行库恢复,并指定归档恢复
在这里插入图片描述
更新DB_MAGIC
在这里插入图片描述
注意:在更新DB_MAGIC之后,如果还想执行别的备份还原操作,必须重新开启实例进行新的联机备份,然后再次关闭实例进行新的脱机还原,不然会报db_magic不匹配的错误

上述的脱机还原过程也可以全程使用dmrman来完成,不再展示

逻辑备份还原

达梦逻辑备份还原工具:dexp/dimp
四种级别:
Full:全库级别
Owner:用户级别
Shcemas:模式级别
Tables:表

同样地只展示全库导出过程
在这里插入图片描述
执行跨模式的逻辑导入操作,需要用到模式映射
先执行模式导出,此处不展示
再执行跨模式的逻辑导入
在这里插入图片描述
注意:虽然导入的模式是TEST,但执行操作时,是用DMHR模式执行导入操作,再通过配置模式映射实现跨模式导入操作

作业管理

作业管理可以看作是一种定时任务
创建代理环境
在这里插入图片描述
创建 JOB1,每周日 22:00 对数据库做完全备份。
创建作业步骤
在这里插入图片描述
创建作业调度
在这里插入图片描述

新建作业 JOB2,每周一到每周六 22:00 对数据库做增量备份
创建作业步骤
在这里插入图片描述
创建作业调度
在这里插入图片描述

DM8开发

ODBC安装包放在/opt下
先执行以下语句,每一步都需要一定的时间运行,等待完成即可
[root@localhost opt]# tar -xvf unixODBC-2.3.0.tar.gz
[root@localhost opt]# cd /opt/unixODBC-2.3.0
[root@localhost unixODBC-2.3.0]# ./configure
[root@localhost unixODBC-2.3.0]# make && make install

执行完成后,接着执行下列语句,看到对应路径信息
[root@localhost unixODBC-2.3.0]# odbcinst -j
unixODBC 2.3.0
DRIVERS…: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES…: /usr/local/etc/ODBCDataSources
USER DATA SOURCES…: /root/.odbc.ini
SQLULEN Size…: 8
SQLLEN Size…: 8
SQLSETPOSIROW Size.: 8

进入到对应的路径下
[root@localhost etc]# cd /usr/local/etc

修改odbc.ini
[root@localhost etc]# vi odbc.ini
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = aiyixun123456
TCP_PORT = 5236

修改odbcinst.ini
[root@localhost etc]# vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so

切换到dmdba账号进行连接,看到以下界面说明安装成功
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值