注册
DCA培训及考试心得
专栏/培训园地/ 文章详情 /

DCA培训及考试心得

QOW 2024/08/07 634 0 0
摘要

1.考试介绍

适合具备数据库原理知识,但实战经验缺乏的初级DBA等技术人员。认证定位于DM数据库服务器的数据操作和管理等工作,重点提升学员数据库动手能力。

考试内容主要包括了达梦数据库DM8安装、实例创建、参数修改、创建表空间、创建用户、角色、权限管理、创建表、导入脚本数据、约束、索引、视图、物理备份还原、逻辑备份还原、作业管理、ODBC 配置等。

考试形式为纯实操考试,时间两小时,对于未接触数据库开发的人来说时间上会有些紧迫,整体考试难度不是很大,但需要多加练习提高熟练度,避免在考试过程中失误。

2.培训内容

2.1 DM8安装

2.1.1 DM8版本介绍

DM8 分为四个版本:开发版、标准版、企业版、安全版。
开发版:不支持商用,1 年时间(从产品发布之日起)有效。
标准版:满足中小型企业使用,不支持集群(数据守护集群、读写分离集群、DMDSC、DMPC、MPP)的特性。
企业版:满足中大型企业使用,支持集群的特性,是生产环境用到最多的版本。
安全版:在企业版基础上,安全性有进一步增强,增加强访问控制、环境标记等。

2.1.2 配置DM8安装环境

查看 cpu 信息:

[root@localhost 桌面]# lscpu

注意:特别是国产 CPU,飞腾、龙芯、鲲鹏等

查看内存信息:

[root@localhost 桌面]# free -m

可用内存在 1G 及以上

查看硬盘及分区的信息:

[root@localhost 桌面]# fdisk -l
[root@localhost 桌面]# df -h

注意:/tmp 分区空间要在 2G 及以上

网络要求:
100M 网卡,支持 TCP/IP 协议
如果数据库需要远程访问,要么关闭防火墙,要么开放数据库实例对应的端口号。

关闭防火墙:

[root@localhost 桌面]# systemctl stop firewalld

禁用防火墙服务:

[root@localhost 桌面]# systemctl disable firewalld

查看防火墙状态:

[root@localhost 桌面]# systemctl status firewalld

系统要求:
内核要在 2.6 及以上

[root@localhost 桌面]# uname -ar
Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24
12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

创建安装用户和组:

[root@localhost 桌面]# groupadd dinstall
[root@localhost 桌面]# useradd -g dinstall dmdba
[root@localhost 桌面]# passwd dmdba

配置安装路径:
创建路径

[root@localhost 桌面]# mkdir -p /dm8

更改权限

[root@localhost 桌面]# chown dmdba.dinstall -R /dm8

查看目录的权限

[root@localhost 桌面]# ls -ld /dm8
drwxr-xr-x 2 dmdba dinstall 6 7 月 24 10:43 /dm8

重新指定临时目录(tmp空间不足2G时需要):

[root@localhost 桌面]# su - dmdba
[dmdba@localhost ~]$ mkdir -p /home/dmdba/tmp
[dmdba@localhost ~]$ vi /home/dmdba/.bash_profile

加入:

export DM_INSTALL_TMPDIR=/home/dmdba/tmp
[dmdba@localhost ~]$ source .bash_profile

挂载数据库软件:

[root@localhost opt]# mount -o loop /opt/dm8_20231109_x86_kylin10_64.iso /mnt

2.1.3 安装DM8

本文主要使用GUI方式,在实际考试中建议使用GUI操作可提高速度并降低出错的概率。

[root@localhost 桌面]# xhost +
access control disabled, clients can connect from any host
[root@localhost 桌面]# echo $DISPLAY
:0.0
[root@localhost 桌面]# su - dmdba
上一次登录: 三 7 月 24 10:45:48 CST 2024 pts/0 上
[dmdba@localhost ~]$ export DISPLAY=:0.0
[dmdba@localhost ~]$ cd /mnt
[dmdba@localhost mnt]$ ./DMInstall.bin

打开图像界面后点击下一步
image.png
这里没有key直接点击下一步即可
image.png
安装路径按题目要求填写,然后点击下一步
image.png
最后核对一遍信息,再点击完成
image.png

安装结束时按照提示执行以下语句
使用 root 用户执行脚本文件:

