目录

1 DM8安装与卸载

1.1 DM8版本介绍

1.1.1 开发版

1.1.2 安全版 

1.1.3 企业版 

1.1.4 标准版 

1.2  安装前准备

1.2.1 查看操作系统信息

 1.2.2 查看GLIBC版本

 1.2.3 查看CPU信息

 1.2.4 查看内存使用情况

1.2.5 查看gcc版本

1.2.6 查看磁盘容量

1.3 安装流程

1.3.1 安装规划

1.3.2 创建安装用户和用户组

 1.3.3 更改用户权限

 1.3.4 修改文件打开数和tmp空间

 1.3.5 图形化安装

 1.3.6 字符界面安装

1.4 卸载流程

1.4.1 图形化卸载

 1.4.2 字符界面卸载

1.5 数据库实例创建

1.5.1 图形化方式

 1.5.2 dminit初始化数据库

1.5.3 图形化删除数据库服务

1.5.4 字符命令删除服务

2 连接数据库

2.1 命令连接

2.1.1 disql连接数据库

2.1.2 conn连接

2.2 图形化连接

2.2.1 DM管理工具连接

2.3 配置连接串

2.3.1 DM网络配置助手

 2.3.2 修改dm_svc.conf

3 参数配置

3.1 参数类型

3.2 修改参数

3.2.1 直接修改dm.ini

3.2.2 DM控制台工具修改

3.2.3 SQL语句修改

3.2.4 系统函数修改

4 数据缓冲区和日志缓冲区

4.1 查看缓冲区信息

4.2 修改缓冲区参数

4.3 查看日志缓冲区

5 表空间管理

5.1 表空间类型

5.2 操作表空间

5.2.1 命令方式

5.2.2 图形化操作表空间

 5.3 表空间的迁移

 5.4 修改temp表空间

6 重做日志

6.1 命令操作重做日志

6.2 重做日志迁移

6.3 图形化操作重做日志

7 归档管理

7.1 开归档

7.1.1 命令行开归档

7.1.2 修改dm.ini和dmarch.ini文件开启归档

7.1.3  图形化开归档

7.2 关闭归档

7.2.1 命令行

7.2.2 图形化关归档 

8 用户角色权限

8.1 用户管理

8.1.1 用户类型

8.1.2 创建用户 

 8.1.3 查询指定用户所用的权限

8.2 角色管理

8.2.1 角色类型

8.3 权限管理

8.3.1 授予查询权限

8.3.2 授予添加修改权限

8.3.3 回收用户权限

8.3.4 图形化

9 模式对象管理

9.1 创建模式

10 表管理

10.1 创建表

10.2 约束

10.2.1 约束类型

10.2.2 添加约束 

10.2.3 启用和禁用约束

11 索引视图管理 

11.1 创建索引

11.2 视图创建

12 备份与还原

12.1 逻辑导入导出

12.1.1 逻辑导出

12.1.2 逻辑导入

12.2 物理备份还原

12.2.1 联机备份

12.2.3 脱机备份

12.2.4 库级还原

12.3 图形化操作

12.3.1 联机备份

 12.3.2 脱机备份

12.3.3 物理还原 

13 作业管理

13.1 创建代理环境

13.2 创建作业

14 ODBC配置



1 DM8安装与卸载

1.1 DM8版本介绍

1.1.1 开发版

使用时间受到限制,不能作为商用

1.1.2 安全版 

增强安全特性,如强制访问控制,环境标记等

1.1.3 企业版 

满足大型企业需求,生产应用最多的版本

1.1.4 标准版 

不支持集群特性,满足中小企业的需求

1.2  安装前准备

1.2.1 查看操作系统信息

[root@localhost ~]# cat /proc/vercion

SpringBoot 达梦获取所有的tables_图形化

 1.2.2 查看GLIBC版本

[root@localhost ~]# ldd --version

[root@localhost ~]# rpm -qa|grep glibc

SpringBoot 达梦获取所有的tables_数据库_02

SpringBoot 达梦获取所有的tables_表空间_03

 1.2.3 查看CPU信息

[root@localhost ~]# lscpu

SpringBoot 达梦获取所有的tables_图形化_04

 1.2.4 查看内存使用情况

[root@localhost ~]# free -m

SpringBoot 达梦获取所有的tables_数据库_05

1.2.5 查看gcc版本

[root@localhost ~]# gcc --version

#若没有gcc,则用如下命令安装
[root@localhost ~]# yum install gcc

