DCA考试整体难度适中,有 ORACLE的经验相对容易,内容上大部分兼容oracle。考试时间2小时,全为上机实操,包含:数据库 安装、实例创建、参数修改、创建表空间、创建用户、角色、权限管理; 创建表、导入脚本数据、约束、索引、视图等;物理备份还原、逻辑备份还原;DM 作业、 ODBC 配置等。


 达梦数据库发展至今也很多年了,在使用习惯上做了很多的适配,达梦的图形化管理工具基本上支持日常百分之七八十左右的操作,非常人性化,非常强大。支持国产、相信总有一天我们国家的系统均能自给自足、哈哈~~

环境准备


进入正题,在日常练习学习中,需要准备的环境如下:


操作系统:Windows Server 版,Windows 7以上更高版本
内存:4G及以上
硬盘:40G及以上的连续硬盘空间
虚拟机:VMware(如果真机环境是银河麒麟ky10.x86_64,则不需要虚拟机)
实验环境操作系统:银河麒麟ky10.x86_64(麒麟操作系统比较吃内存,建议分配2G以上的内存)/CentOS7/redhat7也可
数据库:DM8安装包官网可下载,(默认开发版本有一年的试用期,安装的时候可以暂时不注册key)


在本机上装VMware的朋友们要注意啦,建议win10操作系统以上的使用VMware16及以上版本,否则可能会出现一启动虚拟机就蓝屏的情况。在VMware上装麒麟数据库时,可选择Linux  CentOS7/redhat7 的选项进行安装。



安装及使用文档达梦官网有特别详细的说明,这里就不作过多叙述,可参照以下网站内容,打开网页的时候注意一下浏览器的兼容性,建议使用IE外的其他浏览器,谷歌呀、firefox之类的打开,我就遇到过IE打开没有显示完整的情况,当时还以为网站上什么详细的内容都没有写呢,哈哈。终究是我格局小了,文档写的可详细了。

接下来我主要介绍一下学习考试中踩过的坑,以数据库安装用户为dmdba为例................


设置图形化界面:



对于我们这些懒人来说,当然特别喜欢使用图形化界面了。要启动图形化界面,首先需要进行设置。



( 1 )第一次进入虚拟机,root用户下执行  xhost + 


root@KylinDCA03  
  桌面 
  ]# xhost + 
 
 
access control disabled, clients can connect from any host

( 2 )查看 root 用户的 DISPLAY 变量值



[root@KylinDCA03  
  桌面 
  ]# echo $DISPLAY 
 
 
:0.0



( 3 )切换 dmdba 用户 



[root@KylinDCA03  
  桌面 
  ]# su - dmdba



( 4 )设置 dmdba 用户的 DISPLAY 变量值为步骤( 2 )中的值(仅对当前会话生效)



[dmdba@KylinDCA03 ~]$ export DISPLAY 
  =:0.0



如果不想每次调用图形化界面都设置一遍,可将设置写到环境变量中 



cd 
 
 
 

   vi .bash_profile



银河麒麟redis工具 银河麒麟基于哪个linux_字段


export DISPLAY=:0.0

修改完成保存后,执行 source .bash_profile

安装前文件打开数设置

为了避免安装或使用过程中出现超过最大打开文件数之类的错误,可在安装前对最大文件数进行检查或设置。

ulimit -a 查询

core file size          (blocks, -c) unlimited
 data seg size           (kbytes, -d) unlimited
 scheduling priority             (-e) 0
 file size               (blocks, -f) unlimited
 pending signals                 (-i) 11341
 max locked memory       (kbytes, -l) 64
 max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
 pipe size            (512 bytes, -p) 8
 POSIX message queues     (bytes, -q) 819200
 real-time priority              (-r) 0
 stack size              (kbytes, -s) 8192
 cpu time               (seconds, -t) unlimited
 max user processes              (-u) 11341
 virtual memory          (kbytes, -v) unlimited
 file locks                      (-x) unlimited open files 默认1024
cat /proc/sys/fs/file-max 可查询打开文件数可设置的最大值

(1)使用 编辑器打开 /etc/security/limits.conf 文件进行设置

在最后添加四条语句,需添加的语句如下:

dmdba hard nofile 102400
 dmdba soft nofile 102400root hard nofile 102400
 root soft nofile 102400

重启服务器后永久生效

(2)使用 ulimit -n 数值 调整 

ulimit -n 102400
设置参数后临时生效 

小写查询表/执行存储过程报错

这个是数据库大小写敏感的问题。数据库在初始化的时候选择是否大小写敏感,默认是大小写敏感。这时执行的 SQL 在到解释器那层解析时,会自动转换为大写名称,但数据库存的小写对象。这样一来,在执行查询表或调用存储过程时,数据库解释器自动换行成大写对象,而大写对象在数据库中是不存在的。解决方案可以加上""(双引号)再执行,如:select * from "aaa";还是建议大家最好是使用大写进行创建。

密码的修改策略


PWD_POLICY 参数指定系统的口令策略,默认为 2 ;


系统支持的口令策略有:


⚫ 0 无策略


⚫ 1 禁止与用户名相同