[root@localhost 桌面]# /dm8/script/root/root_installer.sh

2.2 创建数据库实例

一个软件可以创建多个数据库实例,数据库实例之间通过端口号区分。达梦数据库实例默认的端口号是 5236

[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./dbca.sh

选择创建数据库实例,点击开始
image.png
选择一般用途即可
image.png
数据库目录按题目要求填写
image.png
库名、实例名、端口号均按题目要求填写,注意大小写
image.png
簇大小和页大小、字符集等按题目要求选择
image.png
考试一般情况下需要自定义密码,密码要注意大小写
image.png
考试时示例库创建与否都可以,若是自己练习建议创建
image.png
注意脚本需要自己执行
image.png
按照提示执行下列操作

[root@localhost 桌 面 ]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@localhost 桌面]# systemctl enable DmServiceDMSERVER.service
[root@localhost 桌面]# systemctl start DmServiceDMSERVER.service

2.3 数据库实例管理

2.3.1 连接数据库

(1)disql

/dm8/bin
[dmdba@localhost bin]$ ./disql sysdba/Dameng123
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA:5237
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA@192.168.240.101:5237
/dm8/tool
[dmdba@localhost tool]$ ./disql
SQL> conn sysdba/Dameng123

配置数据库服务名,通过服务名连接数据库

[root@localhost 桌面]# vi /etc/dm_svc.conf

image.png

[dmdba@localhost bin]$ ./disql sysdba/Dameng123@DAMENG

(2)manager

[dmdba@localhost ~]$ cd /dm8/tool/
[dmdba@localhost tool]$ ./manager

确认刚刚创建的主机号、端口号以及用户名密码,然后点击登录
image.png

2.3.2 数据库实例状态

数据库实例的状态:
Mount:配置状态,配置归档、集群
Open:打开状态,数据库能读写访问
Suspend:挂起状态,数据库只能读
Shutdown:关闭状态
数据库实例状态的转换
Shutdown-mount
Mount-shutdown
Mount-open
Open-mount
Suspend-open
Open-suspend

2.3.3 启动和关闭数据库

(1)通过前台方式启动关闭数据库
适用于没有注册数据库服务
启动数据库:

[dmdba@localhost bin]$ ./dmserver /dm8/data/DAMENG/dm.ini

关闭:

exit

(2)通过后台进程方式启动关闭数据库
启动数据库:

[dmdba@localhost bin]$ ./DmServiceDMSERVER start

关闭数据库:

[dmdba@localhost bin]$ ./DmServiceDMSERVER stop

2.4 DM8体系结构

DM DB 是一个典型的 C/S 架构,由 client+server
数据库(SERVER)=数据库(数据库文件)+实例
数据库:一堆磁盘上的数据库文件,包括:配置文件、控制文件、数据文件、重
做日志文件、归档日志文件、备份文件、跟踪日志文件等。
实例:后台进程/后台线程+共享内存
一个实例管理一个数据库,就叫单机环境
多实例管理一个数据库,就是 DMDSC 共享存储集群。

2.4.1 存储结构

2.4.1.1 物理存储结构

(1)配置文件
以.ini 结尾的文件
image.png
查看参数:

select para_name,para_value,PARA_TYPE from v$dm_ini;

参数类型:
SESSION :会话级,针对当前会话有效
SYS :系统级动态参数,即改即生效
INFILE:静态参数,需要重启数据库实例生效
READ ONLY:只读参数,需要重启数据库实例生效
修改参数:

sp_set_para_value(参数类型,'参数名',参数值);

参数类型为 1,代表动态参数
参数类型为 2,带表静态参数
修改动态参数:
修改动态参数,会同时修改内存和配置文件中的值,不需要重启数据库,即改即
生效。

sp_set_para_value(1,'CTL_BAK_NUM',9);
alter system set 'CTL_BAK_NUM' = 10 BOTH;

修改静态参数:
修改静态参数,只会修改配置文件中的值,需要重启数据库实例才能生效。
COMPATIBLE_MODE 是否兼容其他数据库模式。
0:不兼容,
1:兼容 SQL92 标准,
2:部分兼容 ORACLE,
3:部分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA,
7:部分兼容 POSTGRES
修改数据库兼容模式为兼容 ORACLE 数据库。

