操作手册与提示

操作手册在此下载:

(百度网盘?狗都不用!)

按下右下角,进行联网

可以在虚拟机里面访问Azhuquq.com,便于复制代码

复制代码时,不要复制到前面的数字(行数)

另附:

  • 由罗梓聪创的超星公开课群,邀请码17814379

  • 由钟梓澎创的超星公开课群,邀请码23909409

创建/卸载实例

(PDF第3页习题)

创建数据库实例

题目要求 (1)数据库目录为存放到/dm8/data目录下

(2)数据库名为DAMENG,实例名为DMSERVER,端口号5236。

(3)数据库管理员sysdba的密码为:DamengGX123(sysdba密码忘记后将无法使用sysdba登录数据库)。

(4)页大小设置为8K,簇大小为16。

(5)联机日志文件大小为500M,日志文件为3个。

在桌面打开终端,输入
1
2
3
su dmdba
cd /home/dmdba/dmdbms/tool
./dbca.sh
如果无法打开窗口... 如果在安装时是使用命令行安装(即没有在root用户的界面下使用dmdba用户打开过窗口)的话,会出现这种情况

只需重新打开终端,输入

1
2
3
4
5
xhost +
su dmdba
cd /home/dmdba/dmdbms/tool
export DISPLAY=:0.0
./dbca.sh

解决问题

按PDF文档的第19页操作,数据库目录选择/dm8/data
如果提示权限不够... 没关系,在桌面再打开一个终端窗口,输入
1
chown -R dmdba /dm8/data
然后继续按照PDF文档的20、21页,以及屏幕上所给的说明安装

终端指令可以复制的!如图!

在桌面再开一个终端窗口,粘贴即可

可能一共会有两次提示“使用root运行配置脚本”操作,反正按照提示操作就对了

出现这里时,按一下完成,完成安装

卸载数据库实例

与创建实例相同的步骤,以dmdba用户打开配置工具
1
2
3
su dmdba
cd /home/dmdba/dmdbms/tool
./dbca.sh
在桌面再开一个终端窗口,输入
1
systemctl stop DmServiceDMSERVER.service

如图

然后继续按照PDF文档的23、24页,以及屏幕上所给的说明卸载即可

使用命令行创建数据库

PDF文档的习题是这么说的 要求如下

(1)数据文件存放到/home/dmdba/dmdbms/data目录下

(2)数据库名为DMDB,实例名为DMGX,端口号5238。

(3)数据库管理员sysdba的密码为:Dameng123。

(4)页大小设置为16K,簇大小为16。

在终端输入
1
2
3
su dmdba
cd /home/dmdba/dmdbms/bin
./dminit path=/home/dmdba/dmdbms/data db_name=DMDB instance_name=DMGX port_num=5238 SYSDBA_PWD=Dameng123 PAGE_SIZE=16

如图

注册(使用命令行创建的)数据库服务

以dmdba用户打开配置工具
1
2
3
su dmdba
cd /home/dmdba/dmdbms/tool
./dbca.sh

如图,载入配置文件

然后继续按照屏幕上所给的说明注册,执行脚本即可


重要提示

以下大部分操作均在DM管理工具中完成

使用dmdba用户打开DM管理工具

1
2
3
su dmdba
cd /home/dmdba/dmdbms/tool
./manager

管理数据表空间

(PDF第4页习题)

创建/修改数据表空间

按照PDF文档的第26、27页完成

