达梦体系结构(DM8)_yxy

15 篇文章 0 订阅
2 篇文章 0 订阅
本文详细介绍了达梦数据库的物理存储结构,包括配置文件、控制文件、重做日志文件、数据文件、归档日志文件和备份文件等,并阐述了其逻辑结构,如页、簇、段和表空间。此外,还讨论了内存结构,如共享内存池、运行时内存池、数据缓冲区等,以及不同类型的缓冲区和排序区的作用。最后,提到了达梦数据库的线程结构,包括监听线程、IO线程等。内容涵盖了数据库管理和优化的重要方面。
摘要由CSDN通过智能技术生成

1 DM8 存储结构

1.1 物理存储结构

配置文件

以.ini 结尾的文件,查询视图 v d m i n i s e l e c t p a r a n a m e , p a r a v a l u e , p a r a t y p e f r o m v dm_ini select para_name,para_value,para_type from v dminiselectparaname,paravalue,paratypefromvdm_ini;
在这里插入图片描述

Sys:系统级,影响全局
Session:会话级,只针对当前会话有效
Read only:只读,只能手动编辑参数文件
Infile:静态参数,实例重启才能生效
修改参数有以下两种方法:
(1)直接 vi dm.ini ,无论是动态还是静态参数,都需要重启
(2)调用函数 sp_set_para_value(参数类型,’参数名’,参数值) 参数是动态参数不需要重启,静态参数需要重启 参数类型是指:静态参数或者动态参数。1 是动态参数,相当于 both,会改内存和参数文件 中的值,2 是静态参数,相当于 infile ,只会更改参数文件中的值。
(3)console 工具修改参数,无论是动态还是静态,也都要重启数据库才能生效。

