目录

1 确定软硬件环境

1.1 硬件环境需求

1.2 软件环境需求

1.3 本次部署的软硬件情况

2 软硬件准备

2.1 软件版本

2.2 软件获取

3 安装操作系统

4 软件包上传

4.1 服务器网络配置

4.2  软件上传

5 数据库安装、配置与卸载

5.1 数据库安装前准备工作

5.1.1 检查系统信息

5.1.2 创建用户

5.1.3 Linux操作系统限制

5.2 数据库安装

5.2.1 挂载达梦iso镜像

5.2.2 配置远程连接服务器图形化界面

5.2.3 安装数据库

5.3 配置数据库实例

5.3.1 图形化创建实例

5.3.2 命令行创建实例

5.4 测试数据库的连接

5.5 数据库启动与停止

5.6 数据库卸载

5.6.1 实例卸载

5.6.2 数据库卸载

6 DM8数据库工具的使用

6.1 数据库管理工具(MANAGER)

6.2 控制台工具(CONSOLE)

6.3 数据库迁移工具(DTS)

6.4 性能监控工具(MONITOR)

7 表空间管理

7.1 查询表空间信息

7.2 表空间创建

7.3 表空间状态

7.4 表空间维护

7.5 临时表空间

7.6  ROLL空间

7.7 删除表空间

8 用户管理

8.1 用户相关概念

8.2 规划用户

8.3 用户案例

8.4 其他操作

8.4.1 查询用户状态

8.4.2 用户锁定

8.4.3 赋予权限

8.4.4 收回权限

8.4.5 删除用户

8.4.6 创建角色

8.4.7 查看用户角色

8.4.8 删除角色

9 模式对象管理

9.1 表的管理

9.1.1 达梦支持的表

9.1.2 表的规划

9.1.3 表的维护

9.2 视图

9.3 索引

10 数据库备份与还原

10.1 数据库备份

10.1.1 冷备份

10.1.2 热备份

10.2 数据库还原

10.2.1 表空间还原

10.2.2 逻辑备份还原


达梦数据库是当前信创领域主流的国产安全数据库,本文档主要从数据库的前期软硬件准备,到数据库的安装卸载、数据库配置、数据库备份还原等进行详细说明,旨在为后续工作做好充分准备。

1 确定软硬件环境

1.1 硬件环境需求

安装达梦数据库所需要的硬件基本配置如下表所示。

表 1‑1硬件环境需求

名称

要求

CPU

Intel Pentium 4以上处理器

内存

512MB以上

硬盘

5GB以上

网卡

10MB以上支持TCP/IP协议

光驱

32倍速以上光驱

显卡支持

1024*768*256以上彩色显示

鼠标/键盘

普通鼠标/键盘

1.2 软件环境需求

运行达梦数据库所需要的软件环境主要如下表所示。

表 1‑2软件环境需求

名称

要求

操作系统

Windows(简体中文服务器版SP2以上)

Linux(glibc2.1以上,内核2.6,已安装KDE/GNOME桌面环境,已安装UnixODBC组件)

网络协议

TCP/IP

系统盘

至少1GB以上剩余空间

1.3 本次部署的软硬件情况

本次部署的软硬件情况如下表所示。

表 1‑3本次部署的软硬件清单

/硬件

名称

要求

硬件信息

CPU

Intel® Core™i7-6500 CPU @ 2.5GHz

内存

12GB

硬盘

120GB SSD + 1TB HDD

网卡

千兆以太网网卡

光驱

USB移动光驱

显卡支持

1366*768*256彩色显示

鼠标/键盘

光电鼠标/内置键盘

软件信息

虚拟机

Vmware 16

Xmanager

Xmanager 6

Xftp

XFTP 6

VNC Viwer

VNC Viewer 6.20

操作系统

中标麒麟高级服务器操作系统软件V7.0U6

达梦数据库安装包

DM8

上述软硬件满足本次部署要求。

2 软硬件准备

本次在个人笔记本上完成部署任务,需要预先准备好安装软件。

2.1 软件版本

本次部署达梦数据库所需要的软件版本如下表所示。

表 2‑1软件版本

序号

名称

版本

1

虚拟机

VMware-workstation-full-16.1.1-17801498.exe

2

Xmanager

XmanagerPowerSuite-6.0.0009r

3

Xftp

Xftp 6

4

VNC Viwer

VNC-Viewer-6.20.113-Windows-64bit

5

操作系统

nsV7Update6-adv-lic-build4-x86_64

6

达梦数据库安装包

dm8_20210420_x86_rh6_64_ent_8.6.1.190_pack4

2.2 软件获取

目前已将上述软件上传至百度云,具体下载方式如下:

表 2‑2软件获取

序号

名称

下载地址

1

虚拟机

https://pan.baidu.com/s/1XR4-JoK7-KG1R1-9J8zDCA

提取码:0u0p

2

Xmanager

https://pan.baidu.com/s/1g9B8GgvW0hyHWSgyVP9-rw

提取码:5q7o

3

Xftp

https://pan.baidu.com/s/1tkdlVMt4kV9rBzDv8juPNA

提取码:s21p

4

VNC Viwer

https://pan.baidu.com/s/1gEuVT-QqJ6r7Xs_X-8gaDg

提取码:ohk3

5

操作系统

https://pan.baidu.com/s/1SXoQL7Tk-XqqsCqtwrypQg

