当前位置:   article > 正文

达梦基础知识总结

达梦

1.安装dm8

1.1 达梦8版本介绍

1.1.1 开发版

开发版与企业版功能相同,平时工作使用开发版即可,授权期限为一年

1.1.2 企业版

支持集群特性,需要购买授权码

1.1.3 标准版

不支持集群特性

1.1.4 安全版

增加了访问控制等安全特性,用于SM机上

1.2 安装前确认

1.2.1 查看CPU信息

使用以下两个命令查看CPU相关信息,并选择对应的达梦版本进行下载安装

lscpu
或者
cat /proc/cpuinfo
  • 1
  • 2
  • 3

1.2.2 查看操作系统信息

注意:内核版本需要在2.6以上,否则在安装过程中会报错

root@linux:~# cat /proc/version
Linux version 5.15.0-76-generic (buildd@bos02-arm64-019) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #83-Ubuntu SMP Thu Jun 15 19:21:56 UTC 2023
root@linux:~# uname -a
Linux linux 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:21:56 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
  • 1
  • 2
  • 3
  • 4

1.2.3 查看glibc版本

glibc需要在2.3以上,否则在安装过程中会报错

root@linux:~# ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.2.4 查看gcc版本

安装odbc的时候,需要gcc包依赖,没有安装的话需要进行安装

root@linux:~# gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • 1
  • 2
  • 3
  • 4
  • 5

1.2.5 查看磁盘容量

至少需要20G,推荐给25G以上

root@linux:~# df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              197M  1.6M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   30G   16G   13G  55% /
tmpfs                              984M     0  984M   0% /dev/shm
tmpfs                              5.0M  4.0K  5.0M   1% /run/lock
/dev/sda2                          2.0G  261M  1.6G  15% /boot
/dev/sda1                          1.1G  6.4M  1.1G   1% /boot/efi
iCloud                             461G  207G  255G  45% /media/psf/iCloud
tmpfs                              197M  132K  197M   1% /run/user/1000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

如果tmp容量小于1G,使用以下命令扩容

# 使用root用户执行
mount -o remount,size=2G /tmp
  • 1
  • 2

1.2.6 查看内存

推荐3G以上,Swap正常分区即可,银河麒麟比较吃内存,建议多给点

root@linux:~# free -m
               total        used        free      shared  buff/cache   available
Mem:            1967        1012         296         111         658         759
Swap:           2047          10        2037
  • 1
  • 2
  • 3
  • 4

1.3 安装规划

1.3.1 创建用户组

# 创建用户组
groupadd dinstall
  • 1
  • 2

1.3.2 创建用户

# 创建用户
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 创建完成后使用以下命令查看是否成功
id dmdba
# 设置密码
passwd dmdba
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.3.3 创建安装目录

# 创建达梦安装路径
mkdir /dm8
# 更改文件夹的所属用户组、所属用户
chown dmdba:dinstall /dm8
# 查看是否更改成功
ll -ld /dm8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.3.4 设置最大可打开文件数

查看最大可打开文件数,如果是CentOS的话,默认是比较小的,可能会导致安装过程中报错,所以这边我们提前查看并设置

# 查看最大可打开文件数
ulimit -a
# 临时设置(当前会话生效)
ulimit -n 20480

# 永久设置,需要用root用户操作
vim /etc/security/limits.conf

dmdba soft nofile 102400
dmdba hard nofile 102400

root soft nofile 102400
root hard nofile 102400
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

1.4 挂载镜像文件

将下载的iso镜像文件上传到服务器上后,进行挂载操作

# 在mnt下创建dm目录
mkdir /mnt/dm
# 挂载镜像 mount /镜像地址 /挂载的目标路径
mount /opt/dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso /mnt/dm
  • 1
  • 2
  • 3
  • 4

挂载成功后

# 切换到dmdba用户下
su - dmdba
# 查看挂载目录
cd /mnt/dm
ll
  • 1
  • 2
  • 3
  • 4
  • 5

1.5 开始安装

1.5.1 图形化界面安装

1.5.1.1 设置DISPLAY值
# 登陆到服务器上后,打开命令行(root用户)
xhost +
# 查看DISPLAY值
echo $DISPLAY
# 切换到dmdba用户
su - dmdba
# 查看DISPLAY值
echo $DISPLAY
# 设置DISPLAY值(具体以环境查询出来的值为准)
export DISPLAY=:0.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
1.5.1.2 执行安装程序
# 进入到挂载目录
cd /mnt/dm
# 查看目录下的文件
ll
# 执行安装程序
./DMInstall.bin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
image-20230728164327756

一直点下一步直到

