近期,有幸在公司的支持下,参与了达梦的DCA培训考试,考试内容还是很全面的,尽管可能要求掌握的深度不需要特别深,但覆盖的面确实很全。下来后,我自己在本地把相关的内容用命令行的方式再实现了一遍。因有要求,不能泄露考题内容,所以不会涉及题目本身,只是相关内容而已;而且考试过程,为了提高效率和正确率,大家应该都会使用图形化操作完成。
一.命令行安装
首先,肯定就是在给定的环境下,安装达梦数据库,考试的时候一般这些环境都是配置好了的,但我们自己环境实验,可能就要检查配置了,比如是否有安装限制,查看最大可打开文件数
ulimit -a
#临时设置,仅对当前会话生效
ulimit -n 20480
1.加载镜像内容,考试不用 mount -o loop /opt/dm8* /mnt
2.查看/tmp内存
df -h | grep tmp
若tmp临时目录空间太小,要扩大一点,否则解压完安装文件就报错了。
mount -o remount,size=4G /tmp
3.关闭防火墙,防火墙可以导致网络问题,干扰正常安排,可以直接关闭。
systemctl stop firewalld
4.selinux是linux的安全设置,建议也关闭了
vi /etc/sysconfig/selinux
/selinuc* =disable
5.建立用户,建立规划安装用户,不要直接使用root安装
1) id dmdba 检查安装用户是否已经存在,存在就可以跳过2、3步。
2) group add dinstall,建立安装用户组
3) useradd -g dintsall dmdba,建立安装用户,并加入到用户组中
4) mkdir /dm8 创建安装目录
5) chown dmdba:dinstall -R /dm8 更改安装目录的所有者为安装用户,后面才能读写目录
6.配置环境变量
1)vi .bash_profile
export DM_HOME=/DM8
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
echo $DM_HOME
source .bash_profile
7.静默安装开始,下面命令执行后按交互式菜单安装即可。
./DMI* -i
8.实例初始化
1)用dmdba用户执行实例初始化,若不是dmdba,可以用 su – dmdba切换用户。
2)使用dminit自带命令直接初始化,该指令在/dm8/bin目录下,可参考如下指令初始化
# dminit path =/dm8/data db_name=DM02 instance_name=DM02 port_num=5236
9.注册实例
使用root用户执行下面脚本,在系统中注册服务。该脚本在/dm8/script/root目录下,可参考如下指令完成注册
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DM02/dm.ini -p DM02
10.启动实例
systemctl start DmServiceDM02.service
注:可用以下两种方式查看是否启动成功
ps -ef |grep dmserver 或 netstat -ntl | grep 5*
二.表空间操作
创建表空间 Create tablespace tbsprod DATAFILE '/dm8/data/DMTEST3/tbs/tbsprod01.dbf' size 32; 默认自动扩展了
修改表空间的名字:Alter tablespace TBSPROD rename to TBSPRODTEST;
更改表空间文件大小:Alter tablespace “TBSPROD” resize datafile '/dm8/data/DMTEST3/tbs/tbsprod02.dbf' to 64;
添加数据文件:Alter TABLESPACE TBSPROD ADD DATAFILE '/dm8/data/DMTEST3/tbs/tbsprod02.dbf'size 32;
以下三步可完成表空间文件迁移:
表空间文件脱机:alter tablespace “TBSPROD” offline;
表空间文件迁移:alter tablespace “TBSPROD” rename datafile '/dm8/data/DMTEST3/tbs/tbsprod01.dbf' to '/dm8/data/DMTEST3/tbsprod01.dbf';
表空间文件联机:alter tablespace “TBSPROD” online;
修改表空间数据文件的位置
alter TABLESPACE TBSPROD DATAFILE '/dm8/data/DMTEST3/tbs/tbsprod02.dbf' AUTOEXTEND off; 修改为不自动扩展
alter TABLESPACE TBSPROD DATAFILE '/dm8/data/DMTEST3/tbs/tbsprod02.dbf' AUTOEXTEND on NEXT 2 maxsize 1024; 开启自动扩展,指定范围
Select * from DBA_DATA_FILES; 查看表空间的数据文件
select * from v$tablespace; 查看存在的表空间
Select * from v$huge_tablespace; 查看大表空间
临时表空间
select para_name,para_value from v$dm_ini where para_name like'%TEMP%' 查看临时表空间参数
sp_set_para_value(2,'TEMP_SIZE',128); 临时表空间大小
三.模式&用户、角色操作
创建用户,因创建用户就同步会创建模式
create user “USERTEST” identified by “123456” default tablespace “TBSPROD”;
Alter user USERTEST identified by …. 修改用户密码
Alter user USERTEST ACCOUNT lock(unlock); 用户锁定解锁
SELECT GRANTEE,PRIVILEGE,TABLE_NAME FROM DBA_TAB_PRIVS WHERE GRANTEE='aaa';查看用户权限信息
REVOKE CREATE TABLE FROM TEST; revoke VTI FROM aaa; 撤销权限
DROP USER USERTEST; 删除用户
创建角色
CREATE ROLE ROLE1;
GRANT CREATE TABLE TO ROLE1; 给角色分配系统权限
GRANT UPDATE ON SYSDBA.EMP TO ROLE1; 给角色分配对象权限
四.表操作
创建表:
create table t_usertest(
userid int,
username varchar(20) ) tablespace tbs;
修改字段:
alter table t_usertest modify username not null;
添加字段:
alter table t_usertest add phonenumber varchar(30) unique ;
alter table t_usertest add sex bit;
alter table t_usertest add email varchar(20);
删除字段:
alter table t_usertest drop column email;
外键(引用的是另一张表的主键):
create table t_emp
(emp_id int constraint pk_emp_empid primary key,
emp_name varchar(20),
dept_id int )
添加非空约束
create table test.t6(id int);
alter table test.t6 alter column id set not null;
create table “TEST”.”T5″
{ “ID” INT not null }
外键约束
create table test.t10(sid int PRIMARY key,pid int);
create table test.t11(id int PRIMARY key , sid int FOREIGN key REFERENCES test.t10(sid));
五.索引
创建普通二级索引
create index “TEST”.”TAB_IDX” on “TEST”.”TABLE_1″(“ID”) storage(initial 1,next 1,minextents 1,on “TEST”);
六.视图
创建视图,简单视图和复杂视图,复杂视图的关键就是select语句,这里就只写简单视图了。
在模式test下创建视图cw
create view test.cw as
select employee_id,enployee_name salary from dmhr.employee
七.备份
(一)物理备份
1、全量备份(冷备)需关闭服务(我这次考的是物理热备,考虑完整性,我把冷备也放这里了)
A、关闭数据库服务
systemctl stop DmServiceDM02.service
或 /bin ./Dmservice.sh stop
B、启动dmrman命令行
进入dmdba /dm8/bin
./dmrman
C、开始冷备
RMAN> backup database '/dm8/data/DM02/dm.ini' full;
2、全库还原
A、关闭待还原数据库服务
systemctl stop DmServiceDM03.service
B.把DAMENG的数据还原到DM03中
restore database '/dm8/data/DM03/dm.ini' from backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_*;
C、恢复数据库
recover database '/dm8/data/DM03/dm.ini' from backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_*;
D、更新db_magic
recover database '/dm8/data/DM03/dm.ini' update db_magic;
至此就可以启动数据库,验证恢复情况了。
注:查看备份数据
show backupset'/dm8/data/DM03/dm.ini' from backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_*;
(二)物理热备
一定要开归档!!!也是考试内容。
1.开启归档。
A、首先是建立归档文件路径mkdir /dm8/arch
B、用./disql查看归档状态
./disql username/passwd
select name,status$,arch_mode from v$database
C、开归档需要在mount配置状态
alter database mount;
D、添加归档
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=0';
E、开启归档
alter database archivelog;
F、恢复数据库到open状态;
alter database open
G、再次查看状态select name,status$,arch_mode from v$database ;显示状态为Y,表示开启成功。
2. disql下备份
整库全备:backup database full backupset '/dm8/backup/fullbak3';
整库增量备:backup database increment backupset '/dm8/backup/incr03';
(三)逻辑备份
逻辑导出整库
/dm8/bin/dexp username/passwd file=dexp01.dmp log=dexp01.log directory=/dm8/backup/dexp full=y
逻辑导入
/dm8/bin/dimp username/passwd file=/dm8/backuo/dexp/dexp01.dmp
八. 数据迁移
./disql下,使用 start [path]/[filename].sql 执行sql脚本,导入数据
九.作业
call SP_CREATE_JOB('WORK1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('WORK1');
call SP_ADD_JOB_STEP('WORK1', 'SELECT', 0, 'select * from dmhr.employee;', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('WORK1', 'DIAODU_1', 1, 2, 1, 15, 0, '10:04:02', NULL, '2023-08-15 10:04:02', NULL, '');
call SP_JOB_CONFIG_COMMIT('WORK1');
十.ODBC开发配置
1、在/opt中,解压
tar -xzvf unixODBC-2.3.0.tar.gz
注:验证gcc包,因为在安装过程中要使用到GCC包,考试的时候也可跳过,这个环境是没问题的。 rpm -aq | grep gcc*
2、进入odbc路径:
A.配置ODBC ./configure –enable -gui=0
B.编译并安装 make&&make install
C.在/usr/local/etc 中编辑配置文件
编辑odbc.ini文件:
执行命令:vi odbc.ini 插入以下信息:
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
编辑odbc.ini文件:
执行命令:vi odbcnst.ini 插入以下信息:
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
切到dmdba账户连接
isql dm8
暂无评论内容