SpringBoot 达梦获取所有的tables_数据库_06

1.2.6 查看磁盘容量

[root@localhost ~]# df -h

SpringBoot 达梦获取所有的tables_表空间_07

1.3 安装流程

1.3.1 安装规划

安装规划

目录

软件安装路径

/dm8/dmdbms

数据库目录

/dm8/data

归档路径

/dm8/arch

备份路径

/dm8/backup

1.3.2 创建安装用户和用户组

[root@localhost ~]# groupadd dinstall
[root@localhost ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

#修改用户密码
[root@localhost ~]# passwd dmdba        
#查看用户是否创建成功
[root@localhost ~]# id dmdba

SpringBoot 达梦获取所有的tables_图形化_08

 1.3.3 更改用户权限

[root@localhost ~]# chown dmdba:dinstall /dm8
[root@localhost ~]# chmod -R 755 /dm8

#查看dm8权限
[root@localhost ~]# ll -ld /dm8

SpringBoot 达梦获取所有的tables_数据库_09

 1.3.4 修改文件打开数和tmp空间

[root@localhost ~]# vi /etc/security/limits.conf

dmdba soft nofile 102400
dmdba hard nofile 102400

root soft nofile 102400
root hard nofile 102400

#查看是否修改成功
[dmdba@localhost ~]# ulimit -a

SpringBoot 达梦获取所有的tables_数据库_10

SpringBoot 达梦获取所有的tables_数据库_11

#tmp目录根据具体而定
[root@localhost ~]# mount -o remount,size=2G /run/user/0

SpringBoot 达梦获取所有的tables_图形化_12

 1.3.5 图形化安装

        1)挂载镜像文件 

#挂载安装文件
[root@localhost ~]# mount -o loop /opt/dm8.iso /mnt

SpringBoot 达梦获取所有的tables_图形化_13

        2)进行安装 

[root@localhost ~]# xhost +
[root@localhost ~]# echo $DISPLAY
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]# echo $DISPLAY
[dmdba@localhost ~]# export DISPLAY=:0.0
[dmdba@localhost ~]# cd /mnt
[dmdba@localhost mnt]$ ./DMInstall.bin

SpringBoot 达梦获取所有的tables_图形化_14

         3)安装步骤

        

SpringBoot 达梦获取所有的tables_表空间_15

SpringBoot 达梦获取所有的tables_数据库_16

SpringBoot 达梦获取所有的tables_图形化_17

SpringBoot 达梦获取所有的tables_表空间_18

SpringBoot 达梦获取所有的tables_表空间_19

SpringBoot 达梦获取所有的tables_表空间_20

SpringBoot 达梦获取所有的tables_表空间_21

SpringBoot 达梦获取所有的tables_表空间_22

SpringBoot 达梦获取所有的tables_数据库_23

 1.3.6 字符界面安装

[dmdba@localhost mnt]$ ./DMInstall.bin -i

SpringBoot 达梦获取所有的tables_图形化_24

SpringBoot 达梦获取所有的tables_数据库_25

1.4 卸载流程

1.4.1 图形化卸载

[root@localhost dmdbms]# ./uninstall.sh

SpringBoot 达梦获取所有的tables_图形化_26

SpringBoot 达梦获取所有的tables_表空间_27

SpringBoot 达梦获取所有的tables_数据库_28

SpringBoot 达梦获取所有的tables_数据库_29

 1.4.2 字符界面卸载

[root@localhost dmdbms]# ./uninstall.sh -i

SpringBoot 达梦获取所有的tables_表空间_30

1.5 数据库实例创建

1.5.1 图形化方式

[dmdba@localhost tool]$ ./dbca.sh

SpringBoot 达梦获取所有的tables_图形化_31

SpringBoot 达梦获取所有的tables_图形化_32

SpringBoot 达梦获取所有的tables_表空间_33

SpringBoot 达梦获取所有的tables_图形化_34

SpringBoot 达梦获取所有的tables_图形化_35

SpringBoot 达梦获取所有的tables_数据库_36

SpringBoot 达梦获取所有的tables_表空间_37

SpringBoot 达梦获取所有的tables_表空间_38

SpringBoot 达梦获取所有的tables_图形化_39

SpringBoot 达梦获取所有的tables_表空间_40

SpringBoot 达梦获取所有的tables_数据库_41

SpringBoot 达梦获取所有的tables_表空间_42

