DCA知识分享

DCA:初级认证管理员;
DCP:中级认证专业人士;
DCM:高级认证大师。

本篇文章主要分享DCA知识,达梦认证考试注重实操,需要有一定的东搜能力,相比Oracle、MySQL、PG等其他数据库认证的选择题要慎重很多,但内容相对比较基础。

一、查看相关信息:

cat /proc/version
uname -r
lscpu
cat /proc/cpuinfo
free -m
cat /proc/meminfo
df -h
df -h /tmp – 查看/tmp 空间,/tmp 建议至少 1.5G 以上
rpm -qa|grep glibc 、 ldd --version
rpm -qa|grep gcc 、 gcc –version

二、安装前规划:

修改限制条件:
vi /etc/security/limits.conf
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 65536
dmdba soft stack 65536
修改字符集:
echo “export LANG=en_US.UTF8” >> ~/.bash_profile
cat ~/.bash_profile
创建组、用户、授权、修改密码:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
创建安装目录:
mkdir /dm8
chown dmdba:dinstall -R /dm8/
chmod -R 755 /dm8

cd /dm8
mkdir data
mkdir arch
mkdir backup

三、安装DM数据库:

[root@localhost 桌面]# echo KaTeX parse error: Expected 'EOF', got '#' at position 28: …t@localhost 桌面]#̲ xhost + [root@… export DISPLAY=:0.0
cd /opt/
./DMInstall.bin
安装完成,提示运行脚本:
[root@KylinDCA03 桌面]# /dm8/script/root/root_installer.sh
注意:需要选择安装路径。
运行 dbca.sh 创建数据库 :
[dmdba@KylinDCA03 ~]$ cd /dm8/tool
[dmdba@KylinDCA03 tool]$ ./dbca.sh
注意:以下几步配置信息确认:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@KylinDCA03 network-scripts]# mv /dm8/bin/DmServiceDMSERVER.service 
/usr/lib/systemd/system/DmServiceDMSERVER.service 
[root@KylinDCA03 network-scripts]# systemctl enable DmServiceDMSERVER.service 
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → 
/usr/lib/systemd/system/DmServiceDMSERVER.service. 
[root@KylinDCA03 network-scripts]# systemctl start DmServiceDMSERVER.service

配置注册:

[root@dm8 root]# cd /dm8/script/root
[root@dm8 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER

数据缓冲区 :
用于缓存数据文件中的数据页。BUFFER 是从磁盘读出的数据页在内存中的镜像,由 INI
配置中的 BUFFER、FAST_POOL_PAGES、RECYCLE、KEEP 等确定大小,不同类型的缓冲区主要
表现为淘汰机制不同。
数据缓冲区的大小影响数据库的读写性能,OLTP 数据缓冲区占内存 40-60%,OLAP 可以
稍大;系统应尽量减少物理读,提高逻辑读。
从磁盘的数据文件中读取数据—物理读
从内存(数据缓冲区)读取数据—逻辑读

select * from v$bufferpool; --数据缓冲区 
select * from SYS."V$PARAMETER" t  WHERE name in ('BUFFER','FAST_POOL_PAGES','RECYCLE','KEEP'); 

修改数据缓冲区大小为500M(重启):

alter system set 'BUFFER'= 500 spfile;

重做日志缓冲区
重做日志是数据库与磁盘间的一层缓存,将随机的磁盘写转换成顺序写,日志缓冲区是
数据库和日志间的缓存对应 INI 参数 RLOG_BUF_SIZE
SQL 缓冲区
缓存 sql 语句、对应的执行计划、缓存结果集(需要开启结果集缓存,默认不开启)
SQL CACHE POOL,简称 SCP,对应 INI 参数 CACHE_POOL_SIZE,是用来存储包信息
(PACKAGE)、执行计划、结果集缓存的一片专用缓存区域,对于 SQL 类别比较多,或者 PKG
比较多、复杂的系统,建议将该参数调大。
参数为 USE_PLN_POOL,是否启动计划重用;为 0 时禁止计划重用,1 表示启动,默
认为 1。RS_CAN_CACHE,是否启动结果集缓存,默认为 0,不启用。
对应参数 CACHE_POOL_SIZE,如果 sql 较多、结果集缓存,可以适当调大 sql 缓冲区。
字典缓冲区
字典缓冲区是存在数据库对象的一片缓冲区,对应 INI 参数 DICT_BUF_SIZE,DM8 里面
数据对象其实对应的是系统表上的一些信息,内存中的数据对象是通过将系统表上的信息取
出并解析出来得到的,该缓冲区一是避免了频繁向磁盘请求获取系统表信息,二是可以减少
系统表信息解析开销。

select * from v$dynamic_tables t where T.NAME like '%DICT%'; 
select * from V$DICT_CACHE_ITEM; 
select * from V$DICT_CACHE; 
select name, type, value, sys_value, file_value from v$parameter t where name like  'DICT_BUF_SIZE'; 

主内存池(共享内存池)
当其他内存池(比如运行时内存池:虚拟内存池 vm pool 和会话池 session pool 等)
不够时,会先向主内存池申请空间。
服务器启动时从操作系统申请的一大片内存,后续服务器运行过程中,一般情况下,很
多需要内存分配的地方都是从该池分配,如果需要的内存大于配置值(MEMORY_POOL),共享内
存池也可进行自动扩展,INI 参数 MEMORY_EXTENT_SIZE 指定了共享内存池每次扩展的大
小,参数 MEMORY_TARGET 则指定了共享内存池能扩展到的最大大小.

select * from V$mem_pool; 
select name, type, value, sys_value, file_value from v$parameter t 
where name like 'MEMORY%'; 

运行时的内存池
特点:使用时申请,用完即释放。包含:虚拟内存池 vm pool、会话池 session pool、
排序区、HASH 区等。
排序区和 HASH 区
排序区:SORT_BUF_SIZE
少量的数据排序,优先在内存中排序,此时占用排序区;
大量的数据排序,内存中放不下,占用临时表空间排序。
如果业务经常有排序,可以适当调大排序区,提高效率。

select name, type, value, sys_value, file_value from v$parameter t where name  like 'SORT%'; 

HASH 区:HJ_BUF_SIZE
HASH 连接、HASH 分区占用哈希区。如果业务 hash 连接较多,可以调大哈希区。

select name, type, value, sys_value, file_value from v$parameter t where name  like 'HJ%';

HASH 区和排序区都属于虚拟缓冲区,实际申请时使用虚拟内存池或会话内存池。
虚拟内存池 VM POOL 和会话内存池 SESSION POOL
Sql 执行会占用会话池或虚拟池。
查看数据库进程:

[dmdba@KylinDCA03 DM]$ ps -ef|grep dmserver 

修改兼容模式(重启):
alter system set ‘COMPATIBLE_MODE’ =2 spfile;

四、表空间管理:

表空间是 DM 数据库的最大存储单元,所有数据都存储在表空间中。
表空间采用段(segment)、簇(extent)和页(page)的方式管理。
一个表空间可以包含一个或多个数据文件。一个数据文件仅能归属于一个表空间。
DM 物理文件包含:配置文件、控制文件、数据文件、联机日志(此四个文件必不可少,缺少 一个将无法正常启动)。
创建表空间:

create tablespace tbs DATAFILE 'TBS01.DBF' size 32;

表空间脱机
SYSTEM、ROLL、TEMP 表空间不能脱机。
表空间脱机后,该表空间中的数据将不能读写
alter tablespace tbs offline;
修改表空间
修改表空间添加数据文件:

alter TABLESPACE tbs add DATAFILE 'TBS02.DBF' size 128 AUTOEXTEND on NEXT 2 MAXSIZE 20480; 

修改表空间数据文件的扩展属性:

alter tablespace tbs DATAFILE 'TBS01.DBF' AUTOEXTEND on NEXT 2 MAXSIZE 	20480; 

alter tablespace tbs DATAFILE ‘TBS01.DBF’ AUTOEXTEND off;
修改表空间数据文件的大小:

alter tablespace tbs RESIZE DATAFILE 'TBS01.DBF' TO 128;

迁移表空间数据文件

alter tablespace tbs offline; 
alter TABLESPACE tbs RENAME DATAFILE 'TBS01.DBF' TO '/dm8/data/DM/TBS/TBS01.DBF'; 
alter TABLESPACE tbs RENAME DATAFILE 'TBS02.DBF' TO '/dm8/data/DM/TBS/TBS02.DBF'; 
alter tablespace tbs online;

五、用户和角色管理:

DM 默认的预定义用户:
SYS:系统内置用户,不允许登录。
SYSDBA:系统管理员,拥有几乎所有权限(除审计和强制访问控制)
SYSAUDITOR:系统审计管理员,具有审计相关权限。
SYSSSO:系统安全管理员,具有强制访问控制等权限;
SYSDBO:安全版本才有的用户,安全操作员。
创建用户

create user hrtest IDENTIFIED by Dameng123 DEFAULT TABLESPACE TBSTEST; 

用户锁定和解锁:

alter user hr ACCOUNT UNLOCK; 
alter user hr ACCOUNT LOCK; 

修改用户的默认表空间:

alter user hr DEFAULT TABLESPACE dmtbs; 

修改用户密码:

alter user hrtest IDENTIFIED by "Dameng@123"; 

删除用户:

drop user if EXISTS hr; 
drop user if EXISTS hr CASCADE; --生成环境慎用

赋予数据库权限(系统权限):

SQL> grant create table to hrtest;

查看当前用户拥有的权限:

select * from session_privs;

权限的回收:

SQL> revoke select on dmhr.employee from hrtest; 

操作已执行

SQL> revoke create table from hrtest; 

角色是权限的集合,角色使权限管理更加方便。
DBA:具有几乎所有权限(除审计和强制访问控制之外),默认赋给 SYSDBA 用户。
PUBLIC:具有对当前模式下对象的 DML 数据操作权限。
RESOURCE:具有在当前模式下对象定义权限(创建表、索引、视图等),
SOI:具有查询 sys 开头系统表的权限
VTI:具有查询 v$ 开头的动态视图权限(没有此权限,DM 管理工具上会报没有查询 v$视图 权限)

select * from dba_roles; 
create role r1; 
grant create table to r1; 
grant select on dmhr.department to r1; 
grant r1 to hrtest;

六、归档、备份、调度:

默认情况,DM 不开启归档。
归档是对 REDO 的归档。归档的目的是使数据库故障时可以恢复到故障的前一刻(完全恢
复),或者恢复到指定的时间点或指定 LSN(不完全恢复)。
开启归档的方法:
SQL 开启归档

alter database mount;
alter database add archivelog 'DEST=/dm8/arch,TYPE=local,FILE_SIZE=64';
alter database archivelog;
alter database open;

备份包含物理备份和逻辑备份。
物理备份是拷贝有效的数据页。逻辑备份是导出数据库中逻辑数据。
物理备份分为完全备份、增量备份;联机备份(热备)和脱机备份(冷备)。
完全备份是指一个备份包含指定数据库或表空间的所有数据;
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增
加或者被修改的文件;
增量备份包含差异增量备份和累积增量备份:
差异增量备份的基础备份集可以是全量备份,也可以是增量备份;
累计增量备份的基备份集只能是全量备份。
热备:指数据库启动状态下的备份
冷备:指数据库关闭状态下的备份。
备份级别:全库备份、表空间级备份、表级备份、归档备份。
物理还原是备份的逆过程;
恢复是使用归档将数据库恢复到最新状态或指定时间点;或使用备份集中的 redo 信息将数
据库恢复至一致性状态。
脱机备份(数据库关闭状态下的备份):
使用 dmrman 工具可以脱机备份

RMAN> backup database '/dm8/data/DM/dm.ini';

SQL 备份数据库
备份数据库

backup database; --全量备份 
backup database increment; --增量备份 
backup database full to ONLINEBAK_01 backupset 
'/dm8/backup/full/ONLINEBAK_01'; 
backup database increment BASE ON BACKUPSET 
'/dm8/backup/full/ONLINEBAK_01' to ONLINEBAKINCR_01 
backupset '/dm8/backup/incr/ONLINEBAK_01' ; 
backup database increment with BACKUPDIR '/dm8/backup/full/' to 
ONLINEBAKINCR_02 backupset '/dm8/backup/incr/ONLINEBAK_02' ;

逻辑备份
dexp/dimp 逻辑导出和导入
dexp 逻辑导出、dimp 逻辑导入四个级别:
全库(full=y)
按用户(owner=XXX)
按模式(schemas=XXX)
按表(tables=XX)
全库导出:

[dmdba@KylinDCA03 dexp]$ dexp userid=sysdba/Dameng123:5236 
directory=/dm8/backup/dexp file=full.dmp log=full.log full=y 

按用户导出:

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=HRTEST.dmp 
log=HRTEST.log owner=HRTEST 

按模式导出:

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=DMHR.dmp log=DMHR.log schemas=DMHR 

按表导出:

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=EMPLOYEE.dmp log=EMPLOYEE.log tables=DMHR.EMPLOYEE 

全库导入:

dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=impfull.log full=y 

按模式导入(将 A 模式导入到 B 模式,使用 REMAP_SCHEMA 参数):

dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=DMHR.dmp log=impDMHR.log REMAP_SCHEMA=DMHR:DMTEST 

作业管理:
创建代理环境
执行存储过程代理环境:sp_init_job_sys(1);
或界面上右击【代理】,选择【创建代理环境】
DM 管理工具创建 JOB:
JOB增量备份:
JOB 运行和日志查看
–查看job

select * from sysjob.sysjobs; 

–运行job

dbms_job.run(1640162093); 

–查看job运行日志

select * from SYSJOB.SYSJOBHISTORIES2; 

checkpoint(100); --执行完全检查点,解决刚开归档备份,报错归档日志不连续的问题

七、DM8 开发 :

JDBC 连接 DM 数据库
DM8 JDBC 编程注意事项
// 定义 DM JDBC 驱动串
String jdbcString = “dm.jdbc.driver.DmDriver”;
// 定义 DM URL 连接串
String urlString = “jdbc:dm://localhost:5236”;
ODBC 连接 DM 数据库
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
configure 时可以使用–prefix 参数指定安装路径
[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/
[root@KylinDCA03 etc]# ll
总用量 0
drwxr-xr-x 2 root root 6 12 月 22 16:56 ODBCDataSources
-rw-r–r-- 1 root root 0 12 月 22 16:56 odbc.ini
-rw-r–r-- 1 root root 0 12 月 22 16:56 odbcinst.ini
[root@KylinDCA03 etc]# vim odbcinst.ini
[root@KylinDCA03 etc]# vim odbc.ini
[root@KylinDCA03 etc]# cat odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so
[root@KylinDCA03 etc]# cat odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5236
测试连接
使用 dmdba 用户执行 isql 测试连接是否正常:

更多知识尽在达梦交流社区:
https://eco.dameng.com/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值