文章目录

1.安装达梦8(必考)

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.2 查看操作系统信息

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

cat /proc/version

在这里插入图片描述

uname -a

在这里插入图片描述

uname -r

在这里插入图片描述

1.2.3 查看glibc版本

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

ldd --version

rpm -qa|grep glibc

在这里插入图片描述

  • 例如拿着银河麒麟10版本的达梦,去银河麒麟4的操作系统上安装,会报错,解决方案有两种

1.2.4 查看gcc版本

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

gcc --version

rpm -qa|grep gcc

在这里插入图片描述

1.2.5 查看磁盘容量

至少需要20G,推荐给25G以上
在这里插入图片描述
如果tmp容量小于1G,使用以下命令扩容

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

1.2.6 查看内存

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

free -m

cat /proc/meminfo

在这里插入图片描述

1.3 安装规划

1.3.1 创建用户组

# 创建用户组
groupadd dinstall

在这里插入图片描述

1.3.2 创建用户

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

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

1.3.3 创建安装目录

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

在这里插入图片描述

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.4 挂载镜像文件

将下载的iso镜像文件上传到服务器上后,进行挂载操作(考试的时候,可能已经挂载,直接安装即可)

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

在这里插入图片描述

# 切换到dmdba用户下
su - dmdba
# 查看挂载目录
cd /mnt/dm
ll

在这里插入图片描述

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.5.1.2 执行安装程序
# 进入到挂载目录
cd /mnt/dm
# 查看目录下的文件
ll
# 执行安装程序
./DMInstall.bin

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

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

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

1.5.2 命令行形式安装

./DMInstall.bin -i

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

1.5.3 静默安装方式(了解)

配置XML文件,适用于一键安装的场景,具体参看达梦安装手册

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

1.6.1 图像化方式

# 进入到dm工具包目录
cd /dm8/tool
# 打开数据库配置助手
./dbca.sh

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

以下参数都是在数据库创建时设定,后续无法修改
在这里插入图片描述

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

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.3.3 创建安装目录

查看是否创建完成
在这里插入图片描述

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.7.2 图形化方式

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

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

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

查看达梦进程
在这里插入图片描述

1.8 卸载达梦数据库

1.8.1 图形化卸载

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

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

卸载完成后,还会剩下几个目录,如果再次安装还是选择这个目录的话,需要在安装前手动删除这几个目录
在这里插入图片描述

1.7.2 命令行方式卸载

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

在这里插入图片描述

删除完成后,达梦根目录下还有一个log目录需要手动删除
在这里插入图片描述

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

在这里插入图片描述

2.2.1 使用conn连接

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

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

# 加上ip地址
conn SYSDBA/Dameng123@192.168.31.124:5237

2.2 使用图形化工具连接

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

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

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修改

# 直接编辑文件修改即可
vim /dm8/data/服务名称 dm.ini

3.2.2 使用图形化修改

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

cd /dm8/tool
./console

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

修改完成后,需要

3.2.3 SQL语句修改

# 后面跟的是参数范围
alter system set '参数名'='参数值' both | spfile | memory;
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;

在这里插入图片描述

修改UNDO_RETENTION
在这里插入图片描述

修改LIST_TABLE
在这里插入图片描述

3.2.4 系统函数修改

查看可以使用的系统函数

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

在这里插入图片描述

查看系统函数的参数类型

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

在这里插入图片描述

3.2.4.1 例子

修改double类型的参数值,UNDO_RETENTION参数

在这里插入图片描述

4.数据缓冲区(不考,但是会涉及到改相关参数)

在这里插入图片描述

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

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

alter system set 'BUFFER'=2000 spfile;

5.表空间管理(必考)

5.1 表空间类型

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

考试会让你修改temp表空间,需要修改temp_size

alter system set 'TEMP_SIZE'=64 spfile;

5.2 操作表空间

5.2.1 命令行方式

查看表空间

select * from dba_tablespaces;
select * from dba_data_files;

创建表空间

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

create tablespace dbtbs datafile 'DMTBS01.DBF' SIZE 32;

# 查询页大小的4096倍,并换算成MB
select page*4096/1024/1024

在这里插入图片描述

修改表空间大小

# 修改表空间大小
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;

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

drop tablesapce 表空间名;
drop tablespace dmtest;

增加表空间下的数据文件

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

修改表空间名称

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

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;

5.4 temp表空间(考点)

查询temp表空间参数,达梦数据库启动的时候会根据这几个参数来创建或重建temp表空间

select name,value,type from v$parameter where name like 'TEMP%';