sp_set_para_value(2,'COMPATIBLE_MODE',2);
alter system set 'COMPATIBLE_MODE' = 2 SPFILE;

(2)控制文件
每个 DM 数据库都有一个名为 dm.ctl 的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

  1. 数据库名称;
  2. 数据库服务器模式;
  3. OGUID 唯一标识;
  4. 数据库服务器版本;
  5. 数据文件版本;
  6. 数据库的启动次数;
  7. 数据库最近一次启动时间;
  8. 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,数组的方式保存起来;
  9. 控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改。在服务器运行期间,执行表空间的 DDL 等操作后,服务器内部需要同步修改控制文件内容。如果在修改过程中服务器故障,可能会导致控制文件损坏,为了避免出现这种情况,在修改控制文件时系统内部会执行备份操作。

查看控制文件:
查看控制文件帮助手册:

[dmdba@localhost bin]$ ./dmctlcvt help

将控制文件转换为文本文件:

[dmdba@localhost bin]$ ./dmctlcvt type=1 src=/dm8/data/DAMENG/dm.ctl dest=/home/dmdba/dmctl.txt

(3)重做日志文件
重做日志文件记录的是数据库发生变化的信息。达梦数据库默认有两个重做日志
文件。重做日志文件具有循环写、可覆盖的特点。

select * from v$rlogfile;
select * from v$rlog;

添加重做日志文件:

alter database ADD LOGFILE '/dm8/data/DAMENG/DAMENG03.log' SIZE 300;

Resize 重做日志文件大小:

alter database RESIZE LOGFILE '/dm8/data/DAMENG/DAMENG01.log' to 300;
alter database RESIZE LOGFILE '/dm8/data/DAMENG/DAMENG02.log' to 300;

注意:重做日志文件只能添加,不能删除;只能扩大,不能缩小。
(4)数据文件
以.DBF 结尾的文件
image.png

select * from DBA_DATA_FILES;
select * from v$datafile;

(5)归档日志文件
归档日志文件是重做日志文件的副本。在重做日志文件覆盖前,会拷贝重做日志文件的内容到归档路径下做副本。

2.4.1.2 逻辑存储结构

页,是数据库最小的使用单元,支持 4k、8k、16k、32k,标准默认页大小为 8k,是数据库最小的使用单元;
查询页大小:
select page;
簇是连续的 16、32 或 64 个页组成,一个簇总是在一个数据文件中,是数据库最小的分配单元;
段是簇的上级逻辑单元,段可以跨多个数据文件存储,例如:表、索引、临时、回滚段等。
数据库可以拥有多个表空间。一个表空间可以拥有多个数据文件,一个数据文件只能属于一个表空间。

select * from v$tablespace;
select * from dba_tablespaces;

image.png
image.png

2.4.2 内存结构

(1)共享内存池
共享内存池也叫主内存池,是服务器启动时会申请一大片内存,供其他缓冲区或
内存池在不够用时,提供调用。
参数:MEMORY_POOL,单位:M

select para_name,para_value,para_type from v$dm_ini where para_name ='MEMORY_POOL';

(2)数据缓冲区
数据缓冲区,缓存的是数据页,单位是 M。
数据缓冲区大小设置建议:
OLTP:建议设置为物理内存的 40%-60%
OLAP:建议设置为物理内存的 60%-80%
数据缓冲区的类型:NORMAL,KEEP 手动管理,达梦数据库 KEEP 表空间FAST,RECYCLE 自动管理,缓存的是临时页和回滚页的信息
参数:BUFFER
修改数据缓冲区大小:

sp_set_para_value(2,'BUFFER',800);

数据缓冲区和共享内存没有关系,当数据库缓冲区满会淘汰 LRU 链表上很少被使用到的数据页。
(3)重做日志缓冲区
重做日志缓冲区缓存的是重做日志信息。
单位是:ye
参数:RLOG_BUF_SIZE

select para_name,para_value,para_type from v$dm_ini where para_name ='RLOG_BUF_SIZE';

重做日志缓冲区和共享内存没有关系,当重做日志缓冲区不够用时,会向服务器申请内存。
(4)SQL缓冲区
SQL 缓冲区缓存的是结果集、执行计划等信息。当 SQL 类别比较多,SQL 没有绑定变量,可以将 SQL 缓冲区调大。
参数:
CACHE_POOL_SIZE
单位:M