image-20230728164631115 image-20230728164659592

安装完成,提示运行脚本:

image-20230728164759582

可能会碰到以下问题,提示说tmp文件过小,就是因为1.2.5步骤没有执行,需要重新使用root用户执行,然后再执行1.5.1.2,然后再执行安装程序即可

1.5.2 命令行形式安装

./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入 Key 文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1178M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
目录(/dm8)下不为空,请选择其他目录。
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
可用空间: 14G
是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm8
所需空间: 1178M
可用空间: 14G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2023-07-14 19:33:00
[INFO] 安装达梦数据库...
2023-07-14 19:33:00
[INFO] 安装 基础 模块...
2023-07-14 19:33:03
[INFO] 安装 服务器 模块...
2023-07-14 19:33:03
16 / 127
17 / 127
[INFO] 安装 客户端 模块...
2023-07-14 19:33:05
[INFO] 安装 驱动 模块...
2023-07-14 19:33:05
[INFO] 安装 手册 模块...
2023-07-14 19:33:05
[INFO] 安装 服务 模块...
2023-07-14 19:33:06
[INFO] 移动日志文件。
2023-07-14 19:33:07
[INFO] 安装达梦数据库完成。
请以 root 系统用户执行命令:
/dm8/script/root/root_installer.sh
安装结束
[root@linux ~]# /dm8/script/root/root_installer.sh
移动 /dm8/bin/dm_svc.conf 到/etc 目录
修改服务器权限
创建 DmAPService 服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service →
/usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动 DmAPService 服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86

1.6 创建数据库及数据库实例管理

1.6.1 图像化方式

# 进入到dm工具包目录
cd /dm8/tool
# 打开数据库配置助手
./dbca.sh
  • 1
  • 2
  • 3
  • 4
image-20230728165047465 image-20230728165108160 image-20230728165129140

簇大小、页大小、字符集、大小写敏感、VARCHAR 类型以字符为单位等一旦指定,数据库

创建完成将无法更改。

页是达梦数据库的最小存储单元,簇是由连续的页组成。

簇是达梦数据库的最小分配单元。

达梦中 varchar 类型长度默认不能大于页大小的一半。

image-20230728165156673 image-20230728165214223 image-20230728165232956

界面提示使用 root 用户执行脚本:

image-20230728165257520

1.7.1 命令行方式

# 进入到目录
cd /dm8/bin
# 初始化数据库
./dminit path=/dm8/data db_name=DMTEST instance_name=DMTEST port_num=5237 page_size=16 SYSDBA_PWD=Dameng123
  • 1
  • 2
  • 3
  • 4

1.7 注册数据库服务,开机自启

1.7.1 命令行方式

# 进入到目录,root用户执行
cd /dm8/script/

# 执行注册数据库服务
./dm_service_installer.sh -t dmserver -p 服务名后缀(前缀是定死的,后缀一般为数据库实例名称) -dm_ini /dm8/data/DMTEST/dm.ini

./dm_service_installer.sh -t dmserver -p DMTEST -dm_ini /dm8/data/DMTEST/dm.ini

# 取消注册服务
./dm_service_uninstaller.sh -n 服务名称

./dm_service_uninstaller.sh -n DmServiceDMTEST
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

1.7.2 图形化方式

# 查看DISPLAY值,如果没有则需要按照1.5.1.1 设置DISPLAY值
echo $DISPLAY

# 打开配置助手(这边使用了root用户,如果用dmdba的话,到最后一部会提示有几个命令要用root身份执行)
cd /dm8/tool/
./dbca.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
image-20230728165534047 image-20230728165553028

点击“完成”,界面提醒使用 root 执行脚本:

image-20230728165620202

1.8 卸载达梦数据库

1.8.1 图形化卸载

# 进入到达梦根目录(root用户执行,如果是dmdba用户执行,到最后会弹出以root用户执行命令的窗口)
./uninstall.sh
  • 1
  • 2

1.7.2 命令行方式卸载

# 进入到达梦根目录
./uninstall.sh -i
  • 1
  • 2

2.数据库连接

2.1 使用命令行连接

2.1.1 使用disql连接

# 进入到bin目录
cd /dm8/bin
# 使用disql连接,本地连接可省略ip
./disql SYSDBA/SYSDBA:5236
# 连接远程服务器需要加上ip
./disql SYSDBA/SYSDBA@192.168.31.124:5236
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.2.1 使用conn连接

如果已经登陆到数据库中,可以直接使用conn命令进行连接到其他数据库

# 连接本机,ip可省略
conn SYSDBA/Dameng123@192.168.31.124:5237