SpringBoot 达梦获取所有的tables_表空间_43

 1.5.2 dminit初始化数据库

        1)初始化 

[dmdba@localhost ~]$ cd /dm8/dmdbms/bin
[dmdba@localhost bin]$ ./dminit path=/dm8/data db_name=DAMENG instance_name=DMSERVER length_in_char=y

SpringBoot 达梦获取所有的tables_表空间_44

         2)脚本注册服务

[root@localhost ~]$ cd /dm8/dmdbms/script/root
[root@localhost root]$ ./dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm8/data/DAMENG/dm.ini

SpringBoot 达梦获取所有的tables_表空间_45

1.5.3 图形化删除数据库服务

SpringBoot 达梦获取所有的tables_图形化_46

SpringBoot 达梦获取所有的tables_图形化_47

SpringBoot 达梦获取所有的tables_图形化_48

SpringBoot 达梦获取所有的tables_表空间_49

SpringBoot 达梦获取所有的tables_数据库_50

SpringBoot 达梦获取所有的tables_图形化_51

1.5.4 字符命令删除服务

[root@localhost bin]# cd /dm8/dmdbms/script/root
[root@localhost root]# ./dm_service_uninstaller.sh -n DmServiceDMSERVER

SpringBoot 达梦获取所有的tables_表空间_52

2 连接数据库

2.1 命令连接

2.1.1 disql连接数据库

[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5236

SpringBoot 达梦获取所有的tables_图形化_53

2.1.2 conn连接

        在数据库已经登录的情况下,进行访问其他数据库。

SpringBoot 达梦获取所有的tables_图形化_54

2.2 图形化连接

2.2.1 DM管理工具连接

SpringBoot 达梦获取所有的tables_图形化_55

2.3 配置连接串

2.3.1 DM网络配置助手

SpringBoot 达梦获取所有的tables_表空间_56

SpringBoot 达梦获取所有的tables_表空间_57

 2.3.2 修改dm_svc.conf

[dmdba@localhost ~]$ vi /etc/dm_svc.conf
[dmdba@localhost ~]$ cat /etc/dm_svc.conf

SpringBoot 达梦获取所有的tables_表空间_58

3 参数配置

3.1 参数类型

SQL> select distinct type from v$parameter;

SpringBoot 达梦获取所有的tables_数据库_59

both:既修改内存中的值,也修改配置文件中的值,重启不重启都一样生效

spfile:只修改配置文件中的值,重启数据库生效memory:只修改内存中的值,重启数据库后恢复设置前的样子

        达梦根据参数类型可分为,静态参数和动态参数两种,这两种均支持通过系统函数、SQL命令进行修改。
        静态参数:只能修改配置文件中的值,对内存中的值不进行修改,所以静态参数修改后使其生效的话,需要对数据库进行重启
        动态参数:既能修改内存中的值,也能修改配置文件中的值,所以动态参数修改后是立即生效的

   READ ONLY:手工参数,不能通过函数或 SQL 修改此类型的参数,只能手工编辑 dm.ini 来修改。

   SYS:系统级动态参数,可以通过系统函数、SQL命令达到修改参数的目的

   IN FILE:静态参数,可以通过函数或 SQL 修改此类型的参数,但不能修改内存中的值(数据库运行期间内存中的数据不能修改),只能修改参数文件中的值(重启数据库生效)。

   SESSION:动态参数(会话级),可以通过系统函数、SQL命令达到修改参数的目的,可针对某个会话进行修改,便于调试(不然要应用到整个线上系统,一旦出错,影响面就广了)

3.2 修改参数

3.2.1 直接修改dm.ini

[dmdba@localhost bin]$ vi /dm8/data/DAMENG/dm.ini

SpringBoot 达梦获取所有的tables_表空间_60

3.2.2 DM控制台工具修改

SpringBoot 达梦获取所有的tables_数据库_61

SpringBoot 达梦获取所有的tables_图形化_62

3.2.3 SQL语句修改

alter system set ‘参数名’=参数值 spfile|memory|both;

        1)修改静态参数COMPATIBLE_MODE

ALTER SYSTEM SET 'COMPATIBLE_MODE'=2 SPFILE;

SpringBoot 达梦获取所有的tables_图形化_63

        2)修改动态参数UNDO_RETENTION

ALTER SYSTEM SET 'UNDO_RETENTION'=2;

SpringBoot 达梦获取所有的tables_图形化_64

         3)修改会话级参数LIST_TABLE