select para_name,para_value,para_type from v$dm_ini where para_name ='CACHE_POOL_SIZE';

当 SQL 缓冲区不够用时,会向共享内存池申请内存。
(5)字典缓冲区
字典缓冲区缓存的是数据字典的信息。
参数:DICT_BUF_SIZE
单位:M

select para_name,para_value,para_type from v$dm_ini where para_name ='DICT_BUF_SIZE';

当字典缓冲区不够用时,会向共享内存池申请内存。
(6)运行时内存池
运行时内存池,在需要时被创建,使用完自动销毁。
会话内存池、虚拟机内存池、排序区、hash 区

2.4.3 线程结构

查看线程:

select * from v$threads;

查看进程:

select * from v$process;

(1)监听线程
在数据库服务器端监听来自客户端的连接请求。
(2)IO 线程
将磁盘上的数据页加载到数据缓冲区中将数据缓冲区中的脏页在一定机制下(数据库正常关闭,执行检查点)更新到磁盘上的数据文件中。
(3)日志刷新线程
将重做日志缓冲区中的记录在一定机制下(事务提交,执行检查点)刷盘到重做日志文件中。
(4)日志归档线程
重做日志文件在覆盖前,日志归档线程将重做日志文件内容拷贝到归档路径下做副本。
(5)日志重做线程
主要用于数据库实例恢复。
(6)调度线程
检查系统级的时间触发器;清理 SQL 缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;
动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;
自动执行检查点;
会话超时检测;
必要时执行数据更新页刷盘;
唤醒等待的工作线程;
(7)工作线程
内核的工作线程机制包括普通内核线程和用户态线程两种,普通内核线程的切换完全由操作系统决定,但操作系统无法了解进程内部的运行机制,只能采取通用的调度策略来管理各个内核线程;用户态线程在内核线程内部自主调度,有效减少上下文切换

2.5 表空间管理

2.5.1 查看表空间

管理工具左侧的表空间
image.png

select * from DBA_TABLESPACES;
select * from v$tablespace;

介绍 DM 表空间:
SYSTEM:系统表空间,存放数据字典和动态性能视图的信息。
ROLL:回滚表空间,存放数据库的回滚记录。
MAIN:默认表空间,新建用户时,没有为该用户指定默认表空间,就是 MAIN 表空间。
TEMP:临时表空间,存放临时表,排序等。

2.5.2 创建表空间

例 1:创建表空间 TEST,数据文件/dm8/data/DAMENG/TEST01.DBF,数据文件初始大小为 30M.
image.png
可以在用户表空间中添加数据文件。添加的数据文件大小最小为 4096页大小,如页 大小为 8K,则可添加的文件最小值为 40968k=32M。

例 2:创建表空间 TEST,数据文件/dm8/data/DAMENG/TEST01.DBF,数据文件初始大小为 50M,开启自动扩展,每次扩展 1M,最大可扩展至 1G.

create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size 50 autoextend on next 1 maxsize 1024 CACHE = NORMAL;

image.png

例 3:创建表空间 TBS,数据文件为/dm8/data/DAMENG/TBS01.DBF,/dm8/data/DAMENG/TBS02.DBF,每个数据文件初始大小为 100m,开启自动扩展,每次扩展 2M,最大可扩展至 10G。
image.png

create tablespace "TBS" datafile '/dm8/data/DAMENG/TBS01.DBF' size 100
autoextend on next 2 maxsize 10240, '/dm8/data/DAMENG/TBS02.DBF' size 100
autoextend on next 2 maxsize 10240 CACHE = NORMAL;

2.5.3 管理表空间

2.5.3.1 表空间状态

select name,status$ from v$tablespace;

Status$:
0 代表联机,在线
1 代表脱机,离线
表所在的表空间脱机,表无法访问。
表空间脱机:

alter tablespace MAIN OFFLINE;

表空间联机:

alter tablespace MAIN ONLINE;

2.5.3.2 维护表空间

(1)当表空间不够用时
Resize 数据文件:

alter tablespace "TEST" resize datafile 'TEST01.DBF' to 100;

添加数据文件:

alter tablespace "TEST" add datafile '/dm8/data/DAMENG/TEST02.DBF' size 50;

(2)迁移数据文件

alter tablespace "TBS" offline;
alter tablespace "TBS" rename datafile 'TBS01.DBF' to '/dm8/TBS01.DBF';
alter tablespace "TBS" online;