# 加上ip地址
conn SYSDBA/Dameng123@192.168.31.124:5237
  • 1
  • 2
  • 3
  • 4
  • 5

2.2 使用图形化工具连接

2.2.1 图形化界面开启语法提示

image-20230728165849043

3.参数配置

3.1 参数类型

对应到Oracle的Scope
both:既修改内存中的值,也修改配置文件中的值,重启不重启都一样生效
spfile:只修改配置文件中的值,重启数据库生效
memory:只修改内存中的值,重启数据库后恢复设置前的样子

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

3.1.1 READ ONLY

只读参数,不能通过系统函数、SQL命令达到修改参数的目的,只能从dm.ini配置文件中进行修改

3.1.2 SYS

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

3.1.3 IN FILE

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

3.1.4 SESSION

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

3.2 参数修改方式

3.2.1 使用dm.ini修改

不修改内存中的值,修改的是配置文件中的值,需要重启后生效

cd /dm8/tool
./console
  • 1
  • 2
在这里插入图片描述 在这里插入图片描述

修改完成后,需要重启

3.2.3 SQL语句修改

# 后面跟的是参数范围
alter system set '参数名'='参数值' both | spfile | memory;
  • 1
  • 2
3.2.3.1 例子

修改兼容参数

# 查询兼容参数类型
select name,value,sys_value,file_value,type,description from v$parameter where name = 'COMPATIBLE_MODE';
# 修改兼容参数类型
alter system set 'COMPATIBLE_MODE'=2 spfile;
  • 1
  • 2
  • 3
  • 4

3.2.4 系统函数修改

查看可以使用的系统函数

select name,id from v$ifun t where name like '%SP_SET%_PARA%';
  • 1

查看系统函数的参数类型

select * from v$ifun_arg t where id=584;
  • 1

4.数据缓冲区

在这里插入图片描述

考试的时候可能会让你修改数据缓冲区大小,没有特殊指明的话就是修改Normal缓冲区的大小,参数对应的是BUFFER

Normal对应参数BUFFER、Fast对应参数为FAST_POOL_PAGES、Recycle对应参数为RECYCLE、Keep对应参数为KEEP

alter system set 'BUFFER'=2000 spfile;
  • 1

5.表空间管理

5.1 表空间类型

  • SYSTEM:系统表空间,存放的是数据字典信息,包含表定义、视图定义、用户权限等
  • ROLL:回滚表空间,存放undo信息。INSERT、UPDATE、DELETE都会产生undo信息
  • MAIN:用户默认表空间,创建用户时,没有指定表空间,则使用MAIN表空间
  • TEMP:临时表空间,用于存放临时表数据、索引、大量数据排序等产生的数据
  • HMAN:HUGE表(列存储表)的默认表空间

5.2 操作表空间

5.2.1 命令行方式

查看表空间

select * from dba_tablespaces;
select * from dba_data_files;
  • 1
  • 2

创建表空间

create tablespace 表空间名 datafile '数据文件路径' SIZE 数据文件大小(单位为mb);

create tablespace dbtbs datafile 'DMTBS01.DBF' SIZE 32;
# 查询页大小的4096倍,并换算成MB
select page*4096/1024/1024
  • 1
  • 2
  • 3
  • 4
  • 5

修改表空间大小

# 修改表空间大小
alter tablespace 表空间名 resize datafile '数据文件路径' to 数据文件大小(单位为mb);
alter tablespace dmtbs resize datafile 'DMTBS01.DBF' to 64;
# 修改表空间开启自动增长,增长步长,最大表空间
alter tablespace 表空间名 datafile '数据文件路径' autoextend on next 增长步长 maxsize 文件最大值
alter tablespace dmtbs datafile 'DMTBS01.DBF' autoextend on next 2 maxsize 10240;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

删除表空间
用户自定义的表空间可以删除和脱机,系统定义的表空间不能脱机和删除
删除后表空间下的数据文件也会级联删除

drop tablesapce 表空间名;
drop tablespace dmtest;
  • 1
  • 2

增加表空间下的数据文件

alter tablespace 表空间名 add datafile '数据文件路径' size 数据文件大小(单位为mb);
alter tablespace dmtbs add datafile 'DMTBS02.DBF' size 64;
  • 1
  • 2

修改表空间名称

alter tablespace 修改前表空间名 rename to 修改后表空间名;
alter tablespace dmtbs rename to dmtest;
  • 1
  • 2

5.2.2 图形化界面

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

5.3 表空间迁移

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