提取码:upav

6

达梦数据库安装包

https://pan.baidu.com/s/1-rTa6Ekynmi0p4y5gLq80A

提取码:eiqh

上述软件准备完毕后,在本地计算机上安装好VMware pro 16,VMware pro 16的安装步骤略。

3 安装操作系统

在安装中标麒麟操作系统时,有如下几点需要注意:

  1. 虚拟机的基础配置。虚拟机内存建议分配2GB,硬盘分配60GB。
  2. 以图形化方式启动操作系统安装,如下图所示。
  3. 选择软件安装时,需要选择如下附加选项。

4. 禁用KDUMP。

5. 操作系统分区,建议自定义分区,主要分区包括:

/boot分区,建议分配512Mib;

swap分区,建议分配4GB;

/分区,建议将硬盘剩余空间全部分配给/。设置并牢记root用户口令。

4 软件包上传

4.1 服务器网络配置

安装完成操作系统后,需要配置操作系统的IP地址、掩码和网关,配置虚拟机的网络连接模式,确保本地计算机和虚拟机的网络可以连通。

虚拟机IP配置如下图所示。

为了测试本地计算机与虚拟机的连通,且虚拟机不与外界网络连通,因此可将虚拟机网络配置为仅主机模式。

关闭服务器防火墙

测试网络连通性

4.2  软件上传

主要步骤如下:

  1. 使用Xftp连接服务器;
  2. 将dm8_20210420_x86_rh6_64_ent_8.6.1.190_pack4.iso、unixODBC-2.3.0.tar.gz、dm.key等文件上传至服务器/home目录。

5 数据库安装、配置与卸载

5.1 数据库安装前准备工作

在安装达梦数据库之前要检查或修改操作系统配置,确保达梦数据库可以正确安装和执行。

5.1.1 检查系统信息

主要检查内容如下:

  1. 获取系统位数,查询命令:getconf LONG_BIT
  2. 查询操作系统release信息,查询命令:lsb_release -a
  3. 查询系统信息,查询命令:cat /etc/issue
  4. 查询系统名称,查询命令:uname -a

如下图所示。

由上图可以看出,系统位数64位,内核版本3.10。

5.1.2 创建用户

使用root用户创建达梦安装用户dmdba、创建达梦用户组dinstall,并为用户设置密码,主要操作如下。

groupadd dinstall

useradd –g dinstall –m –d /home/dmdba –s /bin/bash dmdba

passwd dmdba

5.1.3 Linux操作系统限制

在Linux系统中,因ulimit命令的存在,会使程序使用操作系统资源进行限制,为了使达梦数据库能够正常运行,需要修改Ulimit参数。

运行ulimit –a查询当前系统限制信息。

如下图所示。

参数使用限制:

序号

参数

默认参数

建议参数

1

data seg size(kbites,-d)

ulimited

ulimited

2

file size(block, -f)

ulimited

ulimited

3

open files(-n)

1024

102400或ulimited

4

virtual memory(kbytes,-v)

ulimited

ulimited

由上表可知,需要修改open files参数,修改方法如下:

使用root用户编辑/etc/security/limits.conf文件,添加如下内容:

* soft nofile 102400

* hard nofile 102400

如下图所示。

上述配置需要重启操作系统后生效。

5.2 数据库安装

5.2.1 挂载达梦iso镜像

挂载命令:

#将数据库iso镜像挂载到/mnt目录下

mount -o loop dm8_20210420_x86_rh6_64_ent_8.6.1.190_pack4.iso /mnt

5.2.2 配置远程连接服务器图形化界面

使用root用户和dmdba用户分别执行:

export DISPLAY=10.3.0.110:0.0

标注红色部分是远程连接服务器的终端IP地址。

上述方法如果不适用,建议在服务端安装VNCServer,在客户端安装VNC-Viewer对服务端进行远程连接,主要步骤如下:

  1. 在服务端安装VNCServer,安装包如下:

[root@localhost Packages]# ll | grep vnc

-rw-rw-r-- 2 root root    40544 9月  18 2018 gtk-vnc2-0.7.0-3.el7.i686.rpm

-rw-rw-r-- 2 root root    41264 9月  18 2018 gtk-vnc2-0.7.0-3.el7.x86_64.rpm

-rw-rw-r-- 2 root root    96160 9月  18 2018 gvnc-0.7.0-3.el7.i686.rpm

-rw-rw-r-- 2 root root    95308 9月  18 2018 gvnc-0.7.0-3.el7.x86_64.rpm

-rw-rw-r-- 2 root root   234268 10月  9 2018 libvncserver-0.9.9-11.el7.i686.rpm

-rw-rw-r-- 2 root root   238300 10月  9 2018 libvncserver-0.9.9-11.el7.x86_64.rpm

-rw-rw-r-- 2 root root   245148 3月   1 2019 tigervnc-1.8.0-13.el7.x86_64.rpm

-rw-rw-r-- 2 root root    38512 3月   1 2019 tigervnc-icons-1.8.0-13.el7.noarch.rpm

-rw-rw-r-- 2 root root    29044 3月   1 2019 tigervnc-license-1.8.0-13.el7.noarch.rpm

-rw-rw-r-- 2 root root   219336 3月   1 2019 tigervnc-server-1.8.0-13.el7.x86_64.rpm

