按下右下角,进行联网
可以在虚拟机里面访问Azhuquq.com,便于复制代码
复制代码时,不要复制到前面的数字(行数)
创建数据库实例
题目要求
(1)数据库目录为存放到/dm8/data目录下(2)数据库名为DAMENG,实例名为DMSERVER,端口号5236。
(3)数据库管理员sysdba的密码为:DamengGX123(sysdba密码忘记后将无法使用sysdba登录数据库)。
(4)页大小设置为8K,簇大小为16。
(5)联机日志文件大小为500M,日志文件为3个。
1 | su dmdba |
如果无法打开窗口...
如果在安装时是使用命令行安装(即没有在root用户的界面下使用dmdba用户打开过窗口)的话,会出现这种情况只需重新打开终端,输入
1 | xhost + |
解决问题
如果提示权限不够...
没关系,在桌面再打开一个终端窗口,输入1 | chown -R dmdba /dm8/data |
终端指令可以复制的!如图!
在桌面再开一个终端窗口,粘贴即可
可能一共会有两次提示“使用root运行配置脚本”操作,反正按照提示操作就对了
出现这里时,按一下完成
,完成安装
卸载数据库实例
与创建实例相同的步骤,以dmdba用户打开配置工具
1 | su dmdba |
1 | systemctl stop DmServiceDMSERVER.service |
如图
使用命令行创建数据库
习题是这么说的
要求如下(1)数据文件存放到/home/dmdba/dmdbms/data目录下
(2)数据库名为DMDB,实例名为DMGX,端口号5238。
(3)数据库管理员sysdba的密码为:Dameng123。
(4)页大小设置为16K,簇大小为16。
1 | su dmdba |
如图
注册(使用命令行创建的)数据库服务
以dmdba用户打开配置工具
1 | su dmdba |
如图,载入配置文件
然后继续按照屏幕上所给的说明注册,执行脚本即可
重要提示
以下大部分操作均在DM管理工具中完成
使用dmdba用户打开DM管理工具
1 | su dmdba |
管理数据表空间
(待完成)
创建/修改数据表空间
(如果是按照“使用命令行创建数据库”安装的,则端口号一栏填写5238)
题目要求
(1)创建表空间TBS,指定数据文件TBS01.DBF和TBS02.DBF,存放至数据库默认目录下,文件初始大小为 64M,自动扩展,每次扩展2M,最大值为2G。(2)修改表空间TBS,关闭TBS01.DBF和TBS02.DBF的自动扩展属性,将数据文件大小修改为128M
填写信息,如图
如果提示创建表空间失败(创建数据文件失败)...
大概率是没有权限,在桌面再打开一个终端窗口,输入1 | chown -R dmdba /dm8/data |
修改表空间信息,如图
SQL语句管理数据表空间
题目要求
使用SQL语句创建表空间DMTBS,要求如下:(1)创建表空间DMTBS,指定数据文件为DMTBS01.DBF,存放至/dm8/data下,文件初始小为128M,自动扩展,每次扩展4M,最大值为10G。
(2)对该表空间添加数据文件DMTBS02.DBF,存放至/dm8/data下,文件初始大小为64M,自动扩展,每次扩展4M,最大值为10G。
(3)修改数据文件DMTBS02.DBF,文件大小为128M。
1 | create tablespace DMTBS DATAFILE '/dm8/data/DMTBS01.DBF' SIZE 128 AUTOEXTEND on NEXT 4 MAXSIZE 10240; |
接着点击运行,如图
完成这一题
用户权限管理
在图形化界面管理用户
题目要求
使用DM管理工具创建用户TEST,要求如下:(1)创建用户TEST,密码为Dameng123,表空间默认为TBS。
(2)创建角色ROLE1,赋子ROLE1创建表、创建索引和创建视图的权限。将角色ROLE1赋予TEST用户。
(3)赋予用户TEST查询dmhr模式下员工表employee、部门表department表的权限。
第一题如图
第二题
新建一个名为ROLE1
的角色,然后设置权限,如图
然后修改TEST用户的所属角色,如图
做完第二题后,也许会发现没有DMHR这个库,没错,这个库在注册(使用命令行创建的)数据库服务时,确实是不带的
找回DMHR这个库
那么,有两种方法
方法一
回到创建数据库实例,再去创建一次,并勾上创建示例库DMHR
小孩子玩泥沙有意思吗?所以有了方法二!
方法二
打开一个新的终端,并在终端中输入
1 | su dmdba |
接着这里一步步操作,首先,按下键盘上的i
将光标移动到最右边,按下回车,另起一行
输入
1 | export PATH=$PATH:$DM_HOME/bin |
如图
接着按下键盘上的Esc
,并输入:wq
(冒号也要输)以退出vim
然后继续输入
1 | source ~/.bash_profile |
之后没问题的话,命令提示符会变成SQL>
开头
继续输入
1 | set CMD_EXEC off |
如图(反引号`也要输入)
之后DMHR表就创建好了
继续操作
第三题,在TEST用户上右键,选择修改
然后修改权限,如图
至此,第三题完成
SQL语句管理表空间
题目要求
(1)创建用户DMUSER,密码为dameng123,默认使用MAIN表空间。(2)赋予DMUSER用户查询dmhr模式下员工表employee、部门表department表的权限。
(3)将RESOURCE角色赋子用户DMUSER
1 | create user dmuser identified by dameng123 default tablespace main; |
创建表
在图形化界面创建表
题目要求的表格复制不动,直接上操作吧
首先断开SYSDBA(或者其他用户)的连接
接着,使用TEST用户连接数据库,并在模式下创建表
图形化界面创建没什么难度,按照习题做就行了
如图
SQL创建表
执行以下SQL指令创建ELECTIVE表
1 | CREATE TABLE TEST.ELECTIVE( |
执行如下SQL添加主键,外键信息:
1 | alter table TEST.ELECTIVE add CONSTRAINT PK_ELECTIVE PRIMARY KEY(ELECTIVEID); |
当无法执行第二行时......
第二行引用了STU表,第三行引用了COURSE表必须要完成上一题的“在图形化界面创建表”操作
行行行…
CTAS方式创建表
题目要求
基于DMHR.EMPLOYEE表结构和数据创建表T_EMP,表创建至TEST用户下1 | create table t_emp as select * from DMHR.EMPLOYEE; |
数据操作
DM管理工具图形化界面插入数据
一张图说完
我他妈的不想一个个打怎么办?按一下这里!
没关系,我为大家准备好了SQL语句操作STU表
1 | INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1001, 'AAA', 1, 21, '15300001111', 'Computer', 'WUHAN'); |
操作COURSE表
1 | INSERT INTO test.course (courseid, c_name, c_professor, c_date) VALUES (200001, 'Chinese', 'Lilei', 'Monday 8: 00-10: 00'); |
执行这些语句,即可插入STU及COURSE的表信息
SQL插入数据
直接上SQL语句
1 | insert into test.elective (electiveid, stuid, courseid, orderdate) values (8001, 1001, 200001, '2021-09-09'); |
当提示违反引用性约束时,必须要完成上一题的插入数据操作,或使用SQL语句操作
DM管理工具图形化界面更新,删除数据
按照题目以及说明,在图形交互界面操作即可
SQL更新,删除数据
直接上SQL语句
1 | update test.stu set sex=1 where stuname='BBB'; |
如提示“-6607: 违反引用约束[FK_ELECTIVE_STUID]”
需要在“DM管理工具图形化界面更新,删除数据”那一步删除ELECTIVE表STUID为1007的那一行数据
然后再操作一次
创建索引
题目要求
(1)由于经常要根据学生姓名查询该学生手机号码,请在STU表SNAME列创建索引IX_STU_STUNAME以提高查询速度,以DM管理工具图形化界面来实现。(2)有些学生钟爱某个教授的课,经常需要了解某教授上哪些课,请在COURSE表的C_PROFESSOR列上创建索引IX_COURSE_PROFESSOR,以SQL语句来实现。
(3)请在T_EMP表上创建组合索引IX_EMP_EMPIDNAME,索引字段包含EMPLOYEE_ID和EMPLOYEE_NAME两列。
DM管理工具图形化界面创建索引
如图
SQL创建索引
使用SQL语句指令
1 | create index IX_COURSE_PROFESSOR on TEST.COURSE(C_PROFESSOR); |
创建组合索引
使用SQL语句指令
1 | create index IX_EMP_EMPIDNAME on TEST.T_EMP(EMPLOYEE_ID,EMPLOYEE_NAME); |
创建视图
创建简单视图
题目要求
(1)在TEST用户下创建该视图,用来查询T_EMP表部门编码为1001的员工基本信息。(2)要求展示:员工编码,员工姓名,邮箱、手机号码信息。
1 | create or REPLACE view v_emp |
创建复杂视图
题目要求
(1)在TEST用户下创建该视图,查询每个学生的选修课情况。(2)要求展示:学号,学生姓名,课程号,课程名称,授课老师,上课时间。
1 | create or REPLACE view V_STUELECTIVE |
物理备份
DM管理工具实现联机热备份
题目要求
为保证数据库的安全,需要对数据库做一个全备,全备需要开启数据归档状态,要求如下:(1)开启数据库归档状态,配置归档目录为/dm8/data/arch,归档文件大小为 64M,归档空间限制为2048M。
(2)对数据库进行数据联机全量热备,备份至目录/dm8/backup/DBFULLBAK
使用SYSDBA用户登录DM管理工具,右键,选择管理服务器
在左侧系统管理,将状态转换为配置状态,并按下转换
在左侧归档配置,将归档模式选为归档,并添加目录,然后按下确定
再次重复1、2步骤,不过这下是将状态转换为打开状态
然后在终端中运行指令
1 | mkdir /dm8/backup |
然后新建一个名为DBFULLBAK
的备份,备份目录选择/dm8/data/DBFULLBAK
然后在库备份里指定工作目录,新建一条/dm8/backup
使用SQL实现联机热备份
执行之前,请先将数据库的DMFULLBAK备份删除,然后在管理服务器的系统管理中,转为配置状态
然后转到归档配置,将归档模式转为非归档,删除数据库归档配置中的/dm8/data/arch
然后重新连接,转为打开状态
之后才能执行以下SQL命令完成此题
1 | alter database mount; |
表的物理备份
SQL语句指令
1 | backup table TEST.STU to STUTABBAK backupset '/dm8/backup/STUTABBAK'; |
也可以使用图形化界面备份表
逻辑备份
DM管理工具实现逻辑备份
题目要求
(1)数据文件和日志保存到/dm8/backup/dexp目录下(如果没有此目录请创建此目录)(2)数据文件为dexp_full.dmp,日志文件为dexp_full.log。
1 | mkdir /dm8/backup/dexp |
然后回到DM管理工具,全库导出,如图
dexp命令实现逻辑备份
在终端中执行如下命令
1 | su dmdba |
完成此操作
逻辑导出TEST用户下对象和数据
题目要求
(1)数据文件和日志保存到/dm8/backup/dexp目录下(如果没有此目录请创建此目录)。(2)数据文件为dexp_test.dmp,日志文件为dexp_test.log。
1 | su dmdba |
创建作业
创建代理环境
创建系统过程/系统包DBMS_JOB代理环境,如图
创建作业
题目要求
(1)作业名称为JOB_FULLBAK。(2)每周日22:00对数据库全量备份。
新建作业,选择系统过程,如图
填写名称
新增作业步骤
新增调度
也可以选个将近一点的时间,之后在数据库备份里面看看是不是真的有在备份了
然后在下一个页面中选择完成
,完成创建
全文到此结束,施工完毕
更完啦(o゚v゚)ノ