ALTER SESSION SET 'LIST_TABLE'=1;

SpringBoot 达梦获取所有的tables_数据库_65

3.2.4 系统函数修改

#查看有那些系统函数
select name, id from v$ifun t where t.name like 'SP_SET_PARA%';

SpringBoot 达梦获取所有的tables_数据库_66

SpringBoot 达梦获取所有的tables_数据库_67

#SP_SET_PARA_VALUE参数
第一个参数:scope:0:memory;1:both;2:spfile;
第二个参数:参数名称
第三个参数:参数的值

SpringBoot 达梦获取所有的tables_数据库_68

4 数据缓冲区和日志缓冲区

        数据缓冲区是从磁盘中读取数据页的镜像,由INI配置中的BUFFER、FAST_POOL_PAGES、RECYCLE、KEEP等确定大小,不同类型的缓冲区主要表现为淘汰机制。

4.1 查看缓冲区信息

#查看缓冲区信息
select * from v$bufferpool;

SpringBoot 达梦获取所有的tables_图形化_69

#查看检查点
select name,value,file_value,sys_value,type,description from v$parameter t where t.name like 'CKPT%';

SpringBoot 达梦获取所有的tables_图形化_70

4.2 修改缓冲区参数

        1)修改buffer参数

alter system set 'BUFFER'=500 SPFILE;

SpringBoot 达梦获取所有的tables_数据库_71

4.3 查看日志缓冲区

select name,value,file_value,sys_value,type,description from v$parameter t where t.name like 'RLOG_BUF_SIZE%';

SpringBoot 达梦获取所有的tables_数据库_72

5 表空间管理

5.1 表空间类型

SYSTEM:系统表空间,存放的是数据字典信息,包含表定义、视图定义、用户权限等
ROLL:回滚表空间,存放undo信息。INSERT、UPDATE、DELETE都会产生undo信息
MAIN:用户默认表空间,创建用户时,没有指定表空间,则使用MAIN表空间

TEMP:临时表空间,用于存放临时表数据、索引、大量数据排序等产生的数据
HMAN:HUGE表(列存储表)的默认表空间

5.2 操作表空间

5.2.1 命令方式

#查看表空间
select * from v$tablespace;
select * from dba_tablespaces;
select * from dba_data_files;

SpringBoot 达梦获取所有的tables_表空间_73

SpringBoot 达梦获取所有的tables_表空间_74

SpringBoot 达梦获取所有的tables_表空间_75

#创建表空间
create tablespace tbs datafile '/dm8/data/DAMENG/tbs01.DBF' size 16;

注意:数据文件的大小不能低于页大小的 4096 倍,最大不能大于页大小的 2 的 31 次方
倍-1

SpringBoot 达梦获取所有的tables_数据库_76

#修改表空间文件扩展属性
alter tablespace tbs datafile '/dm8/data/DAMENG/tbs01.DBF' autoextend off;

#添加数据文件
alter tablespace tbs add datafile '/dm8/data/DAMENG/tbs02.DBF' size 32 autoextend off;

#修改数据文件
alter tablespace tbs resize datafile '/dm8/data/DAMENG/tbs01.DBF' to 128;
alter tablespace tbs datafile '/dm8/data/DAMENG/tbs01.DBF' autoextend on next 2 maxsize 10240;

#修改表空间名
alter tablespace tbs rename to dmtbs;
#删除表空间
drop tablespace dmtbs;

SpringBoot 达梦获取所有的tables_图形化_77

5.2.2 图形化操作表空间

SpringBoot 达梦获取所有的tables_数据库_78

SpringBoot 达梦获取所有的tables_图形化_79

 5.3 表空间的迁移

 迁移时注意:新的表空间路径,必须是由安装数据库的用户进行创建,或者把这个文件夹授予数据库安装用户读写权限,否则会因权限问题报数据库文件路径错误

#使表空间离线
alter tablespace tbs offline;

#修改表空间名,并迁移
alter tablespace tbs rename datafile 'TBS04.DBF' to '/dm8/data/TBS/TBS04.DBF';
alter tablespace tbs rename datafile 'TBS05.DBF' to '/dm8/data/TBS/TBS05.DBF';

#使表空间上线
alter tablespace tbs online;

SpringBoot 达梦获取所有的tables_数据库_80

 5.4 修改temp表空间

#查询temp表空间
select name,value,type from v$parameter where name like 'TEMP%';