-rw-rw-r-- 2 root root  1090840 3月   1 2019 tigervnc-server-minimal-1.8.0-13.el7.x86_64.rpm

  1. 使用rpm –ivh tigervnc-server-1.8.0-13.el7.x86_64.rpm方式进行安装
  2. 启动VNC服务。

[root@dm8 ~]# vncserver

You will require a password to access your desktops.

Password:

Verify:

Would you like to enter a view-only password (y/n)? n

A view-only password is not used

xauth: file /root/.Xauthority does not exist

New ‘dm8:1 (root)’ desktop is dm8:1

Creating default startup script /root/.vnc/xstartup

Creating default config /root/.vnc/config

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/dm8:1.log

  1. 查看VNC服务。

[root@localhost Packages]# vncserver -list

TigerVNC server sessions:

X DISPLAY # PROCESS ID

:1           7210

连接测试。使用VNC-Viewer工具连接,连接方式为IP:5901,如下图所示。

5.2.3 安装数据库

主要步骤如下:

  1. 使用Xshell连接服务器,用root用户登录操作系统,切换到/mnt目录;
  2. 将DMInstall.bin文件复制到/home目录下;
  3. 对DMInstall.bin文件执行:chown –R dmdba.dinstall DMInstall.bin
  4. 使用dmdba用户执行DMInstall.bin文件开始安装。

安装截图如下:

5.3 配置数据库实例

5.3.1 图形化创建实例

数据库安装完成后自动弹出数据库初始化页面,可根据实际情况选择是否初始化,一般情况下,作为服务端需要进行初始化。

数据库安装完成后如不进行初始化,后续希望进行初始化,则需要执行/home/dmdba/dmdbms/tool/目录下的dbca.sh文件进行初始化。

5.3.2 命令行创建实例

在/home/dmdba/dmdbms/bin目录下,存在一个dminit文件,使用dminit可快速创建实例。

如:

./dminit path=/home/dmdba/dmdbms/data db_name=DM02 instance_name=DM02 PORT_NUM=5239

创建好实例后,需要手动启动数据库,启动方式是:

cd /home/dmdba/dmdbms/bin

./dmserver /home/dmdba/dmdbms/data/DM02/dm.ini

如果希望自动启动数据库实例,需要对实例进行注册,使用root用户将实例注册到操作系统,注册方法是:

#切换到/home/dmdba/dmdbms/script/root/目录

cd /home/dmdba/dmdbms/script/root

#注册实例

./dm_service_installer.sh –t dmserver -dm_ini /home/dmdba/dmdbms/data/DM02/dm.ini -p DM02

注册完成后,可使用root用户查看注册结果,启动注册实例,查看方法是:

#切换到/home/dmdba/dmdbms/tool/

./dmservice.sh

启动注册实例DM02时,如果报错,如下图所示,需要创建一条软连接。

软连接创建方法是:

ln –s ‘/usr/lib/systemd/system/DmServiceDM02.service’ ‘/etc/systemd/system/multi-user.target.wants/DmServiceDM02.service’

如下图所示。

创建完成软连接后再次使用root执行dmservice.sh就不会再报错。

5.4 测试数据库的连接

连接方式一:

使用笔记本计算机本地的达梦客户端管理工具连接服务器达梦数据库,如下图所示,

如果不能正常连接,一般情况是服务器端防火墙阻拦,关闭服务器防火墙或者放行防火墙端口即可连接。连接成功后如下图所示。

连接方式二:

使用达梦交互式工具连接数据库:

5.5 数据库启动与停止

以启动与停止DM02为例,主要操作如下:

手动启动

cd /home/dmdba/dmsbms/bin

./dmserver /home/dmdba/dmdbms/data/DM02/dm.ini

使用服务查看器的方式启动,方式如下:

cd /home//dmdba/dmsbms/tool

./dmservice.sh

手动停止

systemctl stop DmServiceDM02.service

使用操作系统命令启动

systemctl start DmServiceDM02.service

使用操作系统命令停止

systemctl stop DmServiceDM02.service

状态查看

systemctl status DmServiceDM02.service

查看数据库的进程与端口

#查看进程

ps –ef | grep dmserver

#查看端口

netstat –antl | grep 5236

netstat –antl | grep 5239

5.6 数据库卸载

5.6.1 实例卸载

可以使用tool目录下的dm_service_uninstaller.sh 脚本使用root用户来卸载已经注册成操作系统服务的DM服务,卸载方法是:

cd /home/dmdba/dmdbms/tool

./dm_service_uninstaller.sh –n DmServiceDM02.service

5.6.2 数据库卸载

使用安装目录下的uninstall.sh文件卸载数据库,卸载方式,使用root用户执行:

cd /home/dmdba/dmdbms/

./uninstall.sh

6 DM8数据库工具的使用

6.1 数据库管理工具(MANAGER)

在/home/dmdba/dmdbms/tool/目录下,执行manager可显示数据库管理工具,如下图所示。

6.2 控制台工具(CONSOLE)

1. 执行tool目录下的console可以查看实例参数,并修改

COMPATIBLE_MODE:是否兼容其他数据库模式,0:不兼容,1:兼容SQL92标准,2:兼容Oracle,3:兼容MS SQL Server, 4:兼容MySQL

2. 脱机备份还原。这里的备份还原只能脱机使用,如果数据库正在运行则不能备份或还原。

