
达梦数据库基础————新建用户和安装数据库+实训题练习(有答案)适合新手村
00unlimitedunlimitedunlimitedunlimitedunlimitedunlimited修改配置文件后重启服务器生效。
一、新建 dmdba 用户
注意
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
1. 创建用户所在的组,命令如下:
[root@localhost ~]# groupadd dinstall g 2001
1. 创建用户,命令如下:
1. 修改用户密码,命令如下:
[root@localhost ~]# useradd g dinstall u 2001 dmdba
[root@localhost ~]# passwd dmdba
二、修改文件打开最大数
在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。
永久修改和临时修改。
重启服务器后永久生效。
使用 root 用户打开 /etc/security/limits.conf 文件进行修改,命令如下:
[root@localhost ~]# vim /etc/security/limits.conf
在最后需要添加如下配置:
dmdba soft nice
0
dmdba hard nice
0
dmdba soft as
unlimited
dmdba hard as
unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimiteddmdba soft nproc 65536dmdba hard nproc 65536dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core
unlimited
dmdba hard core
unlimited
dmdba soft data
unlimited
dmdba hard data
unlimited
修改配置文件后重启服务器生效。
切换到 dmdba 用户,查看是否生效,命令如下:
[root@localhost ~]# su dmdba
[root@localhost ~]# ulimit a
参数配置已生效。
设置参数临时生效
可使用 dmdba 用户执行如下命令,使设置临时生效:
[root@localhost ~]# ulimit n 65536
[root@localhost ~]# ulimit u 65536
三、目录规划
1.可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 目录下。2.规划创建实例保存目录、归档保存目录、备份保存目录。
##实例保存目录
[root@localhost ~]# mkdir p /dmdata/data
##归档保存目录
[root@localhost ~]# mkdir p /dmdata/arch
##备份保存目录
[root@localhost ~]# mkdir p /dmdata/dmbak
注意
使用 root 用户建立目录,待 dmdba 用户建立完成后需将文件所有者更改为 dmdba 用户,否则
无法安装到该目录下
四、修改目录权限
将新建的路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
给路径下的文件设置 755 权限。命令如下:
[root@localhost ~]# chown R dmdba:dinstall /dmdata
[root@localhost ~]# chmod R 755 /dmdata
五、预设安装程序的临时目录
创建安装程序的临时目录 /opt/tmp文件夹下。命令如下:
临时目录的所属用户修改为 dmdba,用户组修改为 dinstall。命令如下:
给路径下的文件设置 777 权限。命令如下:
[root@localhost ~]# mkdir p /opt/tmp
[root@localhost ~]# chown R dmdba:dinstall /opt/tmp
[root@localhost ~]# chmod R 777 /opt/tmp
六、数据库安装
6.1 挂载镜像
DM_INSTALL_TMPDIR来指定安装程序的临时目录。
执行如下命令进行安装。
按需求选择安装语言,没有 key 文件选择 "n",时区按需求选择一般选择 “21”,安装类型选择“1”,安装目录按实际切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
[root@localhost ~]# cd /opt
[root@localhost opt]# mount o loop dm8 20240712 x86 rh7 64 /mnt
6.2命令行安装
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。
设置安装程序的临时目录。如不设置可能会提示:安装程序临时目录(/tmp)可用空间为1785M。安装程序需要至少2G的临时空间,请调整临时目录的空间或设置环境变量情况配置,这里示例使用默认安装位置。
[root@localhost opt]# su dmdba
[dmdba@localhost opt]# cd /mnt
[dmdba@localhost mnt]# export DM INSTALL TMPDIR=/opt/tmp
[dmdba@localhost mnt]# ./DMInstall.bin i
按需求选择安装语言,没有 key 文件选择 "n",时区按需求选择一般选择 “21”,安装类型选择“1”,安装目录按实际情况配置,这里示例使用默认安装位置。
数据库安装完成后,需要切换至 root 用户执行此命令
/home/dmdba/dmdbms/script/root/root installer.sh 创建 DmAPService,否则会影响数据库备份。
七、DISQL 登录数据库和创建表空间
7.1 DISQL 登录数据库
Linux 登录 disql。
使用SSH工具连接云主机。
disql登录方式是:
:./disql username/password@IP:PORT
登录成功后执行下列SQL语句:
SELECT name AS 名称,CREATE_TIME AS 创建时间 FROM SYS.V$DATABASE;
7.2 创建表空间
登录云主机,创建表空间TEST,包含两个数据文件,存放在/dmdata/data/DAMENG目录下。两个数据文件分别为TEST01.DBF,TEST02.DBF。文件初始大小为100M或128M,每次自动扩展1M,最大扩展2G。
使用客户端DM管理工具连接到云服务端,执行以下SQL语句:
SELECT * FROM SYS.V$TABLESPACE WHERE NAME='TEST'
八、用户及权限管理
习题一:创建用户
创建用户TEST,密码为Dameng123,默认表空间为TEST。
习题二:创建角色并授予系统权限
创建ROLE1角色,授予public权限;授予创建表、创建视图和创建索引的权限。
习题三:授予对象权限
将DMHR实例DEPARTMENT表、EMPLOYEE表的查询权限授予角色ROLE1;
将DMHR实例EMPLOYEE表中EMAIL字段、PHONE_NUM字段的更新权限授予角色ROLE1。
习题四:回收对象权限(注意:须表级回收,否则出错!可将图形化列级修改后的SQL语句复制粘贴到查询页面,修改后执行)
回收更新dmhr.employee.email和dmhr.employee.phone_num权限。
习题五:授予用户角色,回收角色创建索引权限
授予TEST用户ROLE1角色;
回收ROLE1创建索引权限。
正确答案: (1) create user "TEST" identified by "Dameng123" default tablespace "TEST"; (2) create role "ROLE1"; grant "PUBLIC" to "ROLE1"; grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "ROLE1"; (3) grant UPDATE("PHONE_NUM") on "DMHR"."EMPLOYEE" to "ROLE1"; grant SELECT on "DMHR"."DEPARTMENT" to "ROLE1"; grant UPDATE("EMAIL") on "DMHR"."EMPLOYEE" to "ROLE1"; grant SELECT on "DMHR"."EMPLOYEE" to "ROLE1"; (4) revoke UPDATE on "DMHR"."EMPLOYEE" from "ROLE1" cascade; (5) grant "ROLE1" to "TEST"; revoke CREATE INDEX from "ROLE1";
九、分别使用DM管理工具、SQL、CTAS方式创建表
9.1 添加表
(1)在TEST模式下创建学生信息表(STU)和课程表(COURSE),用来存放学生和课程信息。
(2)设置两张表的主键信息。
STU表中存放所有学生的信息,STU表结构如下:
答案如下:
9.2 SQL语句创建表
(1)创建学生课程选修表ELECTIVE,用来存放学生选修课程信息,存放在TEST用户下。
(2)设置该表的主键、外键信息。
ELECTIVE表结构如下:
答案如下:
9.3 数据库查询与操作
1、在DMHR模式下,查询工资为8000~12000元的员工信息。
2、在DMHR模式下,查询姓名为两个汉字且姓“周”的员工的姓名、职务、工资及提高20%后的工资,并用中文显示列名。
3、在DMHR模式下,查询2012年以后入职的员工信息,要求显示员工的姓名、所属部门、电子邮箱、电话号码、入职日期和工资。
4、在DMHR模式下,从员工表查询员工数量大于100的部门,要求显示部门名称、员工数量,并用中文显示列名。
5、在LIBRARY.TBL_BookInfo中检索出书名中带有“学”字,但又不带有“中学”二字的图书的书名、出版社、作者及出版日期,并用中文显示列名。
十、查询数据
dmhr的实训任务:
1.在DMHR模式下,查询工资为8000~12000元的员工信息
2.在DMHR模式下,查询姓名为两个汉字且姓“周”的员工的姓名、职务、工资及提高20%后的工资,并用中文显示列名。
3.在DMHR模式下,查询2012年以后入职的员工信息,要求显示员工的姓名、所属部门、电子邮箱、电话号码、入职日期和工资。
4.在DMHR模式下,从员工表查询员工数量大于100的部门,要求显示部门名称、员工数量,并用中文显示列名。
5.在DMHR模式下,从员工表中中检索出姓名中带有“王”字,但又不带有“金”字的员工姓名、员工邮箱、员工电话、入职时间并用中文显示列名。
6.在DMHR模式下查询职务为“总经理”(job_id='11')、“总经理助理”(job_id='12')、“秘书”(job_id='13')员工信息。
7.在DMHR模式下,从员工表中检索出电话号码为空的员工信息。
8.在DMHR模式下查询员工姓名长度为3的员工信息。(LENGH(str)函数)。
9.在DMHR模式下查询员工信息,并显示员工电话号码的前3位。(函数substr(str,start,长度))
10.在DMHR模式下查询员工信息,并显示员工电话号码的后3位。(函数right(str,3))
11.在DMHR模式下查询员工信息,使入职日期的显示格式为“yyyy.mm.dd”。
12.在DMHR模式下查询员工信息,将姓名与电话号码合并为一列(concat(str1,str2))
13.在DMHR模式下查询员工信息,并按工资降序排序。
14.在DMHR模式下查询员工表中,前10的记录。
15.在DMHR模式下查询员工表中,前1%的记录。
16.在DMHR模式下查询员工表中工资超过20000元的部门。
17.在DMHR模式下查询总经理岗位(job_id='11')工资比所有项目经理岗位(job_id='32')工资高的员工信息。
答案如下:
十一、创建及使用视图和索引
1、创建名为DMHR.V_WUHAN_ADMIN_EMPLOYEES的视图,视图数据是部门名称为“行政部”且所在城市为“武汉”的员工的员工编号、姓名、电子邮箱、 所属部门、职务、办公城市。
2、创建DMHR.V_HIGH_SALARY_EMPLOYEES视图,包含薪资大于15000的员工的员工编号、员工姓名、电子邮箱、职位ID和薪资。
3、创建名为DMHR.V_JOB_EMPLOYEE_COUNT的视图,在表EMPLOYEE的基础上,统计各职位的人员数量。
4、查询DMHR模式下的普通视图的模式名和视图名。
5、在DMHR模式下,为表EMPLOYEE的DEPARTMENT_ID字段建立名为DMHR.IDX_EMPDEP的位图索引,并利用DMHR.IDX_EMPDEP位图索引查询部门ID为104的数据,显示员工ID、员工姓名、电话号码、电子邮箱。
更多推荐
所有评论(0)