在这里插入图片描述

  • TEMP_PATH:temp表空间的路径
  • TEMP_SIZE:temp表空间的初始值,单位为MB
  • TEMP_SPACE_LIMIT:temp表空间的空间限制,0表示不限制

修改TEMP表空间大小,重启后依旧生效

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

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

在这里插入图片描述

6.重做日志文件(必考)

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

6.1 重做日志命令行方式

查看联机日志

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

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

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;

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;

6.2 重做日志图像化方式

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

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;

关闭归档

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;

7.2 图像化方式

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

7.3 修改配置文件

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

在这里插入图片描述

# 修改归档配置

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";

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

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

在这里插入图片描述

如果想调整密码策略

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

在这里插入图片描述

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

在这里插入图片描述

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

手动锁定或解锁账号

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

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

在这里插入图片描述

8.1.2.1 图形化方式

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

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 = '用户名';

在这里插入图片描述

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;
grant

赋予用户角色

grant 角色名 to 用户名;
grant r1 to dmtest;

8.3 权限管理

设置指定用户最大并发量

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

多余3个连接会报错
在这里插入图片描述
设置可以赋予其他用户在非当前用户模式下创建对象权限

select * from v$parameter where name = 'ENABLE_DDL_ANY_PRIV';

在这里插入图片描述

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

在这里插入图片描述

8.3.1 添加查询权限

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

grant select on dmhr.department to hrtest;

8.3.2 添加修改、删除权限

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

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

8.3.3 回收权限

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

revoke r1 from dmtest;
revoke create table from dmtest;
8.3.1.2 图形化方式

参数步骤 8.1.2.1 图形化方式实现

8.4 小结(了解)

  • 系统权限
    • CREATE TABLE、INDEX、VIEW,CREATE user等
  • 对象权限
    • 对某张表的查询、修改、删除、插入权限,也可以是某个存储过程的执行权限
  • 权限转授
    • 系统权限转授,with admin option
    
    
    • 对象权限转授,with grant option
    grant select on sysdba.t_test to hrtest with grant option;
    

在这里插入图片描述

  • 回收权限注意
    • 如果回收的角色,带有转授权限,那么需要加关键字,对其转授出去的角色一并级联回收
    revoke select on sysdba.t_test from hrtest CASCADE;
    

9.模式对象管理(必考)

9.1 模式概念

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

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

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

9.2 创建模式

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

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

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

在这里插入图片描述

9.3 查询模式

查询系统中所有模式

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

在这里插入图片描述

查询模式和所属用户

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;

在这里插入图片描述

查询当前模式

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

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

select user;
select sys_context('USERENV','CURRENT_USER');

9.4 切换模式

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

set schema 模式名;

10.表管理(必考 建表、加约束)

表名是区分大小写的

10.1 创建表

create table dmtest.t_testpid(
	pid int,
	pname varchar(10),
	logtime datetime DEFAULT sysdate,
	sex bit
) tablespace HRTBS;

从别的表复制

# 只复制表结构(不带约束信息)
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 调整字段

# 添加字段
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;

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);

10.3.2 禁用和启用约束

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

在这里插入图片描述

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

在这里插入图片描述

10.3.3 图形化点开约束报错解决方案

如果说点击约束,出现下图报错
在这里插入图片描述
解决方案如下
在这里插入图片描述
在这里插入图片描述

10.4 索引管理

10.4.1 创建索引

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

在这里插入图片描述

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

11.视图管理(必考)

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

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

12.1.2 按用户导出

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

12.1.1 导入sql文件

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

start sql文件路径

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

` sql文件路径;
commit;

12.2 物理导出

12.2 联机备份

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

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

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

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

# 基于指定备份集的增量备份,并备份到指定目录
backup database increment with BACKUPDIR '/dm8/backup/full' to incrbak02 backupset '/dm8/backup/incr/incrbak02';
12.2.2 图形化方式

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

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

如果说这里报错了,需要手动执行下检查点

checkpoint(100)

在这里插入图片描述

如果备份在指定目录下,需要手动添加目录才能看到备份的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.3 脱机备份

./console

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

出现以下报错是因为没有停止数据库服务,冷备必须关闭数据库
在这里插入图片描述
在这里插入图片描述

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

12.3 物理导出的还原

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

13.作业管理(必考)

13.1 创建代理环境

命令行方式创建代理环境

SP_INIT_JOB_SYS(1);

图形化方式创建代理环境
在这里插入图片描述

13.2 新建作业

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

14.ODBC配置(必考)

  • 解压ODBC,没有这个tar包的话需要上传到这个目录下
 tar -zxvf /opt/unixODBC-2.3.0.tar.gz
  • 进入到odbc目录进行源码安装
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

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

su -dmdba
isql dm8 -v
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