删除表空间:

drop tablespace "TBS";

修改临时表空间大小:

sp_set_para_value(2,'TEMP_SIZE',100);

2.6 用户管理

2.6.1 查看用户

管理工具左侧的用户
image.png

select username,ACCOUNT_STATUS,LOCK_DATE,EXPIRY_DATE,DEFAULT_TABLESPACE from dba_users;

介绍 DM 用户:
企业版用户:
SYSDBA:数据库管理员
SYSAUDITOR:数据库审计员
SYSSSO:数据库安全员
SYS:系统用户,不能登录
安全版用户:
在企业版用户基础上,四权分立,新增数据库对象操作员 SYSDBO

2.6.2 权限

权限可以分为:系统权限和对象权限。
image.png
image.png

2.6.3 角色

角色就是一组权限的集合,使用角色就是为了方便权限管理。角色可以被授予给角色,也可以被授予给用户。

2.6.4 创建用户

规划用户应该考虑到:
用户的命名:以字母开头,A-Z,0-9,长度不超过 128 个字符
密码:
默认表空间
权限:系统权限、对象权限、角色
资源设置:失败登录次数,口令锁定时间,密码有效期等。

例 1:创建用户 TEST,密码 dameng123,默认表空间是 TEST。拥有创建表、视图、
索引的权限。该用户失败登录 5 次后,账号锁定 2 分钟。

create user "TEST" identified by "dameng123"
limit FAILED_LOGIN_ATTEMPS 5 PASSWORD_LOCK_TIME 2
default tablespace "TEST";
grant "PUBLIC","SOI" to "TEST";
grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "TEST";

查看 TEST 用户被授予的系统权限:

select * from dba_sys_privs where GRANTEE='TEST';

查看 TEST 用户被授予的角色:

select * from DBA_ROLE_PRIVS where GRANTEE='TEST';

例 2:创建用户 DMEMP,密码 dameng123,拥有创建表、创建视图、创建索引的权限。可以查看dmhr.employee.employeename,dmhr.employee.hiredate,可以修改dmhr.employee.email 列的权限,可以查看 dmhr.department.

create user "DMEMP" identified by "dameng123";
grant "PUBLIC","SOI" to "DMEMP";
grant CREATE TABLE,CREATE VIEW,CREATE INDEX to "DMEMP";
grant SELECT on "DMHR"."DEPARTMENT" to "DMEMP";
grant SELECT("HIRE_DATE") on "DMHR"."EMPLOYEE" to "DMEMP";
grant UPDATE("EMAIL") on "DMHR"."EMPLOYEE" to "DMEMP";
grant SELECT("EMPLOYEE_NAME") on "DMHR"."EMPLOYEE" to "DMEMP";

查询 DMEMP 用户被授予的系统权限:

select * from dba_sys_privs where GRANTEE='DMEMP';

查询 DMEMP 用户被授予的对象权限:

select * from dba_tab_privs where GRANTEE='DMEMP';

查询 DMEMP 用户被授予的对象权限(到列级):

select * from SYS.DBA_COL_PRIVS where GRANTEE='DMEMP';

查询 DMEMP 用户被授予的角色

select * from DBA_ROLE_PRIVS where GRANTEE='DMEMP';

2.6.5 创建角色

create role "ROLEM";
grant "PUBLIC","RESOURCE" to "ROLEM";
grant CREATE TABLE,CREATE VIEW to "ROLEM";
grant SELECT on "DMHR"."EMPLOYEE" to "ROLEM";

2.6.6 修改用户

修改用户的密码:

alter user TEST identified by DAMENG123;

修改用户的默认表空间:

alter user test DEFAULT TABLESPACE main;

锁定和解锁用户:

alter user test ACCOUNT lock;
alter user test ACCOUNT UNLOCK;

将 ROLEM 角色授予给 TEST 用户

grant "ROLEM" to "TEST";

收回 TEST 用户创建索引的权限

revoke CREATE INDEX from "TEST";

删除用户:

drop user "DMEMP";

2.7 模式对象管理

2.7.1 模式

模式就是一组数据库对象的集合。
模式对象:表、约束、视图、索引、存储过程、函数、包、序列、同义词等。
模式与用户的关系:
一个用户可以拥有多个模式,一个模式只能属于一个用户。新建用户时,会自动
创建一个同名的模式。
切换模式
只针对当前会话有效

