达梦数据库(DM8)基本使用及DCA考试心得

达梦数据库(DM8)基本使用及DCA考试心得

达梦数据库是一款完全自主原创的国产数据库。近些来的不断发展,达梦数据库在中国不断壮大,与政府及事业单位应用广泛。有幸在上年暑期参加了达梦举办的达梦精英挑战赛,认识接触到了达梦数据库,并有幸参加了DCA考试。因此发此博文记录。

DM8的安装

本次DM的安装均在中标麒麟7的操作系统下进行,其他Linux系统无独有偶,windows系统请自行尝试:

  1. 安装之前: 请检查系统配置,使用ulimit -a命令查看参数(主要注意参数如下)
    在这里插入图片描述
    (获取你可能发现你的open files不够。咋办?)在这里插入图片描述
设置文件打开数 open files(临时方法,仅针对会话生效 ulimit -n):
[root@localhost opt]# ulimit -n 102400
[root@localhost opt]# ulimit -n
102400
设置文件打开数(修改配置文件,永久生效):
[root@localhost opt]# vim /etc/security/limits.conf
增加
dmdba soft nofile 10240
dmdba hard nofile 65536
  1. 安装用户组和安装用户(数据库推荐由一个专门dba用户统一管理,而不是root)
[root@localhost opt]# groupadd dinstall
[root@localhost opt]# useradd -g dinstall dmdba
  1. 创建安装目录及安装操作(本次使用图形化安装(方便!!),命令行安装可看最后附件。);
[root@localhost opt]# mkdir /dm8                  #用于安装数据库的目录
[root@localhost /]# chown dmdba:dinstall /dm8     #切换属主属组
[root@localhost /]# chmod 755 /dm8                #更改目录权限

挂载 iso 镜像文件:
[root@localhost /]#mkdir /mnt/dm
[root@localhost /]# mount /opt/dm8_20210203_x86_rh6_64_ent_8.1.1.172.iso /mnt/dm
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost /]# su - dmdba
[dmdba@localhost ~]$ cd /mnt/dm
[dmdba@localhost dm]$ ./DMInstall.bin             #执行可视化安装

!!!注:若不能成功唤起可视化图形界面可用以下方法解决:

出现上述错误是图形化界面参数未设置好。使用下列方法设置图形化界面:
图形化界面设置(root 执行 xhost +,并查看 DISPLAY 变量):
[root@localhost 桌面]# xhost +
access control disabled, clients can connect from any host
[root@localhost 桌面]# echo $DISPLAY
:0
[root@localhost 桌面]#
设置 dmdba 用户的 DISPLAY(仅对当前会话生效)
[dmdba@localhost dm]$ echo $DISPLAY
[dmdba@localhost dm]$ export DISPLAY=:0
[dmdba@localhost dm]$ ./DMInstall.bin

在这里插入图片描述
切记用root执行!root执行!root执行!!!
4. 安装完成后主要使用的工具汇总:(主要在/dm8/tool的路径下);
在这里插入图片描述

  1. 创建数据库及数据库示例管理(./dbca.sh,命令行操作可看最后附件):
    在这里插入图片描述
    在这里插入图片描述
    这步操作可按各自所需进行修改,若不修改可直接下一步直至完成。注意!!最后的命令也需要root执行!!!!!
  2. DM客户端的使用(./manager 达梦的可视化效果还是很好的,可以实现全部操作的可视化了)
    在这里插入图片描述
    其中新建查询sql与oracle相似。
  3. 表空间管理
    在这里插入图片描述
    使用创建表空间示例:
#创建表空间,默认自动扩展了
 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;   #查看大表空间

以上命令不会写也没事,可以通过manager管理工具进行可视化操作,操作简单命令,因此不展示了!

  1. 用户管理:
    在这里插入图片描述

示例:

#创建用户
  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;  给角色分配权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图:界面化操作简单明了,即便不会具体的sql,在界面依旧可以完成,同在DDL可以查看已操作的命令行sql语句!!

  1. 模式对象管理:
    DM 中一个用户可以拥有多个模式,一个模式只能归属于一个用户。
    Oracle 用户和模式是一对一,DM 可以一对多。
    创建用户,默认会创建一个同名的模式,也可以单独创建模式。
    默认情况下,用户查询同名模式下的对象。

    在模式下,可创建表,修改表,增加外键,索引 , 视图。。。。(语句与oracle基本类似)
    
创建表:
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 );

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图:图形化界面操作简单!!!!!!!!!!!!!!