例 1:修改数据库口令策略为:长度不小于 9,至少包含一个大写字母
pwd_policy 动态参数
设置系统默认口令策略。
0: 无策略;
1: 禁 止与用户名相同;
2: 口令长度不小于 9;
4: 至少包含一个大写字母(A-Z);
8 :至少包含 一个数字(0-9);
16:至少包含一个标点符 号(英文输入法状态下,除―和空格外的所有符 号;若为其他数字,则表示配置值的和,如 3=1+2,表示同时启用第 1 项和第 2 项策略。当COMPATIBLE_MODE=1 时,PWD_POLICY 的实际值均为 0
sp_set_para_value(1,‘pwd_policy’,6);
例 2 修改 dm 数据库为兼容 oracle COMPATIBLE_MODE 静态参数是否兼容其他数据库模式。
0:不兼容,
1:兼 容 SQL92 标准
2:部分兼容 ORACLE,
3:部 分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA
sp_set_para_value(2,‘COMPATIBLE_MODE’,2)

控制文件

以.ctl 结尾的文件
select para_name,para_value,para_type from v$dm_ini where para_name like ‘%PATH%’;
在这里插入图片描述

查看控制文件内容: bin下
查看帮助 [dmdba@localhost bin]$ ./dmctlcvt help
./dmctlcvt TYPE=1 SRC=/dm8/data/DM/dm.ctl DEST=/dm8/dmctl.txt
./dmctlcvt type=2 src=/dm8/dmctl.txt dest=/dm8/data/DM/dm.ctl
注意:不要随便修改控制文件

重做日志文件

查询重做日志文件:
select file_id,path,rlog_size from v$rlogfile;
在这里插入图片描述

重做日志文件记录的是数据库发生变更信息。重做日志文件的特点是
可覆盖,循环写。重做日志文件频繁切换会对数据库产生较大的性能
影响。
resize 重做日志文件
Alter database resize logfile ‘/dm8/data/DM/DM01.log’ to 300;
Alter database resize logfile ‘/dm8/data/DM/DM02.log’ to 300;
新增重做日志文件
Alter database add logfile ‘/dm8/data/DM/DM03.log’ size 300;
注意:重做日志文件不能被删除,所有日志文件大小需要一致。
迁移重做日志文件
alter database mount;
alter database RENAME LOGFILE ‘/dm8/data/DM/DM01.log’ TO ‘/dm8/DM01.LOG’;
alter database open;

数据文件

以.DBF 结尾的文件 存放的是真实数据
select file_name,status from dba_data_files;
在这里插入图片描述

归档日志文件

就是重做日志文件的副本,用来做数据库备份恢复、数据库守护集群、dmhs 的同步。
select name,arch_mode from v$database;
在这里插入图片描述

备份文件

以.bak 为扩展名的文件,备份文件就是数据库在某一个时间点的副
本。.meta 元数据文件(备份集的信息),.bak 数据备份文件(真实
的数据)

跟踪日志文件

跟踪日志文件记录的是系统各会话执行的 sql 语句的信息,主要是错
误的信息、性能问题。跟踪日志文件默认是关闭的。SVR_LOG
在这里插入图片描述

事件日志文件

记录的是数据库运行期间产生的关键性事件:数据库的启动、关闭、
IO 错误、内存申请失败

1.2 逻辑结构

默认为 8k,支持 4k、8k、16k、32k。页是数据库最小的分配和使用单元。页对应的是
操作系统块。
页包含了页头信息、数据、空闲空间、行偏移数组。
页头信息记录的页类型、页地址。行偏移数组,记录的是空间空间和数据比例(filefactor)

默认为 16 个页,支持 16、32 个页。簇是一组连续的页组成,一个簇总是在一个数据文件中。

是簇的上级逻辑单元,段可以跨多个数据文件。段又分为数据段(表、索引)、回滚段、 临时段。 dba_segments

表空间

一个数据库拥有多个表空间,一个表空间可以拥有一个或多个数据文件,一个数据文件只能属于一个表空间。 dba_tablespaces

1.3逻辑结构和物理结构图

在这里插入图片描述

2 DM8 内存结构

共享内存池

主要是减少系统调用。共享内存池是 dmserver 启动时,从操作系统申请的一大片内存,实例在运行中可以向内存池申请或释放内存。
SQL> select para_name,para_value from v$dm_ini where para_name like ‘%MEMORY%’;
在这里插入图片描述

Memory_target 为 0 表示不限制内存使用

运行时内存池

给特定模块单独使用,例如会话内存池,虚拟机内存池。

数据缓冲区

参数:buffer
SQL> select para_name,para_value from v$dm_ini where para_name=‘BUFFER’;
在这里插入图片描述

参考值:
Oltp:物理内存的 40%-60%
OLAP:物理内存的 60%-80%
提高数据库的性能
缓存的是数据页(空闲、干净、脏、正在使用)
数据缓冲区有 4 种类型:
Normal /keep:可以手动调整
Fast/recycle:系统自动管理。Fast 主要是 undo 数据,recycle 主要是临时数据。

重做日志缓冲区

存放是重做日志信息,单位是页,提升数据库的性能。
select para_name,para_value from v$dm_ini where para_name like ‘RLOG_BUF_SIZE’;
在这里插入图片描述

字典缓冲区

主要缓存的是数据字典的信息,包含表、列的信息。数据库存在大量分区表时,应该要调整
字典缓冲区。
在这里插入图片描述

sql 缓冲区

用来存放执行计划,sql 结果集,包。系统中 sql 类别比较多,应该调整 sql 缓冲区。
select para_name,para_value from v$dm_ini where para_name like ‘CACHE_POOL_SIZE’;
在这里插入图片描述

排序区

排序区就是 sql 排序需要的内存空间,sql 在排序区空间不够时,转移到磁盘上(临时表空间)
在这里插入图片描述

Hash 区

是虚拟的内存区,只有在生成 hash 连接时,才会生成。
在这里插入图片描述

3 DM8 线程结构

监听线程

检测来自客户端的连接请求,生成任务,把任务交给工作线程。
IO 线程
将数据页从磁盘读入到数据缓冲区中,将数据缓冲区的脏页在一定机制下(缓冲区满,执行检查点,数据库关闭)刷到磁盘中。

日志刷新线程

将重做日志缓冲区中的重做记录在一定机制(事务提交,每 3 秒,执行检查点)下,刷到重做日志文件中。

日志归档线程

将重做日志文件在切换时拷贝到归档路径。

日志重做线程

主要是用于数据库恢复。

调度线程

检查系统级的时间触发器;
清理 SQL 缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;
动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;
自动执行检查点;
会话超时检测;
必要时执行数据更新页刷盘;
唤醒等待的工作线程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值