set schema dmhr;

访问其 dmhr 模式表,不用加模式名

select * from employee;

2.7.2 表

DM 数据库支持表的类型:索引组织表、堆表、外部表、分区表、临时表
DM 默认表的类型是索引组织表。

2.7.2.1 创建表

创建表应该考虑到:
表的命名:以字母开头
列的类型及长度:
int,number,integer,char,varchar,varchar2,text,clob,blob,binary,date,time,datetime,ti
mestamp
约束:非空、唯一、主键、外键、检查约束
权限:增删改查
表空间
(1)非空约束 not null

create table test.test1 (id int not null);
insert into test.test1 values(1);
commit;

达梦数据库事务提交方式:默认手动提交。
image.png
(2)唯一约束 unique
创建唯一约束,会自动创建唯一索引,唯一约束会忽视 null,null 什么都不是

CREATE TABLE "TEST"."TEST2"
("ID" INT, "NAME" VARCHAR(50), UNIQUE("NAME")) STORAGE(ON "TEST", CLUSTERBTR) ;

image.png

批量执行数据导入:
disql:

[dmdba@localhost bin]$ ./disql test/dameng123
SQL> start /home/dmdba/script.sql

或者

SQL> `/home/dmdba/script.sql

manager:

`/home/dmdba/script.sql

(3)主键约束 primary key
一个表只能有一个主键约束,主键约束:非空+唯一