3. 许可证信息。

6.3 数据库迁移工具(DTS)

在/home/dmdba/dmdbms/tool/目录下,执行dts可显示数据库迁移工具,如下图所示。

6.4 性能监控工具(MONITOR)

在/home/dmdba/dmdbms/tool/目录下,执行monitor可显示数据库性能监控工具,如下图所示。

7 表空间管理

表空间是由一个或多个数据文件构成的,表空间是数据库容器,存放 数据库中的数据对象(表、索引等)

达梦默认的系统表空间:

System:数据字典和全局的系统数据

Roll:存入了数据库运行过程中产生的回滚记录

Temp:临时表空间

Main:存放对象数据的表空间,创建对象的时候,不指定表空间,就是存放在该表空间中。 Hmain:huge 表空间。

7.1 查询表空间信息

#查询表空间信息

SELECT TABLESPACE_NAME, STATUS FROM USER_TABLESPACES;

#查询表空间详细信息

SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME, BYTES/1024/1024

FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='ROLL';

7.2 表空间创建

表空间创建的语法是:

CREATE TABLESPACE "表空间名称" DATAFILE

'表空间路径/表空间名称_01.DBF' SIZE 表空间默认创建大小 AUTOEXTEND ON  NEXT 递增值 MAXSIZE 最大表空间值

CACHE=NORMAL;

如:

CREATE TABLESPACE "TEST" DATAFILE

'/home/dmdba/dmdbms/data/DM02/TEST_01.DBF' SIZE 32 AUTOEXTEND ON  NEXT 1 MAXSIZE 10240,

'/home/dmdba/dmdbms/data/DM02/TEST_02.DBF' SIZE 32 AUTOEXTEND ON  NEXT 1 MAXSIZE 10240

CACHE=NORMAL;

7.3 表空间状态

1、联机状态 status =0;

2、脱机状态 status=1;表空间的数据不能访问

注意:system, roll, temp 不能 offline.

修改表空间在线、离线命令:

Alter tablespace test offline;

Alter tablespace test online;

7.4 表空间维护

表空间不足时,需要对表空间进行维护,主要方法有如下几种:

  1. 创建大的表空间,将原表空间的数据导出,再导入到新创建的表空间。
  2. resize数据文件大小
  3. 增加数据文件

步骤:

查看表空间的数据文件。

SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME, BYTES/1027/1024

FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='TEST';

增加数据文件

ALTER TABLESPACE TEST ADD DATAFILE

'/home/dmdba/dmdbms/data/DM02/TEST_03.DBF' SIZE 32 AUTOEXTEND ON NEXT 1 MAXSIZE 102400;

更换存储位置

思路是,先将表空间Offline,修改存储位置后,再将表空间Online,注意:system、roll、temp表空间不能Offline。

ALTER TABLESPACE TEST OFFLINE;

查看表空间状态

SELECT TABLESPACE_NAME, STATUS FROM USER_TABLESPACES WHERE TABLESPACE_NAME='TEST';

TEST表空间Offline后状态为1,表示目前该表空间已不能访问。

修改表空间存储位置,方法是:

ALTER TABLESPACE TEST RENAME DATAFILE '/home/dmdba/dmdbms/data/DM02/TEST_03.DBF' TO

'/home/dmdba/dmdbms/data/DAMENG/TEST03.DBF';

修改完成后查看表空间位置:

SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME, BYTES/1024/1024

FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='TEST';

表空间Online。

ALTER TABLESPACE TEST ONLINE;

再次确认表空间状态

SELECT TABLESPACE_NAME, STATUS FROM USER_TABLESPACES WHERE TABLESPACE_NAME='TEST';

7.5 临时表空间

查看临时表空间配置:

SELECT PARA_NAME, PARA_VALUE FROM V$DM_INI WHERE PARA_NAME LIKE '%TEMP%';

扩展临时表空间:

ALTER TABLESPACE TEMP RESIZE DATAFILE '/home/dmdba/dmdbms/data/DM02/TEMP.DBF' TO 256;

修改后查询TEMP表空间信息:

7.6  ROLL空间

ROLL表空间称为回滚表空间,ROLL表空间不足时,处理方式同TEMP表空间处理。

#查看ROLL表空间信息

SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME, BYTES/1024/1024

FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='ROLL';

#更新ROLL表空间大小

ALTER TABLESPACE TEMP RESIZE DATAFILE '/home/dmdba/dmdbms/data/DM02/ROLL.DBF' TO 256;

7.7 删除表空间

DROP TABLESPACE TEST;

8 用户管理

8.1 用户相关概念

在达梦数据库中用户管理主要涉及到三部分,用户、权限和角色。

权限:执行特定类型 sql 或是访问其他模式对象的权利 系统权限:数据库对象的创建,删除,修改等等。 对象权限:对数据对象的数据的操作权限。

数据库预定义用户(系统用户)

Sysdba:系统管理员

Sys:不能用于用户登录,是系统内置用户

Syssso:安全用户

Sysauditor:审计用户

Sysdbo:系统操作员(安全版才有)

企业版三权分立

Sysdba:系统管理员

Syssso:安全用户

Sysauditor:审计用户

安全版四权分立

Sysdba:系统管理员

Syssso:安全用户

Sysauditor:审计用户

Sysdbo:系统操作员