SpringBoot 达梦获取所有的tables_表空间_81

# 设置temp表空间初始值
alter system set 'TEMP_SIZE'=64 spfile;

# 查看更改是否生效
cat /dm8/data/DAMENG/dm.ini |grep TEMP_SIZE

SpringBoot 达梦获取所有的tables_表空间_82

6 重做日志

6.1 命令操作重做日志

#查看重做日志
select * from v$rlog;
select * from v$logfile;

SpringBoot 达梦获取所有的tables_表空间_83

#创建重做日志
alter database add logfile 'DAMENG03.log' size 128;

#修改重做日志
alter database resize logfile '/dm8/data/DAMENG/DAMENG03.log' to 256;

SpringBoot 达梦获取所有的tables_数据库_84

6.2 重做日志迁移

# 将数据库状态设置为mount状态
alter database mount;
alter database rename logfile '原日志路径' to '迁移到的日志路径';
# 将数据库状态设置为open状态
alter database open;

alter database mount;
alter database rename logfile '/dm8/data/DAMENG/DAMENG01.log' to '/dm8/data/DAMENG/REDO/DAMENG01.log';
alter database rename logfile '/dm8/data/DAMENG/DAMENG02.log' to '/dm8/data/DAMENG/REDO/DAMENG02.log';
alter database rename logfile '/dm8/data/DAMENG/DAMENG03.log' to '/dm8/data/DAMENG/REDO/DAMENG03.log';
alter database open;

SpringBoot 达梦获取所有的tables_数据库_85

6.3 图形化操作重做日志

SpringBoot 达梦获取所有的tables_图形化_86

SpringBoot 达梦获取所有的tables_表空间_87

7 归档管理

7.1 开归档

7.1.1 命令行开归档

# 将数据库状态设置为mount
alter database mount;
# 打开归档
alter database archivelog;
# 归档配置,配置归档路径,归档文件大小(超过就新建一个文件),归档文件总的大小(超过限制,就会删除老的)
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';
# 将数据库状态设置为open
alter database open;

# 查询归档状态
select arch_mode from v$database;
# 查看归档文件
select * from SYS."V$ARCH_FILE";
# 查询归档配置
select * from v$dm_arch_ini;

SpringBoot 达梦获取所有的tables_图形化_88

7.1.2 修改dm.ini和dmarch.ini文件开启归档

#修改dm.ini参数ARCH_INI
[dmdba@localhost DAMENG]$ vi dm.ini
    ARCH_INI = 1

[dmdba@localhost DAMENG]$ vi dmarch.ini

[ARCHIVE_LOCAL1]
    ARCH_TYPE = LOCAL
    ARCH_DEST = /dm8/arch
    ARCH_FILE_SIZE = 64
    ARCH_SPACE_LIMIT = 10240

SpringBoot 达梦获取所有的tables_表空间_89

7.1.3  图形化开归档

SpringBoot 达梦获取所有的tables_表空间_90

SpringBoot 达梦获取所有的tables_数据库_91

7.2 关闭归档

7.2.1 命令行

alter database mount;
# 关闭归档
alter database noarchivelog;
# 删除归档文件
alter database delete archivelog 'type=local,dest=/dm8/arch';
# 将数据库状态设置为open
alter database open;

# 查询归档状态
select arch_mode from v$database;

SpringBoot 达梦获取所有的tables_表空间_92

7.2.2 图形化关归档 

SpringBoot 达梦获取所有的tables_数据库_93

SpringBoot 达梦获取所有的tables_图形化_94

SpringBoot 达梦获取所有的tables_图形化_95

SpringBoot 达梦获取所有的tables_表空间_96

8 用户角色权限

8.1 用户管理

8.1.1 用户类型

SYSDBA :系统管理员。具有数据库对象的几乎所有操作权限,但没有审计和强制访问控制

等权限。

SYSAUDITOR :系统审计管理员,具有审计权限。

SYSSSO :安全管理员,具有强制访问控制等安全权限。

SYS :内置用户,不允许登录。

SYSDBO :对象操作员。

8.1.2 创建用户 

        1)命令方式

create user 用户名 identified by 密码 default tablespace 表空间名;

create user dm identified by "Dameng123";

SpringBoot 达梦获取所有的tables_数据库_97

#查看密码策略
select * from v$parameter where name = 'PWD_POLICY';

SpringBoot 达梦获取所有的tables_图形化_98