# 先将表空间离线
alter tablespace 表空间名 offline;
# 重命名数据文件名,并迁移
alter tablespace 表空间名 rename datafile '重命名的数据文件名' to '路径';
# 将表空间上线
alter tablespace 表空间名 online;


# 务必注意,后面的文件夹路径必须是由安装数据库的用户创建的,否则会因权限问题报数据库文件路径错误
alter tablespace dmtest offline;
alter tablespace dmtest rename datafile 'DMTBS01.DBF' to '/dm8/data/DAMENG/DMTEST/DMTBS01.DBF';
alter tablespace dmtest rename datafile 'DMTBS02.DBF' to '/dm8/data/DAMENG/DMTEST/DMTBS02.DBF';
alter tablespace dmtest online;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

6.重做日志文件

重做日志:用于记录redo信息,重做日志默认为256M,数据库中的增、删、改操作都会记录redo和undo信息
redo信息写入联机日志文件,undo写入roll表空间对应的数据文件中
达梦的联机日志只支持系统自动切换,不支持手动切换(oracle支持)

6.1 重做日志命令行方式

查看联机日志

## 当前正在使用的联机日志
select * from v$rlog;
select * from v$logfile;
  • 1
  • 2
  • 3

创建连接日志、修改连接日志大小(达梦只支持往大了改)

alter database add logfile '日志名称' size 日志大小(单位MB);
alter database add logfile 'DAMENG03.log' size 128

alter database resize logfile '日志路径' to 日志大小(单位MB);
alter database resize logfile '/dm8/data/DAMENG/DAMENG03.log' to 256;
  • 1
  • 2
  • 3
  • 4
  • 5

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

6.3 重做日志图像化方式

在这里插入图片描述

在这里插入图片描述

7.归档管理(必考)

归档是对REDO的归档,备份归档是为了防止数据丢失,利用归档文件可以恢复数据库里的数据

7.1 开启归档

7.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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

关闭归档

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

7.2 图像化方式

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

7.3 修改配置文件

# 查看归档状态是否开启,0关闭、1开启
cat dm.ini|grep ARCH_INI
  • 1
  • 2

8.用户角色权限

8.1 用户管理

8.1.1 用户类型

  • SYS:内置用户,不能直接登陆
  • SYSDBA:系统管理员,拥有DBA角色(除了安全、审计其他都管)
  • SYSAUDITOR:系统审计管理员
  • SYSSSO:系统安全管理员
  • SYSDBO:系统安全操作员(达梦安全版才有)

8.1.2 创建用户

8.1.2.1 命令行方式
create user 用户名 identified by 密码 default tablespace 表空间名;

create user hrtest identified by "Dmeng123";
  • 1
  • 2
  • 3

设置密码的时候,需要查询下密码策略是什么

select * from v$parameter where name = 'PWD_POLICY';
  • 1

如果想调整密码策略

alter system set 'PWD_POLICY' = 下图策略相加 both;
  • 1

在这里插入图片描述

调整密码错误次数参数,默认输错3次后锁定账号,并且1分钟后自动解锁

# 将密码输错锁定次数改为5次,锁定时间为3分钟
alter user 用户名 limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;
  • 1
  • 2

手动锁定或解锁账号

# 手动解锁
alter user 用户名 account unlock;

# 手动锁定
alter user 用户名 account lock;
# 查看用户资源限制,例如最大并发数
select * from dba_users a,sysusers b where a.user_id = b.id;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

8.2 角色管理

8.2.1 角色类型

  • DBA:系统管理员角色,拥有除审核、安全外的所有权限
  • RESOURCE:具有在当前用户模式下定义对象的权限,例如create table等
  • PUBLIC:具有在当前用户模式下数据操作的权限,例如insert table等
  • SOI:系统表(SYS为前缀)的访问权限
  • SVI:系统视图(VSYS为前缀)的视图权限
  • VTI:动态视图(V为 前 缀 , 存 在 于 V 为前缀,存在于V为前缀,存在于Vdynamic_tables中的视图)的访问权限

创建角色,并授予角色权限

create role 角色名;
grant 权限 to 角色名;

create role r1;
  • 1
  • 2
  • 3
  • 4

赋予用户角色

grant 角色名 to 用户名;
grant r1 to dmtest;
  • 1
  • 2

8.3 权限管理

设置指定用户最大并发量

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

8.3.1 添加查询权限

8.3.1.1 命令行方式
grant select on 模式名.表名 to 用户名;

grant select on dmhr.department to hrtest;
  • 1
  • 2
  • 3

8.3.2 添加修改、删除权限

不能只授予修改、删除权限,还要授予查询权限