10.备份与还原:
BAK_PATH 为数据库默认备份目录,生产环境建议修改此目录,避免磁盘损坏,备份文件
和源库数据文件同时损坏的情况。
./dmservice.sh root 打开!!!
保证DmAPService开启,需备份还原的数据库服务关闭!在这里插入图片描述
(./console tool目录下 dmdba用户打开
在这里插入图片描述
注意:表空间的还原和恢复(不需要更新数据库魔数)
数据库级的还原和恢复如果没有更新数据库魔数,则会启动失败。(需更新数据库魔数)
在这里插入图片描述

DCA考试

dca考试时长2小时,通过VLC远程连接服务器,按照考试试卷.txt进行操作即可,考试内容基本包含上述内容,且占大部分。可能还包含作业管理等等。整体难度适中,但考试一定要小心!!我就是因为没看清端口号,一直登不进数据库,还以为哪步操作错误了,看了半天日志。浪费了好多时间,太可惜了!!!总之:小心仔细,一定顺利通过考试的!!!!!

命令行操作:

(静默安装):./DMInstall.bin -i
dminit help 初始化创建数据库  
创建数据库  dmdba用户
dminit path=/dm8/data db_name=DMTEST instance_name=DMTESTSERVER port_num=5237
创建服务 root用户 /dm8/script/root   默认未启动
./dm_service_installer.sh -t dmserver -p DMTESTSERVER -dm_ini /dm8/data/DMTEST/dm.ini 
删除服务 root用户/dm8/script/root
./dm_service_uninstaller.sh -n DmServiceDMTESTSERVER
启动关闭服务 
DmServiceDMTESTSERVER stop(start) dmdba用户/dm8/bin/
#
systemctl stop DmServiceDMTESTSERVER3.service  root用户
dmserver dm.ini   dmdba到要启动的数据库的目录下/dm8/data/DAMENG  临时的关闭了就没了
图形化进入dmservice.sh root用户进入修改

冷备/全量备份:服务需关闭
1.    systemctl stop DmServiceDMSERVER.service        用root先关闭服务
2.    ./dmrman                                  dmdba用户/dm8/bin
3.    backup database '/dm8/data/DAMENG/dm.ini' full;  备份
4.    systemctl stop DmServiceDMTESTSERVER3.service   root用户关闭DMTESTSERVER3
5. restore database '/dm8/data/DMTEST3/dm.ini' from backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20200823_171641_696277';  把DAMENG的数据恢复到DMTEST3中
6.    recover database '/dm8/data/DMTEST3/dm.ini' update db_magic  还原
图形化进入console工具
backup database '/dm8/data/DAMENG/dm.ini' full;
restore database '/dm8/data/DMTEST/dm.ini' from backupset '/dm8/data/DAMENG/bak/DB_DAMENG_FULL_20200821_160405_556837';
recover database  '/dm8/data/DMTEST/dm.ini' update db_magic;
创建表空间
  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;   查看大表空间

创建用户
    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;  给角色分配权限

移动日志文件位置,一定要是mount状态
Alter database mount;
Alter database RENAME LOGFILE 'DMTEST301.log' to './redo/DMTEST301.log';

添加日志文件,在open状态
alter database add logfile '/dm8/data/DMTEST3/DATEST305.log' size 32;
添加日志文件
     alter database resize logfile '/dm8/data/DMTEST3/redo/DMTEST301.log' to 500;
     修改日志文件的大小
select * from SYS."V$RLOGFILE"; 查看重做日志信息     
select * from SYS."V$RLOG";  查看当前活跃的日志文件

数据迁移./dts            disql sysdba/SYSDBA@192.168.88.135:5236
 dmdba用户/dm8/bin   ./disql   disql    start /dm8/data/backup/dmhr.sql 导入数据文件

逻辑导出
    dexp help   dmdba用户/dm8/bin 
./dexp userid=sysdba/tls2008033:5239 directory=/dm8/data/bak file=dexpDAMENG_fulltest.dmp log=dexpDAMENG_fulltest.log full=y 
必须是sysdba用户进行全量导出

逻辑导入       dmdba用户/dm8/bin
  ./dimp userid=sysdba/SYSDBA:5242 directory=/dm8/data/bak file=dexpDAMENG_fulltest.dmp log=dexpDAMENG_fulltestimp.log full=y 

disql sysdba/SYSDBA@192.168.88.135:5236  
cat /etc/dm_svc.conf  查看网络配置属性 

执行DML语句(insert,update,delete,select) 需要commit或rollback;


创建索引
  create index idx_id on t_test(id);

物理备份和逻辑备份
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和 dimp 进行的备份还原。逻辑备份针对的是数据内容,不关心这些数据物理存储在什么位置
物理备份还原是对 数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 RMAN 工具进行的备份还原。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值