角色:一组权限的集合

达梦8预定义角色

DBA

PUBLIC

RESOURCE

SOI

VTI

8.2 规划用户

名字:字母开头,a_z ,0-9,$#_

位置:对应的表空间

密码:口令策略

0:无策略

1:禁止与用户名相同 47

2:口令长度不小于 9

4:至少包含一个大写字母

8:至少包含一个数字

16:至少包含一个标点符号(英文状态下输入,除空格和“”)

口令可以单独使用,也可组合使用,比如:要求口令策略禁止用户相 同,并且口令长度不小于 9,至少包含一个大写字母 则设置口令策略 为:1+2+4=7)

PWD_POLICY=7

SP_SET_PARA_VALUE()、

SP_SET_PARA_DOUBLE_VALUE()和

SP_SET_PARA_STRING_VALUE()对参数值进行修改。

参数名

缺省值

属性

说明

PWD_POLICY

2

动态,系统级

设置系统默认口令策略。

0:无策略;

1:禁止与用户名相同;

2:口令长度不小于9;

4:至少包含一个大写字母;

8:至少包含一个数字;

16:至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号”)若为其他数字,则表示配置值的和,如3=1+2,表示同时启用第1项和第2项策略。当COMPATIABLE_MODE=1时,PWD_POLICY的实际值为0。

FAILD_LOGIN_ATTEMPS:密码尝试登录次数

PASSWORD_LOCK_TIME:密码失败后锁定时间

PASSWORD_LIFE_TIME:密码过期时间。

#创建用户

CREATE USER TEST IDENTIFIED BY "xinhe108108";

#修改用户TEST密码尝试登录次数为2次,连续2次出错后锁定5分钟,密码过期时间未60天。

ALTER USER "TEST" LIMIT FAILED_LOGIN_ATTEMPS 2, PASSWORD_LIFE_TIME 60, PASSWORD_LOCK_TIME 5;

8.3 用户案例

案例1规划用户TEST3,用户的默认表空间为TEST3,密码尝试登录3次,失败锁定1分钟,密码有效期60天。

#创建表空间

CREATE TABLESPACE TEST3 DATAFILE '/home/dmdba/dmdbms/data/DAMENG/test3_01.dbf' SIZE 32;

#创建用户TEST3,密码尝试次数3次,

# PASSWORD_GRACE_TIME:宽限期。如果密码过期了并且PASSWORD_GRACE_TIME设置为60天,那么在60天在之内如果不变更密码就会被锁定

CREATE USER TEST3 IDENTIFIED BY "xinhe108108" LIMIT FAILED_LOGIN_ATTEMPS 3, PASSWORD_LOCK_TIME 1, PASSWORD_GRACE_TIME 60

DEFAULT TABLESPACE "TEST3";

#赋予TEST3用户PUBLIC、VTI角色

GRANT "PUBLIC", "VTI" TO TEST3;

#赋予TEST3用户创建表权限

GRANT CREATE TABLE TO TEST3;

案例2:规划一个用户test5 用户每60天变更一次密码,密码的宽限期为3天,密码尝试连接2次失败,账号锁定5分钟,用户能查询dmhr.employee表。

#创建用户

# PASSWORD_GRACE_TIME为宽限期的意思,意思是若设定10天修改一次密码,如果10天后还没修改,密码将会到期,但用户不会锁定,那么再经过3天,如果还没修改,用户将会锁定。

CREATE USER TEST5 IDENTIFIED BY "xinhe108108"

LIMIT PASSWORD_LIFE_TIME 60, PASSWORD_GRACE_TIME 3, FAILED_LOGIN_ATTEMPS 3, PASSWORD_LOCK_TIME 5

DEFAULT TABLESPACE "TEST3";

#赋予角色

GRANT "PUBLIC", "VTI" TO TEST5;

#赋予权限。该查询需要数据库在安装时已经安装了示例数据库DMHR

GRANT SELECT ON "DMHR"."EMPLOYEE" TO TEST5;

8.4 其他操作

8.4.1 查询用户状态

#查询用户状态

SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE FROM DBA_USERS;

8.4.2 用户锁定

#锁定用户

ALTER USER TEST5 ACCOUNT LOCK;

#解锁用户

ALTER USER TEST5 ACCOUNT UNLOCK;

8.4.3 赋予权限

#给TEST5用户创建视图的权限

GRANT CREATE VIEW TO TEST5;

#给TEST5用户在DMHR.CITY上查询的权限

GRANT SELECT ON DMHR.CITY TO TEST5;

#给TEST5用户在DNHR.EMPLOYEE上查询HARE_DATE、EMPLOYEE_NAME的权限

GRANT SELECT ("HIRE_DATE","EMPLOYEE_NAME") ON DMHR.EMPLOYEE TO TEST5;

8.4.4 收回权限

#收回TEST5用户在DNHR.EMPLOYEE上查询的权限,CASCADE参数是强制收回的意思

REVOKE SELECT ON "DMHR"."EMPLOYEE" FROM "TEST5" CASCADE;

8.4.5 删除用户

DROP USER TEST5;

#强制删除用户,该操作需要慎重,最好先备份该用户下的数据,再执行删除操作

DROP USER TEST5 CASCADE;

8.4.6 创建角色

#创建角色LR

CREATE ROLE "LR";

#将public、vti角色给LR