#密码策略
系统支持的口令策略有:
0 无限制。但总长度不得超过 48 个字节
1 禁止与用户名相同
2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值
4 至少包含一个大写字母(A-Z) 
8 至少包含一个数字(0-9) 
16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口令策略为 2+4=6 即可


#修改密码策略
alter system set 'PWD_POLICY' = O both;

SpringBoot 达梦获取所有的tables_表空间_99

#用户资源限制
alter user dm limit failed_login_attemps 5 password_lock_time 10;

SpringBoot 达梦获取所有的tables_表空间_100

#锁定用户
alter user dm account lock;

#解锁用户
alter user dm account unlock;

SpringBoot 达梦获取所有的tables_图形化_101

SpringBoot 达梦获取所有的tables_表空间_102

         2)图形化方式

SpringBoot 达梦获取所有的tables_数据库_103

SpringBoot 达梦获取所有的tables_数据库_104

SpringBoot 达梦获取所有的tables_图形化_105

SpringBoot 达梦获取所有的tables_数据库_106

SpringBoot 达梦获取所有的tables_数据库_107

SpringBoot 达梦获取所有的tables_表空间_108

 8.1.3 查询指定用户所用的权限

select * from DBA_SYS_PRIVS where grantee = '用户名';
select * from dba_tab_privs where grantee = '用户名';
select * from dba_role_privs where grantee = '用户名';
select * from dba_col_privs where grantee = '用户名';
select * from DBA_SYS_PRIVS where grantee = 'DMTEST';
select * from dba_tab_privs where grantee = 'DMTEST';
select * from dba_role_privs where grantee = 'DMTEST';
select * from dba_col_privs where grantee = 'DMTEST';

SpringBoot 达梦获取所有的tables_图形化_109

8.2 角色管理

8.2.1 角色类型

DBA :几乎具有所有 DDL 和 DML 权限,但没有审计和强制访问控制权限。

RESOURCE: 具有本模式下对象的 DDL 操作权限和 DML 操作权限。

PUBLIC: 具有用户模式下表或视图的 DML 数据操作权限,及 user 开头的数据字典的权限。

VTI: 具有 V$ 开头动态视图的查询权限

SOI: 有 SYS 开头系统数据字典的权限。

#创建用户并授权
create role 角色名;
grant 权限 to 角色名;

create role r1;
grant create table to r1;

SpringBoot 达梦获取所有的tables_数据库_110

#将角色授予用户
grant 角色名 to 用户名;
grant r1 to dmtest;

SpringBoot 达梦获取所有的tables_表空间_111

8.3 权限管理

# 设置用户名为dmtest的用户,最大连接数为3
alter user dmtest limit SESSION_PER_USER 3;

设置可以赋予其他用户在非当前用户模式下创建对象权限
select * from v$parameter where name = 'ENABLE_DDL_ANY_PRIV';

SpringBoot 达梦获取所有的tables_图形化_112

# 开启参数
alter system set 'ENABLE_DDL_ANY_PRIV'=1 both;
# 进行授权
grant create any table to dmtest;

SpringBoot 达梦获取所有的tables_表空间_113

8.3.1 授予查询权限

grant select on 模式名.表名 to 用户名;

grant select on dm.test to dmtest;

SpringBoot 达梦获取所有的tables_数据库_114

8.3.2 授予添加修改权限

grant select on 模式名.表名 to 用户名;
grant update on 模式名.表名 to 用户名;
grant delete on 模式名.表名 to 用户名;

grant select on dm.test to dmtest;
grant update on dm.test to dmtest;
grant delete on dm.test to dmtest;

SpringBoot 达梦获取所有的tables_图形化_115

SpringBoot 达梦获取所有的tables_图形化_116

8.3.3 回收用户权限

revoke 角色名 from 用户名;
revoke 具体权限 from 用户名;

revoke r1 from dmtest;
revoke create table from dmtest;

SpringBoot 达梦获取所有的tables_表空间_117

8.3.4 图形化

SpringBoot 达梦获取所有的tables_数据库_118

SpringBoot 达梦获取所有的tables_图形化_119

9 模式对象管理

9.1 创建模式

# 创建模式前需要授予用户创建模式的权限

# 创建模式
create schema 模式名 authorization 用户名;
/
# 授予用户创建模式权限
grant create schema to 用户名;

create schema t1 authorization dmtest;
select * from SYSOBJECTS where "TYPE$" = 'SCH';

SpringBoot 达梦获取所有的tables_数据库_120