grant select on 模式名.表名 to 用户名;
grant update on 模式名.表名 to 用户名;
grant delete on 模式名.表名 to 用户名;
  • 1
  • 2
  • 3

8.3.3 回收权限

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

revoke r1 from dmtest;
revoke create table from dmtest;
  • 1
  • 2
  • 3
  • 4
  • 5

9.模式对象管理

9.1 模式概念

什么是模式:

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

什么是模式对象:

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

模式与用户的关系

当系统建立一个用户时,会自动生成一个对应的模式,用户和模式是一对多的关系(Oracle是一对一)

9.2 创建模式

注意:如果在disql中执行此语句,空行后需要加上/再回车

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

# 创建模式
create schema 模式名 authorization 用户名;
/
# 授予用户创建模式权限
grant create schema to 用户名;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

9.3 查询模式

查询系统中所有模式

select * from SYSOBJECTS a where a."TYPE$" = 'SCH'
  • 1

查询模式和所属用户

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;
  • 1
  • 2
  • 3

查询当前模式

select sys_context('USERENV','CURRENT_SCHEMA');
  • 1

查询当前用户,两种都可以

select user;
select sys_context('USERENV','CURRENT_USER');
  • 1
  • 2

9.4 切换模式

注意:这个切换只对当前会话生效,咨询过老师,目前没有方法可以设置永久生效

set schema 模式名;
  • 1

10.表管理

表名是区分大小写的

10.1 创建表

create table dmtest.t_testpid(
	pid int,
	pname varchar(10),
	logtime datetime DEFAULT sysdate,
	sex bit
) tablespace HRTBS;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

从别的表复制

# 只复制表结构(不带约束信息)
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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

10.2 调整字段

# 添加字段
alter table dmtest.t_testpid add email varchar(20);
# 修改字段
alter table dmtest.t_testpid modify email varchar(30);
# 删除字段
alter table dmtest.t_testpid drop email;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

10.3 约束

10.3.1 约束类型

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

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

10.3.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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

10.3.2 禁用和启用约束

10.3.2.1 禁用
alter table 模式名.表名 disable constraint "约束名"
  • 1
10.3.2.1 启用
alter table 模式名.表名 enable constraint "约束名"
  • 1

10.4 索引管理

10.4.1 创建索引

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

11.视图管理

create or replace view 视图名称 as
select * from aaa where age > 10
  • 1
  • 2

12.备份与还原

12.1逻辑导出

12.1.1 全库导出

dexp在达梦的bin目录下
注意需要先创建目录,而且导出用户和导入用户都使用dmdba

./dexp userid=sysdba/SYSDBA:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
  • 1

12.1.2 按用户导出

./dexp userid=sysdba/SYSDBA:5238 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log owner=dmtest
  • 1

12.1.1 导入sql文件

在disql里执行的话使用以下命令

start sql文件路径
  • 1

在达梦客户端工具里执行的话,使用以下命令

` sql文件路径;
commit;
  • 1
  • 2

12.2 物理导出

12.2 联机备份

12.2.1 命令行方式
# 全库备份到默认路径下
backup database

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

# 基于基础备份集的增量备份,并备份到指定目录
backup database increment to incrbak01 backupset '/dm8/backup/incr/incrbak01';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

基于默认备份集、指定备份集、增量备份目录下三个目录交集的最新的备份集,来进行增量备份

# 基于指定备份集的增量备份,并备份到指定目录
backup database increment with BACKUPDIR '/dm8/backup/full' to incrbak02 backupset '/dm8/backup/incr/incrbak02';
  • 1
  • 2

12.3 脱机备份

./console
  • 1
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

12.3 物理导出的还原

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

13.作业管理(必考)

13.1 创建代理环境

命令行方式创建代理环境

SP_INIT_JOB_SYS(1);
  • 1

图形化方式创建代理环境

在这里插入图片描述

13.2 新建作业

在这里插入图片描述

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

在这里插入图片描述

14.ODBC配置(必考)

  • 解压ODBC,没有这个tar包的话需要上传到这个目录下
 tar -zxvf /opt/unixODBC-2.3.0.tar.gz
  • 1
  • 进入到odbc目录进行源码安装
cd unixODBC-2.3.0
./configure
make
make install
  • 1
  • 2
  • 3
  • 4
  • 修改配置文件
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
vim odbcinst.ini
[DM8 ODBC DRIVER] # 这块要和上边对应
Drscription = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
  • 1
  • 2
  • 3
  • 4

切换到dmdba用户,进行登陆即可

su -dmdba
isql dm8 -v
  • 1
  • 2

https://eco.dameng.com/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/471374
推荐阅读
相关标签
  

闽ICP备14008679号