GRANT "PUBLIC","VTI" TO LR;

GRANT SELECT,INSERT ON "DMHR".CITY TO LR;

GRANT SELECT ON DMHR.EMPLOYEE TO LR;

#创建用户LR01

CREATE USER LR01 IDENTIFIED BY "xinhe108108";

#将LR角色赋予LR01用户

GRANT LR TO LR01;

8.4.7 查看用户角色

SELECT * FROM SYS.DBA_ROLE_PRIVS;

SELECT * FROM SYS.DBA_ROLE_PRIVS WHERE GRANTEE='LR01';

查看角色的相关权限:

SELECT GRANTEE, PRIVILEGE FROM SYS.DBA_SYS_PRIVS WHERE DBA_SYS_PRIVS.GRANTEE='PUBLIC'

8.4.8 删除角色

DROP ROLE LR;

9 模式对象管理

模式定义:模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集。

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

模式与用户之间的关系: 当系统建立一个用户时,会自动生成一个对应同名的模式,用户还可以建立其他模式(一个用户可以对多个模式)

9.1 表的管理

9.1.1 达梦支持的表

默认的表是索引组织表,支持堆表,临时表,分区表,外部表等。

9.1.2 表的规划

1、命名:字母开头,a-z,0-9,$#_

2、数据类型:int char varchar date clob blob number 等。

3、存储位置:自已规划的表空间,如果没有指定表空间,则会存到main 表空间。

4、约束(5 大约束)非空约束,唯一约束,主键,外键,检查约束。

5、注释:comment。

遵循 3 范式。

案例:规划一张学员信息表

表名:STU

学号:ID char(10)

姓名:sname varchar(20) not null

性别: sex char(1)

年龄:age int

电话:tel varchar(15) not null

家庭住址:address varchar(50)

表空间:STU

约束:主键列----学号,非空----姓名和电话

备注:studentinfo

create table "TEST"."STU"

(

"ID" CHAR(10) not null ,

"SNAME" VARCHAR(20) not null ,

"SEX" CHAR(1),

"AGE" INT,

"TEL" VARCHAR(15) not null ,

"ADDRESS" VARCHAR(50),

primary key("ID")

)

storage(initial 1, next 1, minextents 1, fillfactor 0, on "STU");

comment on table "TEST"."STU" is 'STUDENTINFO';

9.1.3 表的维护

增加列:

Alter table test.stu add column(CJ NUMBER(3,1));

删除列:

Alter table test.stu drop column CJ;

创建约束

CREATE TABLESPACE "TEST" DATAFILE

'/home/dmdba/dmdbms/data/DAMENG/TEST.DBF' SIZE 32 AUTOEXTEND ON  NEXT 1 MAXSIZE 10240

CACHE=NORMAL;

CREATE USER TEST IDENTIFIED BY "xinhe108108" DEFAULT TABLESPACE TEST;

GRANT CREATE TABLE, CREATE VIEW, ALTER USER, INSERT TABLE, DROP USER  TO TEST;

  • 非空约束

create table test.t3(id int);

alter table test.t3 modify id int not null;

  • 唯一约束

create table test.t4(id int,name varchar(20) unique);

insert into test.t4 values(1,'sssss');

insert into test.t4 values(2,null);

insert into test.t4 values(3,'');

insert into test.t4 values(4,null);

insert into test.t4 values(5,'');

insert into test.t4 values(6,null);

insert into test.t4 values(7,null);

insert into test.t4 values(8,null);

insert into test.t4 values(9,null);

insert into test.t4 values(10,null);

commit;

唯一约束,遇到 null 会忽略,可以录入多个 null 值 ,但‘’,只能录入一下。

  • 主键约束 一张表只能有一个主键约束

create table test.t5(id int primary key,name varchar(20));

create table test.t6(id int,name varchar(20));

alter table test.t6 add constraint t6_pri primary key(id);

  • 外键约束 一个表的外键,一定是另一张表的主键,用来保证数据的一致性。

create table test.t7(sid int primary key ,pid int);

create table test.t8(id int primary key, sid int foreign key references test.t7(sid));

  • 检查约束

create table test.t10(id int check(id>=5));

insert into test.t10 values(3);

insert into test.t10 values(6);

Commit;

  • 对列加备注

Comment on column test.t8.sid is ‘编号’

  • 查看约束和注释

select constraint_name,constraint_type, table_name from dba_constraints where table_name='T8';

9.2 视图

从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。

从数据库系统内部来看,一个视图是由 SELECT 语句组成的查询 定义的虚拟表。

视图的分类:简单视图、复杂视图、物化视图。

1、简单视图:对单表做查询

语法:

Create or replace view() as select () from () where();

如:create view test.emp as select employee_id,employee_name,phone_num from dmhr.employee;

2、复杂视图,关联两张表以上的或是包含集函数的sql.

create view test.v5 as

select d.department_name, a.av1 from

(select department_id,avg(salary) as av1 from dmhr.employee e

group by department_id having avg(salary)>10000) A

JOIN dmhr.department d on a. department_id=d.department_id;

3、物化视图 简单视图和复杂视图是不占存储空间的,是虚拟表。物化视图是占存储空间的。 相关数据字典

DBA_VIEWS;

删除视图 Drop view test.v5;

9.3 索引