#查询模式和所属用户组
select a.id scheid, a.name schename, b.id userid, b.name username
from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b
where a."TYPE$" = 'SCH' and a.pid = b.id;

SpringBoot 达梦获取所有的tables_图形化_121

#查询当前模式
select sys_context('USERENV','CURRENT_SCHEMA');

SpringBoot 达梦获取所有的tables_数据库_122

#查询当前用户
select user;
select sys_context('USERENV','CURRENT_USER');

SpringBoot 达梦获取所有的tables_表空间_123

10 表管理

10.1 创建表

#创建dmtest.t_testpid表
create table dmtest.t_testpid
(pid int,
pname varchar(20) not null ,
sex bit,
logdate date DEFAULT sysdate,
logtime time DEFAULT sysdate,
logdatetime datetime DEFAULT sysdate) tablespace DMTBS;

#插入数据
insert into dmtest.t_testpid(pid,pname) values(1,'a');

SpringBoot 达梦获取所有的tables_表空间_124

# 添加字段
alter table dmtest.t_testpid add email varchar(50);
# 修改字段
alter table dmtest.t_testpid modify pname VARCHAR(50) not NULL;
# 删除字段
alter table dmtest.t_testpid drop email;

SpringBoot 达梦获取所有的tables_表空间_125

# 只复制表结构(不带约束信息)
create table t_emp03 as select * from dmhr.employee where 1=0;

# 复制表结构+表数据
create table t_emp01 as select * from dmhr.employee;
create table t_emp02 like dmhr.employee;

10.2 约束

10.2.1 约束类型

NOT NULL:非空约束
UNIQUE:唯一约束,可以为空,简写为UK_表名_字段名
PRIMARY KEY:主键约束(唯一约束+非空约束),简写为PK_表名_字段名
FOREIGN KEY:外键引用约束,引用的是另一张表(父表)的主键或唯一键。简写为FK_表名_字段名
CHECK:检验约束,用户校验数据的准确性,简写为CK_表名_字段名

主键约束和唯一约束的区别:一张表只能有一个主键,但是可以有多个唯一约束。

10.2.2 添加约束 

注意:字段如果为小写需要小写并且加上双引号,字段为大写不需要加双引号

# 添加主键约束
alter table dmtest.t_testpid add CONSTRAINT pk_testpid_pid PRIMARY key(PID);
# 添加外键约束,注意REFERENCES表里的字段必须是主键或者是添加了唯一索引的字段
alter table dmtest.t_testchild add CONSTRAINT fk_testchild_pid FOREIGN key(PID) REFERENCES dmtest.t_testpid(PID);
# 添加校验约束
alter table dmtest.t_testchild add CONSTRAINT ck_testchild_salary CHECK ("salary">=3000);

10.2.3 启用和禁用约束

#禁用约束
alter table 模式名.表名 disable constraint "约束名"

#启用约束
alter table 模式名.表名 enable constraint "约束名"

SpringBoot 达梦获取所有的tables_图形化_126

11 索引视图管理 

11.1 创建索引

create index idx_表名_字段名 ON 表名 (字段名,字段名);

create index idx_t_testpid_pid on dmtest.t_testpid(pid,pname);

SpringBoot 达梦获取所有的tables_图形化_127

SpringBoot 达梦获取所有的tables_图形化_128

11.2 视图创建

create or replace view ID as select * from dm.test where id > 3;

SpringBoot 达梦获取所有的tables_数据库_129

12 备份与还原

备份分为物理备份和逻辑备份。

物理备份是拷贝有效的数据页,逻辑备份是导出对应对象定义语句,数据插入语句。

物理备份分为完全备份和增量备份。

完全备份是指一个备份包含指定数据库或表空间的所有数据。

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一

次相比增加或者被修改的文件。

物理备份包含冷备(脱机备份,数据库关闭)和热备(联机备份,数据库启动)。

12.1 逻辑导入导出

12.1.1 逻辑导出

数据库迁移、历史数据归档、重新组织表、物理备份的辅助

逻辑导出包含四个级别:

Full=y 全库导出

Owner=XX 按用户导出

Schemas=XX 按模式导出

Tables=XX 导出指定的表

./dexp userid=sysdba/SYSDBA:5236 directory=/dm8/bakup file=full.dmp log=full.log full=y

SpringBoot 达梦获取所有的tables_表空间_130

