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
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成功
su
与su -
都是用来切换用户的命令,简单说它们之间的区别就是:su -
切换的干净彻底,而su
切换用户却拖泥带水。
su username
,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。
su - username
,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~
,环境变量
即刻切换到指定目录的环境变量。
ENDING
希望大家都能顺利通过考试,切记考试中一定一定要仔细审题,目录、名字等等千万不要弄错了。。。盆友们,下次见~~~