达梦数据库DCA考试题目及答案分享
- 1. NeoKylin Linux Server 7.0系统上安装DM8企业版本
- 2. 管理员部署一个数据库,用来存放员工信息和订单信息
- 3. 规划DMTBS表空间,用来存储企业员工信息和部门信息
- 4.创建用户
- 5.创建表
- 6.执行数据导入,将数据掺入EMP和DEPT表,脚本存放在/opt/script1.sql
- 7.为了保证数据库的安全性,企业要求管理员做好充分的备份工作。
- 8.执行/opt/script2.sh,保证数据不丢失
- 9 对数据库执行逻辑全库导出,
- 10 创建视图
- 11 创建索引
- 12 安装配置系统调用的ODBC驱动(安装包在/opt下
- 13 在CSDN,ITPUB及个人公众号发布一篇关于达梦数据库使用的博文
1. NeoKylin Linux Server 7.0系统上安装DM8企业版本
a) 软件安装在/dm8目录下
b) 以dmdba用户身份进行安装,如果用户不存在创建该用户?密码dameng123
具体步骤如下:
考前查看以及修改参数:
(1)查看防火墙状态:
systemctl status firewalld
systemctl stop firewalld
(2)查看glibc 以及gcc 包后期ODBC驱动会使用
rpm -qa|grep gcc
rpm -qa|grep glibc
如果没有的话需要安装这两个
(3)查看系统参数:
ulimit -a
设置最大文件打开数
vim /etc/security/limits.conf
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 10240
dmdba hard nproc 10240
临时生效:
ulimit -n 65536
(4)查看是否有dmdba用户如果没有创建用户
查看:cat /etc/passwd
id dmdba
创建dmdba用户:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
dameng 123
mkdir -p /dm8
chown -R dmdba:dinstall /dm8
ls -ld /dm8
挂载DM安装包镜像文件
mount -o loop /opt/dm8_setup_rh7.iso /mnt
cd /mnt
将DMInstall.bin 拷贝出来
先创建/opt/dm8_soft 文件夹存放DMInstall.bin
cd /opt
mkdir -p dm8_soft
chown -R dmdba:dinstall dm8_soft
chmod 775 DMInstall.bin
注意:切换到dmdba用户安装
su - dmdba
cd /opt/dm8_soft
[dmdba@localhost ~]$ ./DMInstall.bin -i
安装目录 放在 /dm8 下面
安装结束后root用户执行创建AP服务的脚本
/dm8/script/root/root_installer.sh
2. 管理员部署一个数据库,用来存放员工信息和订单信息
a) 数据文件存放到/dm8/data目录下
b) 数据库名DMDB,实例名DBSERVER,端口号5238
c) 数据库管理员的密码为Dameng123
d) 创建3组日志,每组日志大小为300M
e) 簇大小为16页,页大小为16K
f) 口令长度不小于6,禁止与用户同名,至少包含一个大写字母(A-Z)
g) 打开sqlserver兼容模式(sp_set_para_value(2,‘COMPATIBLE_MODE’,2);—重启数据库生效)
具体步骤如下:
使用dmdba在/dm8下创建data文件夹,backup文件夹
cd /dm8
mkdir -p backup
mkdir -p data
chown dmdba:dinstall backup
chown dmdba:dinstall data
cd /dm8/bin
./dminit help
./dminit PATH=/dm8/data DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5238 SYSDBA_PWD=Dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 LOG_PATH=/dm8/data/DMDB/DATA01.log LOG_SIZE=300 LOG_PATH=/dm8/data/DMDB/DATA02.log LOG_SIZE=300
LOG_PATH=/dm8/data/DMDB/DATA03.log LOG_SIZE=300
前台启动一次
注册数据库服务脚本
使用root用户
cd /dm8/script/root
./dm_service_installer.sh -t dmserver -p dbserver -dm_ini /dm8/data/DMDB/dm.ini
/etc/rc.d/init.d/DmServicedbserver
vi /dm8/data/DMDB/dm.ini
COMPATIBLE_MODE=3(兼容模式根据考试题更改) ---静态
PWD_POLICY=7(口令根据考试题更改)===7 ---动态
PWD_MIN_LEN=6 ---动态
ARCH_INI=1 (更改归档参数)
BAK_PATH = /dm8/backup 查看一下后面的备份路径在dm.ini里面指定备份还原路径
sp_set_para_value(1,'PWD_POLICY',0);
1-动态 2-静态
配置归档文件
cd /dm8/data/DMDB
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 2048
创建/dm8/backup 目录
更改之后记得重启数据库服务
./DmServicePROD restart
注:如果设置大小写敏感:CASE_SENSITIVE=1
3. 规划DMTBS表空间,用来存储企业员工信息和部门信息
a) 数据文件存储在/dm8/data/DMDB中
b) 包含2个数据文件,分别为DMTBS01.DBF和DMTBS02.DBF
c) 每个文件初始大小为64M,每次自动扩展2M,单个数据文件最大10G
具体步骤如下:
create tablespace "DMTBS" datafile '/dm8/data/DAMENG/DMTBS01.DBF' size 64 autoextend on next 2 maxsize 10240, '/dm8/data/DAMENG/DMTBS02.DBF' size 64 autoextend on next 2 maxsize 10240 CACHE = NORMAL;
4.创建用户
a)创建用户DMTEST, 密码为Dameng123,默认表空间为DMTBS
b)创建角色TESTROLE,角色TESTROLE具有创建表,创建视图,创建索引的权限。
c)将角色RESOURCE,TESTROLE赋给DMTEST用户,并赋予DMTEST用户查询dba_tablespaces的权限。
具体步骤如下:
create user "DMTEST" identified by "Dameng123" default tablespace "DMTBS"
default index tablespace "DMTBS";
创建角色:
create role "TESTROLE";
grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "TESTROLE";
授予角色给用户
grant "RESOURCE","TESTROLE" to "DMTEST";
grant SELECT on "SYS"."DBA_TABLESPACES" to "DMTEST";
5.创建表
在DMTEST用户下创建EMP和DEPT表,EMP表用户存放所有员工的信息,DEPT用户存放所有部门的信息,EMP表外键引用DEPT表的主键,EMP_ID为EMP主键,DEPT_ID为DEPT表的主键,存在DMTBS表空间中。
切换到test用户
cd /dm8/bin
./disql DMTEST/Dameng123:5237
创建表:(命令行创建)要先创建DEPARTMENTS表
create table DEPT (DEPT_ID INTEGER primary key ,
DEPT_NAME VARCHAR(30),
LOCATION_ID INTEGER,
LOCATION_ADDR VARCHAR(30))
tablespace DMTBS;
create table "EMP"
(
"EMP_ID" INTEGER NOT NULL,
"EMP_NAME" VARCHAR(20),
"EMAIL" VARCHAR(50),
"PHONE_NUM" VARCHAR(20),
"HIRE_DATE" DATE,
"JOB_ID" VARCHAR(10),
"MANAGER_ID" INTEGER,
"SALARY" INTEGER,
"DEPT_ID" INTEGER FOREIGN KEY REFERENCES DEPT(DEPT_ID),
PRIMARY KEY("EMP_ID")) tablespace DMTBS;
alter table 表名 rename column 旧列名 to 新列名;
alter table EMP rename COLUMN DEPT_IP TO DEPT_ID;
6.执行数据导入,将数据掺入EMP和DEPT表,脚本存放在/opt/script1.sql
具体步骤如下:
./disql DMTEST/Dameng123:5238
start /opt/script1.sql
7.为了保证数据库的安全性,企业要求管理员做好充分的备份工作。
a) 要求每次备份的文件统一存放/dm8/backup中。
b) 对当前数据库做一次完整的备份,备份名为DMDB_bak,保证数据能还原到失败前任意一个时刻;
c) 利用代理,设置JOB1,每周日晚22:00对数据库做完全备份,设置JOB2,周一、二、三、四、五、周六晚22:00对数据库做增量备份。
cd /dm8/bin
./dmrman
backup database to DMDB_bak backupset '/dm8/backup/';
RMAN>backup database'/dm8/data/DMDB/dm.ini' backupset '/dm8/bak';
JOB1
call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');
call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB1');
call SP_ADD_JOB_STEP('JOB1', 'B1', 5, '01000/dm8/backup/', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB1', 'd3', 1, 2, 1, 1, 0, '22:00:00', NULL, '2020-11-27 17:04:35', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB1');
JOB2
call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB2');
call SP_ADD_JOB_STEP('JOB2', 'B2', 5, '11000/dm8/backup|/dm8/bakcup/', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB2', 'd2', 1, 2, 1, 126, 0, '22:00:00', NULL, '2020-11-27 17:09:46', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB2');
8.执行/opt/script2.sh,保证数据不丢失
执行/opt/script2.sh
./disql
start /opt/script2.sh
还原数据库:
./dmrman
check backupset '/dm8/backup/';
RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup/ ';
RECOVER DATABASE '/dm8/data/DMDB/dm.ini' WITH ARCHIVEDIR '/dm8/arch';
RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC;
9 对数据库执行逻辑全库导出,
备份文件存放在/dm8/bakcup中,备份文件命名为:dmdb_full.dmp,日志文件命名为:dmdb_full.log
cd /dm8/bin
./dexp sysdba/Dameng123:5237 file=dmdb_full.dmp log=dmdb_full.log directory=/dm8/backup full=y
10 创建视图
create VIEW TEST.V_EMP AS SELECT * FROM TEST.EMPLOYEES WHERE HIRE_DATE > '1999-12-31' AND HIRE_DATE < '2004-01-01';
(可以用SYSDBA用户创建)
create view V_EMP as select * from EMPLOYEES where HIRE_DATE between to_date('1999-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss') and to_date('2003-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss');
select * from "TEST"."V_EMP";
11 创建索引
create index "IND_EMP_NAME" on "DMTEST"."EMP"("EMP_NAME");
12 安装配置系统调用的ODBC驱动(安装包在/opt下
安装配置系统调用的ODBC驱动(安装包在/opt下)
[root@loaclhost ~]# tar -xvf unixODBC-2.3.0.tar.gz
[root@loaclhost ~]# cd unixODBC-2.3.0/
[root@loaclhost unixODBC-2.3.0]# ./configure
[root@localhost unixODBC-2.3.0]# make
[root@localhost unixODBC-2.3.0]# make install
[root@localhost unixODBC-2.3.0]# odbcinst -j
[root@loaclhost unixODBC-2.3.0]# vi /usr/local/etc/odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5237
[root@loaclhost unixODBC-2.3.0]# vi /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so
[root@loaclhost unixODBC-2.3.0]# su - dmdba
[dmdba@loaclhost ~]$ isql dm8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> quit
ODBC接口
tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
--2.配置ODBC(root)
./configure --enable-gui=no
--3.编译ODBC
make
make install
--4.查看ODBC版本
odbc_config --version
--5.查看ODBC配置文件路径
odbc_config --odbcini
odbcinst -j
--6.配置ODBC.INI(/usr/local/etc/odbc.ini
)
cd /usr/local/etc
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5238
--7.配置odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
[root@DM01 etc]# chmod 775 odbc.ini
[root@DM01 etc]# chmod 775 odbcinst.ini
--8.测试ODBC
su - dmdba
isql dm8
13 在CSDN,ITPUB及个人公众号发布一篇关于达梦数据库使用的博文
大家可以自行发挥哈~~~
ps:
新手可以在考试的时候多使用图形化工具,考试只看结果不看实现方式,对新手来说图形化工具还是很友好的,避免了写大量sql 的方法。