(如果是按照“使用命令行创建数据库”安装的,则端口号一栏填写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
2
3
create tablespace DMTBS DATAFILE '/dm8/data/DMTBS01.DBF' SIZE 128 AUTOEXTEND on NEXT 4 MAXSIZE 10240;
alter tablespace DMTBS add DATAFILE '/dm8/data/DMTBS02.DBF' SIZE 64 AUTOEXTEND on NEXT 4 MAXSIZE 10240;
alter tablespace DMTBS resize DATAFILE '/dm8/data/DMTBS02.DBF' to 128;

接着点击运行,如图

完成这一题

用户权限管理

在图形化界面管理用户

题目要求 使用DM管理工具创建用户TEST,要求如下:

(1)创建用户TEST,密码为Dameng123,表空间默认为TBS。

(2)创建角色ROLE1,赋子ROLE1创建表、创建索引和创建视图的权限。将角色ROLE1赋予TEST用户。

(3)赋予用户TEST查询dmhr模式下员工表employee、部门表department表的权限。

第一题如图

第二题

新建一个名为ROLE1的角色,然后设置权限,如图

然后修改TEST用户的所属角色,如图

做完第二题后,也许会发现没有DMHR这个库,没错,这个库在注册(使用命令行创建的)数据库服务时,确实是不带的

找回DMHR这个库

那么,有两种方法

方法一

回到创建数据库实例,再去创建一次,并勾上创建示例库DMHR

小孩子玩泥沙有意思吗?所以有了方法二!

方法二

打开一个新的终端,并在终端中输入

1
2
su dmdba
vim ~/.bash_profile

接着这里一步步操作,首先,按下键盘上的i

将光标移动到最右边,按下回车,另起一行

输入

1
export PATH=$PATH:$DM_HOME/bin

如图

接着按下键盘上的Esc,并输入:wq(冒号也要输)以退出vim

然后继续输入

1
2
3
4
source ~/.bash_profile
cd /home/dmdba/dmdbms/samples/instance_script/dmhr/UTF-8
ls
disql sysdba/Dameng123@localhost:5238

之后没问题的话,命令提示符会变成SQL>开头

继续输入

1
2
3
4
5
6
7
8
9
10
11
12
set CMD_EXEC off
set echo off
set timing off
set feedback off
`1-CREATESCHEMA.sql
`2-REGION.sql
`3-CITY.sql
`4-LOCATION.sql
`5-DEPARTMENT.sql
`6-JOB.sql
`7-EMPLOYEE.sql
`8-JOB_HISTORY.sql

如图(反引号`也要输入)

之后DMHR表就创建好了

继续操作

第三题,在TEST用户上右键,选择修改

然后修改权限,如图

至此,第三题完成

SQL语句管理表空间

题目要求 (1)创建用户DMUSER,密码为dameng123,默认使用MAIN表空间。

(2)赋予DMUSER用户查询dmhr模式下员工表employee、部门表department表的权限。

(3)将RESOURCE角色赋子用户DMUSER

SQL语句
1
2
3
4
create user dmuser identified by dameng123 default tablespace main;
grant select on dmhr.employee to dmuser;
grant select on dmhr.department to dmuser;
grant resource to dmuser;
运行此语句,完成此题

创建表

在图形化界面创建表

题目要求的表格复制不动,直接上操作吧

首先断开SYSDBA(或者其他用户)的连接

接着,使用TEST用户连接数据库,并在模式下创建表

图形化界面创建没什么难度,按照习题做就行了

如图

SQL创建表

执行以下SQL指令创建ELECTIVE表

1
2
3
4
5
6
CREATE TABLE TEST.ELECTIVE(
ELECTIVEID INT,
STUID INT,
COURSEID INT,
ORDERDATE DATETIME
);

执行如下SQL添加主键,外键信息:

1
2
3
alter table TEST.ELECTIVE add CONSTRAINT PK_ELECTIVE PRIMARY KEY(ELECTIVEID);
alter table TEST.ELECTIVE add CONSTRAINT FK_ELECTIVE_STUID FOREIGN KEY(STUID) REFERENCES TEST.STU(STUID);
alter table TEST.ELECTIVE add CONSTRAINT FK_ELECTIVE_COURSEID FOREIGN KEY(COURSEID) REFERENCES TEST.COURSE(COURSEID);
当无法执行第二行时...... 第二行引用了STU表,第三行引用了COURSE表

必须要完成上一题的“在图形化界面创建表”操作

行行行…

CTAS方式创建表

题目要求 基于DMHR.EMPLOYEE表结构和数据创建表T_EMP,表创建至TEST用户下
直接上SQL语句
1
2
create table t_emp as select * from DMHR.EMPLOYEE;
select * from t_emp;

数据操作

DM管理工具图形化界面插入数据

一张图说完

我他妈的不想一个个打怎么办?按一下这里! 没关系,我为大家准备好了SQL语句

操作STU表

1
2
3
4
5
6
7
8
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1001, 'AAA', 1, 21, '15300001111', 'Computer', 'WUHAN');
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1002, 'BBB', 0, 20, '15300001112', 'Computer', 'WUHAN');
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1003, 'CCC', 1, 19, '15300001113', 'Computer', 'BEIJING');
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1004, 'DDD', 0, 20, '15300001114', 'Chemistry', 'BEIJING');
INSERT INTO test.stu (stuid, stuname, age, tel, department, address) VALUES (1005, 'EEE', 21, '15300001115', 'Chemistry', 'TIANJIN');
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1006, 'FFF', 1, 18, '15300001116', 'Mathematics', 'TIANJIN');
INSERT INTO test.stu (stuid, stuname, sex, age, tel, department, address) VALUES (1007, 'GGG', 1, 19, '15300001117', 'Mathematics', 'TIANJIN');
commit;

操作COURSE表

1
2
3
4
5
INSERT INTO test.course (courseid, c_name, c_professor, c_date) VALUES (200001, 'Chinese', 'Lilei', 'Monday 8: 00-10: 00');
INSERT INTO test.course (courseid, c_name, c_professor, c_date) VALUES (200002, 'Physics', 'Hanmeimei', 'Tuesday 10: 00-12: 00');
INSERT INTO test.course (courseid, c_name, c_professor, c_date) VALUES (200003, 'English', 'Taitai', 'Friday 14: 00-16: 00');
INSERT INTO test.course (courseid, c_name, c_professor, c_date) VALUES (200004, 'Math', 'Laowang', 'Tuesday 9: 00-11: 00');
commit;

执行这些语句,即可插入STU及COURSE的表信息

SQL插入数据

直接上SQL语句

1
2
3
4
5
6
7
8
9
10
11
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8001, 1001, 200001, '2021-09-09');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8002, 1001, 200002, '2021-09-09');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8003, 1002, 200001, '2021-09-07');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8004, 1004, 200003, '2021-09-06');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8005, 1005, 200002, '2021-09-08');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8006, 1005, 200003, '2021-09-08');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8007, 1006, 200004, '2021-09-04');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8008, 1006, 200003, '2021-09-04');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8009, 1007, 200002, '2021-09-05');
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8010, 1003, 200004, '2021-09-04');
commit;

当提示违反引用性约束时,必须要完成上一题的插入数据操作,或使用SQL语句操作

DM管理工具图形化界面更新,删除数据

按照题目以及说明,在图形交互界面操作即可

SQL更新,删除数据

直接上SQL语句

1
2
3
4
5
6
7
update test.stu set sex=1 where stuname='BBB';
commit;
insert into test.elective (electiveid, stuid, courseid, orderdate) values (8011, 1002, 200004, '2021-10-25');
commit;
delete from test.elective where courseid=1007;
delete from test.stu where STU.STUNAME='GGG';
commit;
如提示“-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)要求展示:员工编码,员工姓名,邮箱、手机号码信息。

使用SQL语句指令
1
2
3
4
5
create or REPLACE view v_emp
as
select a.EMPLOYEE_ID,a.EMPLOYEE_NAME,a.PHONE_NUM,a.EMAIL
from t_emp a
where a.DEPARTMENT_ID=1001;

创建复杂视图

题目要求 (1)在TEST用户下创建该视图,查询每个学生的选修课情况。

(2)要求展示:学号,学生姓名,课程号,课程名称,授课老师,上课时间。

使用SQL语句指令
1
2
3
4
5
create or REPLACE view V_STUELECTIVE
as
select s.STUID,s.STUNAME,c.COURSEID,c.C_NAME,c.C_PROFESSOR,c.C_DATE
from elective e,stu s,course c
where e.COURSEID=c.COURSEID and e.STUID=s.STUID;

物理备份

DM管理工具实现联机热备份

题目要求 为保证数据库的安全,需要对数据库做一个全备,全备需要开启数据归档状态,要求如下:

(1)开启数据库归档状态,配置归档目录为/dm8/data/arch,归档文件大小为 64M,归档空间限制为2048M。

(2)对数据库进行数据联机全量热备,备份至目录/dm8/backup/DBFULLBAK

  1. 使用SYSDBA用户登录DM管理工具,右键,选择管理服务器

  2. 在左侧系统管理,将状态转换为配置状态,并按下转换

在左侧归档配置,将归档模式选为归档,并添加目录,然后按下确定

再次重复1、2步骤,不过这下是将状态转换为打开状态

然后在终端中运行指令

1
2
mkdir /dm8/backup
chown -R dmdba /dm8/backup

然后新建一个名为DBFULLBAK的备份,备份目录选择/dm8/data/DBFULLBAK

然后在库备份里指定工作目录,新建一条/dm8/backup

使用SQL实现联机热备份

执行之前,请先将数据库的DMFULLBAK备份删除,然后在管理服务器的系统管理中,转为配置状态

然后转到归档配置,将归档模式转为非归档,删除数据库归档配置中的/dm8/data/arch

然后重新连接,转为打开状态

之后才能执行以下SQL命令完成此题

1
2
3
4
5
alter database mount;
alter database add archivelog 'dest=/dm8/data/arch,type=local,file_size=64,space_limit=2048';
alter database archivelog;
alter database open;
backup database to DMFULLBAK backupset '/dm8/backup/DBFULLBAK';

表的物理备份

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
2
mkdir /dm8/backup/dexp
chown -R dmdba /dm8/backup/dexp

然后回到DM管理工具,全库导出,如图

dexp命令实现逻辑备份

在终端中执行如下命令

1
2
3
su dmdba
cd /home/dmdba/dmdbms/bin
./dexp userid=sysdba/Dameng123@localhost:5238 file=/dm8/backup/dexp/dexp_full.dmp log=/dm8/backup/dexp/dexp_full.log full=y

完成此操作

逻辑导出TEST用户下对象和数据

题目要求 (1)数据文件和日志保存到/dm8/backup/dexp目录下(如果没有此目录请创建此目录)。

(2)数据文件为dexp_test.dmp,日志文件为dexp_test.log。

在终端中执行如下命令
1
2
3
su dmdba
cd /home/dmdba/dmdbms/bin
./dexp userid=sysdba/Dameng123@localhost:5238 file=/dm8/backup/dexp/dexp_test.dmp log=/dm8/backup/dexp/dexp_test.log owner=TEST
完成此操作

创建作业

创建代理环境

创建系统过程/系统包DBMS_JOB代理环境,如图

创建作业

题目要求 (1)作业名称为JOB_FULLBAK。

(2)每周日22:00对数据库全量备份。

新建作业,选择系统过程,如图

填写名称

新增作业步骤

新增调度

也可以选个将近一点的时间,之后在数据库备份里面看看是不是真的有在备份了

然后在下一个页面中选择完成,完成创建


全文到此结束,施工完毕

更完啦(o゚v゚)ノ