索引是:一种数据库对象,通过指针加速查询速度,通过快速定位数 据的方法,减少磁盘 I/O,索引与表相互独立,服务器自动使用和维护索引。索引占空间。

达梦支持的索引:二级索引,位图过索引,唯一索引,复合索引,函数索引,分区索引等。

什么情况下适合建索引

1、经常查询的列

2、连接条件列

3、谓词经常出现的列(where)

4、查询是返回值的一小部分数据。

不适合建索引的情况。

1、列上有大量的 null.

2、列上的数据有限的(性别)

创建索引:

1、规划索引表空间,表的数据是无序的,索引的数据是有序的。

创建索引表空间:

create tablespace INDEX1 datafile '/dm8/data/DAMENG/index_01.dbf' size 32;

创建索引:

create table test.emp as select * from dmhr.employee;

Create index ind_emp on test.emp(employee_id) tablespace index1;

2、 相关字典

DBA_INDEXES

维护索引:

ALTER INDEX TEST.IND_EMP REBUILD;

ALTER INDEX TEST.IND_EMP REBUILD ONLINE;

注意:创建索引,删除索引,重建索引,收集统计信息的,不要在业务高 峰去做,在业务低谷的时候去操作。

删除索引:

DROP INDEX TEST.IND_EMP;

10 数据库备份与还原

数据库备份就是制作数据库的“副本” 防止数据库丢失数据 在数据丢失后重建数据库。

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

增量备份:是指在一次全备份或上一次增量备份后,每次的备份只需备份与前一次相比增加或者修改的部分。

备份的方式:物理备份和逻辑备份

备份的介质:磁盘,磁带,光盘

集群:数据守护,dsc(rac) 也支持第三方的备份软件:爱数,鼎甲

10.1 数据库备份

10.1.1 冷备份

冷备份:dmap 服务是打开的,数据库实例是关闭的。

冷备份的方式有:

1)使用控制台工具($DM_HOME/dmdbms/tool/console)进行冷备份;

2)使用dmrman工具进行冷备份。

在$DM_HOME/dmdbms/tool目录下有一个dmrman工具,在数据库实例停止后可以对数据库进行备份,如下图所示。

10.1.2 热备份

热备 DMAP 服务是打开的,数据库实例是打开的,数据库是归档模式。

打开归档方式:

SQL> alter database mount;

SQL> alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=0';

SQL> alter database archivelog;

SQL> alter database open;

SQL> select name, status$,arch_mode from v$database;

行号    NAME   STATUS$   ARCH_MODE

---------- ------ ----------- ---------------- ------ ----------- ---------

1      DAMENG    4          Y

开启归档后就可以对数据库做热备。

也可以使用“管理服务器”的方式打开归档,方法是,在新建的连接上点击右键,选择“管理服务器”,但必须使用DM8客户端才可以配置。

使用管理工具做热备份(全备份、增量备份)

注:如在备份时,报“归档日志不连续”错误,需要重启数据库,再进行备份。

使用DISQL进行热备(全备份、增量备份)

备份语句:

backup database full backupset ‘备份路径’;

backup database increment backupset ‘备份路径’;

如下图所示:

10.2 数据库还原

10.2.1 表空间还原

表空间只能脱机还原,使用 dmrman

1、模拟表空间损坏

[dmdba@localhost DAMENG]$ mv TEST_01.DBF TEST_01.DBF.BAK

重启实例,实例处于 mount 状态。关闭实例服务。

校验备份集

还原表空间:

restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini'

tablespace test from backupset '/home/dmdba/dmdbms/bakcup';

恢复表空间:

recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' tablespace test;

备份管理相关过程与函数:

序号

函数名

含义

1

SF_BAKSET_BACKUP_DIR_ADD

添加备份目录

2

SF_BAKSET_BACKUP_DIR_REMOVE

指定删除内存中的备份目录

3

SF_BAKSET_BACKUP_DIR_REMOVE_ALL

删除内存中全部的备份目录

4

SF_BAKSET_CHECK

对备份集进行校验

5

SF_BAKSET_REMOVE

删除指定设备类型和指定备份集目录的备份集

6

SF_BAKSET_REMOVE_BATCH

批量删除满足指定条件的所有备份集

7

SP_DB_BAKSET_REMOVE_BATCH

批量删除指定时间之前的数据库备份集

8

SP_TS_BAKSET_REMOVE_BATCH

批量删除指定表空间及指定时间之前的表空间备份集

9

SP_TAB_BAKSET_REMOVE_BATCH

批量删除指定对象及指定时间之前的表备份集

10

SP_ARCH_BAKSET_REMOVE_BATCH

批量删除指定条件的归档的备份集

11

V$BAKUPSET

显示备份集基本信息

12

V$BACKUPSE_DBINFO

显示备份集的数据库相关信息

10.2.2 逻辑备份还原

导入导出(dexp\dimp)

分四级别:分别独立,互斥,不能同时存在

  • 数据库级别
  • 用户
  • 模式
  • 表级

1、逻辑导出

./dexp sysdba/xinhe108108@localhost:5236 file=20210712.dmp log=20210712.log directory=/home/dmdba/dmdbms/data/ full=y;

2、逻辑导入

./dimp sysdba/xinhe108108@localhost:5236 file=/home/dmdba/dmdmbs/data/20210712.dmp log=/home/dmdba/dmdbms/data/20210712.log

FULL