CREATE TABLE "TEST"."TEST3"
("ID" INT NOT NULL, "NAME" VARCHAR(50), NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;

(4)外键约束 foreign key

CREATE TABLE "TEST"."TEST4"
("ID" INT, "NAME" VARCHAR(50), FOREIGN KEY("ID") REFERENCES "TEST"."TEST3"("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;

image.png

(5)检查约束 check

CREATE TABLE "TEST"."TEST5"
("ID" NUMBER(5,2), CHECK(ID > 8)) STORAGE(ON "MAIN", CLUSTERBTR) ;

Number(精度,标度)
Number(5,2) ---最大取值 999.99

2.7.2.2 修改表

修改表名:

alter table test.test6 rename to test5;

修改列名:

alter table test.test1 rename COLUMN id1 to id;

增加列:

alter table "TEST"."TEST1" add column("ADDR" VARCHAR(100));

删除列:

alter table "TEST"."TEST1" drop column "ADDR";

禁用约束:

alter table test.test2 DISABLE CONSTRAINT CONS134218872;
alter table test.test2 enable CONSTRAINT CONS134218872;

查询表:

select * from dba_tables where owner='TEST';

查询约束:

select * from SYS.DBA_CONSTRAINTS where OWNER='TEST';

User_ 查询自己拥有的对象
All_ 查询自己拥有及自己有权限查看的对象
Dba_ 查看数据库中所有的对象
删除表:

drop table "TEST"."TEST5" ;

2.7.3 视图

视图本质上就是一个查询语句,一张虚拟表。数据来源于基表。
语法:

Create view ... as select ....;
Create or replace view ... as select ...;

创建视图:

create view test.view_emp AS
select employee_name,department_id,salary from dmhr.EMPLOYEE
where DEPARTMENT_ID=101;

视图存在就替换:

create or REPLACE view test.view_emp AS
select employee_name,department_id,salary from dmhr.EMPLOYEE
where DEPARTMENT_ID=101;

查询 TEST 用户的视图:

select * from SYS.DBA_VIEWS where OWNER='TEST';

删除视图:

drop VIEW test.VIEW_EMP;

2.7.4 索引

索引是一种数据库对象。对少量数据更新、删除有加快的作用。
适合建立索引:
连接列
Where 条件中经常出现的列
不适合建立索引:
列上有大量的重复数据、空值
结果集返回大量数据
创建索引:

create index "DMHR"."IND_EMP" on "DMHR"."EMPLOYEE"("EMPLOYEE_NAME") ;

重建索引:

alter index "DMHR"."IND_EMP" rebuild;

删除索引:

drop index "DMHR"."IND_EMP" ;

注意:业务高峰期,不要对索引做创建、重建、删除等操作。

2.8 备份还原

2.8.1 备份还原恢复的概念

备份就是数据库在某个时间点做的副本。
备份的目的是:防止天灾人祸。

备份可以分为冷备和热备。冷备也叫脱机备份,是数据库在关闭状态下产生的备份;热备也叫联机备份,是数据库在运行状态下产生的备份。
备份可以分为完全备份和增量备份。完全备份,备份的是整个数据库或者整个表空间的所有数据;增量备份,在上一次完全备份或者增量备份后,以后每次只备份修改过的文件。

还原:读取备份的元数据文件信息,校验备份集的有效性,将备份集中的信息,重新生成数据库文件拷贝到对应的数据库目录。
恢复:恢复就是应用归档日志。恢复可以分为完全恢复和不完全恢复:完全恢复就是应用所有的归档日志,将数据库恢复到最新的状态;不完全恢复就是没有应用归档日志或者应用部分归档日志,没有将数据库恢复到最新的状态。

2.8.2 冷备

需要关闭数据库

[dmdba@localhost bin]$ ./DmServiceDMSERVER stop

创建备份路径

[dmdba@localhost bin]$ mkdir -p /dm8/backup

Console:

[dmdba@localhost tool]$ ./console

在console工具界面的右侧点击新建备份进入如下页面
image.png

2.8.3 热备

热备需要数据库在运行中

热备需要开启数据库的归档模式

[dmdba@localhost bin]$ ./DmServiceDMSERVER start

查询数据库是否开启归档模式:
image.png
切换数据库的状态为配置状态:
image.png

打开数据库归档模式并设置归档属性:
image.png

切换数据库为打开状态:
image.png

库级别备份
image.png
表空间级别、表级别类似

2.8.4 还原恢复

(1)整库还原恢复
步骤:
关闭数据库
还原
恢复
更新数据库魔数

[dmdba@localhost tool]$ ./console

在console工具界面的右侧点击备份还原进入如下页面
image.png
在console工具界面的右侧点击备份恢复进入如下页面
image.png
在console工具界面的右侧点击更新DB_Magic进入如下页面
image.png

2.8.5 逻辑恢复还原

逻辑备份,备份的是数据库对象。
逻辑备份的优点:
数据库迁移
历史数据归档
重新组织表
物理备份的辅助
逻辑导出的四个级别:
FULL: 整库
OWNER: 用户级别
SCHEMAS: 模式级别
TABLES: 表级别

/dm8/bin
dexp dimp
查看帮助手册:

[dmdba@localhost bin]$ ./dexp help
[dmdba@localhost bin]$ ./dimp help

点击左侧树结构根节点,右键导出
image.png

将 DMHR 模式中的数据库对象导入到 TEST 模式:

/dm8/bin/dimp sysdba/Dameng123 DIRECTORY=/dm8/backup FILE=schemas.dmp
remap_schema=dmhr:test log=imp_dmhr.log

2.9 作业管理

作业管理就是类似于服务器的计划任务,能自动去做一些运维的事情。
在左侧树结构中找到代理,右键-创建代理环境
image.png

新建作业 JOB1,每周日 22:00 对数据库做完全备份
在左侧树结构中找到作业节点,新建作业
image.png
左侧选项作业步骤中,新增一个作业步骤
image.png
左侧选项作业调度中,新增一个作业调度
image.png

新建作业 JOB2,每周一、二、三、四、五、六 22:00 对数据库做增量备份。
在左侧树结构中找到作业节点,新建作业
image.png
左侧选项作业步骤中,新增一个作业步骤
image.png
左侧选项作业调度中,新增一个作业调度
image.png

2.10 DM8开发

DM 作为一个通用数据库管理系统,提供了多种数据库访问接口,包括 ODBC、JDBC、 DPI、 OLEDB 以及嵌入方式等

安装配置 ODBC

[root@localhost opt]# tar -xvf unixODBC-2.3.0.tar.gz
[root@localhost opt]# cd unixODBC-2.3.0/
[root@localhost unixODBC-2.3.0]# ./configure ---如果报错,缺少 gcc 包,安装gcc 包即可
[root@localhost unixODBC-2.3.0]# make && make install
[root@localhost unixODBC-2.3.0]# cd /usr/local/etc/
[root@localhost etc]# vi odbcinst.ini

image.png

[root@localhost etc]# vi odbc.ini

image.png

测试连接:
使用 dmdba 用户测试连接
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服