⚫ 2 口令长度不小于 9


⚫ 4 至少包含一个大写字母( A-Z )


⚫ 8 至少包含一个数字( 0-9 )


⚫ 16 至少包含一个标点符号(英文输入法状态下,除 “ 和空格外的所有符号)


口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4 ,则设置口


令策略为 2+4=6 即可。


select    *  
  from    v$parameter t  
  where    t 
  .   name =  
  'PWD_POLICY' 
  ; 
  
alter    SYSTEM  
  set    'PWD_POLICY'  
  = 6  
  BOTH   ;


密码带有特殊字符的登录处理:

如果含有特殊字符,则需要用引号扩起来

例(1)alter user hrtest IDENTIFIED by "Dameng@123";

例(2)/dm8/bin/disql sysdba/'"dameng@123":5236' 

收集到的归档日志不连续错误解决

执行CHECKPOINT(100);

sql数据的导入(DM 使用 start 或者`)

(1)命令行方式

方法一:SQL> start /dm8/backup/JOB.sql
方法二:SQL> ` /dm8/backup/JOB.sql

(2)图形化管理工具的窗口方式

` /dm8/backup/JOB.sql

sql数据导入常见问题

在学习过程中,有看到其他的学习伙伴在导入时遇到了很多问题,也简单总结一下。同伴使用的时图形化页面进行建表,图形化界面建表的内容可选项非常多,稍不留意就可能设置错误 。其实定位问题还是蛮简单的,建议可以从以下几个方面进行排查:

(1)各字段的字段类型和长度是否正确

(2)主键字段是否正确(有没有建错主键)

(3)是否包含自增长序列

(4)约束是否存在语法错误

(5)外键字段是否正确

第一点需要细致,就不过多叙述;

第二点,作为主键字段,一定要保证主键字段的数据时唯一且非空的

第三点,也需要细致,这个当时是不需要自增长的,同伴在用图形化界面建表的时候不小心给选中了这一个

第四点:约束这块一定要注意语法,有可能建表的时候系统并不能识别出有语法错误,需要仔细核对约束字段的字段类型,当时要求的是对一个日期型格式字段进行日期限定约束,同伴直接用字段<'20010101'的方式设置的,实际应该使用 字段 < date '2001-01-01'的方式进行设置,由于设置错误,建表时系统并未识别出错误,导入的时候报错了:字符串转化错误(记不大清楚了,反正类似的错误),由于错误没有指定哪个字段的问题,所以找这个问题还是花了些时间

第五点:外键字段:关联的是另外一张表的主键字段,对于本表来说,一定要选择与另一张表同一个意义字段。当时同伴就误选成本表的主键字段,导致导入的时候一之报错。

推荐一个方法,在自己无法确定哪个环节出问题的时候,可以选择先禁用所有基础表相关的主键、约束、外键等等特殊设置,再进行导入。如果导入成功,再启用一个特殊设置,清空表后重新进行导入,如果导入成功,则进行测试下一个设置,如果导入不成功,那就是这个设置的问题,虽然方法是笨了点,但好使,哈哈。

ODBC 的安装:


( 1 )解压


[root@KylinDCA03 opt]# tar -zxvf unixODBC-2.3.0.tar.gz


( 2 )源码安装三部曲(配置、编译、安装)


[root@KylinDCA03 opt]# cd unixODBC-2.3.0/ 
  
[root@KylinDCA03 unixODBC-2.3.0]# ./configure 
  
[root@KylinDCA03 unixODBC-2.3.0]# make 
  
[root@KylinDCA03 unixODBC-2.3.0]# make install


( 3 ) 配置 odbc.ini 数据源信息和 odbcinst.ini 驱动信息


[root@KylinDCA03 unixODBC-2.3.0]# cd /usr/local/etc/ 
  
(/usr/local/etc/:如果没有修改安装目录,默认会安装到此路径下)
    
[root@KylinDCA03 etc]# vim odbcinst.ini 
  
[    DM8 ODBC DRIVER 
   ] 
   
Description = ODBC DRIVER FOR DM8 
   
Driver = /dm8/bin/libdodbc.so
     
[root@KylinDCA03 etc]# vim odbc.ini
  
[    DM8 
   ] 
   
Description = DM ODBC DSN 
   
Driver =     DM8 ODBC DRIVER 
   
SERVER = localhost 
   
UID = SYSDBA 
   
PWD = Dameng123 
   
TCP_PORT = 5236


使用 dmdba 用户执行 isql 测试连接是否正常:


su - dmdba 


isql dm8 -v (dm8与odbc.in中的设置对应,设置和调用均不区分大小写)


LD_LIBRARY_PATH和DM_HOME,配置了 LD_LIBRARY_PATH  环境变量 才能调用isql成功


susu -都是用来切换用户的命令,简单说它们之间的区别就是:su -切换的干净彻底,而su 切换用户却拖泥带水。

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量
即刻切换到指定目录的环境变量。


ENDING

希望大家都能顺利通过考试,切记考试中一定一定要仔细审题,目录、名字等等千万不要弄错了。。。盆友们,下次见~~~