导出整个数据库

可选,四者中选其一,默认为SCHEMAS

OWNER

用户名列表,导出一个或多个用户所拥有的所有对象

SCHEMAS

模式列表,导出一个或多个模式下的所有对象

TEBLES

表名列表,导出一个或多个指定的表或分区

达梦数据库安装配置记录相关推荐

  1. 达梦数据库-安装配置规范(上)

    1.1 DM支持平台 达梦数据库支持国内外主流的的硬件和操作系统平台.通常情况下,用户的安装介质是一个iso镜像文件. CPU芯片支持列表: 操作系统支持列表: 1.2 资源配置 物理机最小配置推荐( ...

  2. 达梦数据库安装及配置图文教程 附DM8安装包

    达梦数据库安装及配置图文教程 前言 一.达梦数据库安装包的下载 二.达梦数据库安装步骤 安装前准备 安装DM数据库软件 创建数据库 三.达梦数据库的启动/停止 前言 本章讲解达梦数据库服务器的安装及配 ...

  3. 达梦数据库安装方法以及注意事项

    1: 选择合适的数据库版本 1.1 :在安装前首先手上要有一本达梦数据库的安装手册,经验告诉我,最好按照手册的顺序安装. 达梦数据库安装手册可以在达梦官网下载,如下链接,安装包解压也有. http:/ ...

  4. 达梦数据库安装学习总结--DCA上篇

    达梦数据库DCA概述 达梦数据库是一款完全自主原创的国产数据库,国产的操作系统及国产的数据库在国内使用不断扩大,升级及发展也日新月异,其中达梦数据库在政府及事业单位就得到广泛应用. DCA课程学习使用 ...

  5. 基于docker的达梦数据库安装

    1.拉取centos7镜像 命令:docker pull centos:centos7 2.  拉取完成后,命令查看镜像  docker images 3.运行centos7镜像 达梦数据库默认端口是 ...

  6. 达梦数据库基础学习记录及DCA考试注意点

    达梦数据库介绍 面对国外数据库厂商垄断中国市场的局面, 达梦怀揣着自主研发中国数据库的梦想, 致力开发具有自主版权的数据库软件.从第一代数据库产品DM1到第七代DM7, 在长达十余年的市场推广中, 达 ...

  7. 达梦数据库安装(CentOS7版)

    1.下载(官网) 根据自己系统版本对应下载,本人使用的是rh7-64位的,因为我使用的系统为CentOS7. 现阶段达梦数据库的实际安装文件是放在云盘里的,官网下载的是文档,里面有具体的网盘地址及提取 ...

  8. 猿创征文|国产数据库之达梦数据库安装使用

    国产数据库之达梦数据库安装使用 引言 安装包下载 安装数据库 配置数据库 连接数据库 引言 现在数据安全越来越受到国家的重视,很多国有企业,学校等都要求使用国产数据库,虽然现在国产数据库的发展还是初期 ...

  9. 达梦数据库安装ODBC驱动及无法正常启动解决办法

    项目场景: 达梦数据库安装ODBC驱动 安装环境:DM8+centos7.5 正常ODBC安装流程 [root@localhost ~]# rpm -qa |grep gcc gcc-4.8.2- 1 ...

最新文章

  1. 某程序员求助:30万年包留在家乡华为,50万年包去新加坡shopee,选哪个?
  2. ASP.NET中随机数生成及应用
  3. android 程序退出广播,android 利用广播实现程序的强制退出
  4. tomcat 拦截指定url_一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  5. 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
  6. linux登录后出现_bash-4.1#终端提示符异常
  7. 软件默认安装路径注册表更改问题
  8. 18年7月最新可用QQ坦白说解密方法
  9. 买到Windows新电脑必做的6个优化设置(强烈建议)
  10. bzoj4391 [Usaco2015 dec]High Card Low Card题解
  11. 电脑可以连接手机热点,却无法连路由器无线wifi
  12. 例题5-3 安迪的第一个字典(Andy's First Dictionary,Uva 10815)
  13. 面向对象和面向过程的区别通俗理解
  14. 2005-04-28 把爸爸锁在阳台上
  15. Android Studio 提示android.support.v4不存在的解决方法
  16. SCU2511(单调栈)
  17. StartDT Hackathon | 技术小白独立部署DataSimba,需要多久?
  18. CF 246C Beauty Pageant
  19. 第二次尝试制作html5游戏
  20. Google以9000万美元了结点击欺诈案

热门文章

  1. 手写操作系统(1)——HelloOS
  2. 40岁财务自由?你明明距离40岁失业更近
  3. Mysql8.2自动备份脚本及3种备份出错解决方案
  4. python分析每月销售数据_时间序列ARIMA模型详解:python实现店铺一周销售量预测...
  5. xx通用管理系统(超级好看的界面)javaswing+mybatis
  6. Qcom Leds 配置
  7. jpa,分析duid参数,当前用户的最大线程数,线上问题排查,stack命令查看占用CPU高的线程堆栈信息
  8. 清华大学 计算机 矣晓沅,清华校长为他拨穗并俯身合影,玉溪“轮椅学子”博士毕业啦!...
  9. 图像处理:JPG、PNG及BMP的区别?
  10. dell服务器的raid磁盘管理器型号,Dell服务器PERC H310/H710/H810 RAID磁盘成员的在线管理和维护...