#用户级导出
 ./dexp userid=sysdba/SYSDBA:5236 directory=/dm8/bakup file=dmtest.dmp log=dmtest.log owner=dmtest

SpringBoot 达梦获取所有的tables_数据库_131

12.1.2 逻辑导入

#全库导入
./dimp userid=sysdba/SYSDBA:5236 directory=/dm8/bakup file=full.dmp log=dim_full.log full=y

SpringBoot 达梦获取所有的tables_数据库_132

#用户导入
 ./dimp userid=sysdba/SYSDBA directory=/dm8/bakup file=dmtest.dmp log=dm_dmtest.log owner=dmtest

SpringBoot 达梦获取所有的tables_数据库_133

12.2 物理备份还原

12.2.1 联机备份

# 全库备份到默认路径下
backup database

# 全库备份到指定路径下(备份目录不带文件名)
backup database full backupset '/dm8/bakup/full_bak/full';

# 基于基础备份集的增量备份,并备份到指定目录
backup database increment to incrbak01 backupset '/dm8/backup/incr_bak/incrbak01';

SpringBoot 达梦获取所有的tables_图形化_134

12.2.3 脱机备份

#脱机备份可以使用 dmrman(命令行)
RMAN> backup database '/dm8/data/DAMENG/dm.ini' to bak_01 backupset '/dm8/bakup/full/bak_01';

SpringBoot 达梦获取所有的tables_数据库_135

12.2.4 库级还原

#恢复数据库
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bakup/full/bak_01';
 
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';

#恢复数据库魔数
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

SpringBoot 达梦获取所有的tables_表空间_136

12.3 图形化操作

12.3.1 联机备份

SpringBoot 达梦获取所有的tables_数据库_137

SpringBoot 达梦获取所有的tables_图形化_138

SpringBoot 达梦获取所有的tables_表空间_139

SpringBoot 达梦获取所有的tables_表空间_140

SpringBoot 达梦获取所有的tables_表空间_141

SpringBoot 达梦获取所有的tables_数据库_142

SpringBoot 达梦获取所有的tables_表空间_143

SpringBoot 达梦获取所有的tables_图形化_144

SpringBoot 达梦获取所有的tables_图形化_145

 12.3.2 脱机备份

#启动控制台工具
./console

SpringBoot 达梦获取所有的tables_数据库_146

SpringBoot 达梦获取所有的tables_数据库_147

SpringBoot 达梦获取所有的tables_图形化_148

SpringBoot 达梦获取所有的tables_数据库_149

SpringBoot 达梦获取所有的tables_表空间_150

SpringBoot 达梦获取所有的tables_图形化_151

SpringBoot 达梦获取所有的tables_数据库_152

SpringBoot 达梦获取所有的tables_数据库_153

SpringBoot 达梦获取所有的tables_图形化_154

12.3.3 物理还原 

SpringBoot 达梦获取所有的tables_表空间_155

SpringBoot 达梦获取所有的tables_表空间_156

SpringBoot 达梦获取所有的tables_表空间_157

SpringBoot 达梦获取所有的tables_图形化_158

SpringBoot 达梦获取所有的tables_图形化_159

SpringBoot 达梦获取所有的tables_数据库_160

SpringBoot 达梦获取所有的tables_数据库_161

SpringBoot 达梦获取所有的tables_数据库_162

SpringBoot 达梦获取所有的tables_图形化_163

13 作业管理

13.1 创建代理环境

#命令式
SP_INIT_JOB_SYS(1);

SpringBoot 达梦获取所有的tables_数据库_164

13.2 创建作业

SpringBoot 达梦获取所有的tables_表空间_165

SpringBoot 达梦获取所有的tables_图形化_166

SpringBoot 达梦获取所有的tables_图形化_167

SpringBoot 达梦获取所有的tables_图形化_168

SpringBoot 达梦获取所有的tables_数据库_169

SpringBoot 达梦获取所有的tables_数据库_170

SpringBoot 达梦获取所有的tables_图形化_171

14 ODBC配置

#解压安装包
tar -zxvf /opt/unixODBC-2.3.0.tar.gz

#进入安装目录,进行安装
cd unixODBC-2.3.0
./configure
make
make install
#修改配置文件
cd /usr/local/etc/
vim odbc.ini

[DM8] # 这个按要求改
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER # 要和下面对应
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

vim odbcinst.ini

[DM8 ODBC DRIVER] # 这块要和上边对应
Drscription = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
#验证是否配置成功
su -dmdba
isql dm8 -v